谷歌是一家取得巨大成功的公司。同它成功的搜索引擎和AdWords一样,谷歌还开发了许多其他杰出的产品,包括谷歌地图、谷歌新闻、谷歌翻译、谷歌语音识别、Chrome和Android等。谷歌同样大大提升和扩展了许多通过收购YouTube等小公司得到的产品,而且对许多开源项目做出了显著的贡献。谷歌还展示了许多将要发布的惊人产品,无人驾驶汽车就在其列。
谷歌成功的原因有很多:开明的领导、伟大的人物、极高的招聘条件,以及在一个极速增长的市场中成功通过早期确立的领先优势带来的财务实力。还有一个引领谷歌走向成功的原因是,谷歌开发出了杰出的软件工程实践。基于世界上最有才华的软件工程师们智慧的积累和提炼,这些实践随着时间推移一直在进步。我们想要和全世界分享这些实践中的知识,以及我们一路上在犯错中学习到的东西。
这篇文章旨在简要地记载、描述谷歌关键的软件工程实践。其他组织或个人可以将其与自己的软件工程实践进行比较和对比,考虑是否应用其中的一些实践。
许多作者(如引用[9]、[10]、[11])都写了书籍或文章来分析谷歌的成功和历史,但其中绝大多数都主要关注商业、管理和企业文化;只有一小部分(如引用[1]、[2]、[3]、[4]、[5]、[6]、[7]、[13]、[14]、[16]、[21])研究过软件工程方面,这些书籍和文章中的大多数都只探讨一个方面;并且所有书籍和文章都没有进行关于谷歌软件工程实践的总结,所以本文将提供一个整体的谷歌软件工程实践概述。