写点什么

谷歌的软件工程文化:激发创造力、鼓励自主性

  • 2019-10-11
  • 本文字数:1110 字

    阅读完需:约 4 分钟

谷歌的软件工程文化:激发创造力、鼓励自主性

谷歌进行了几项研究,以更好地理解经理和文化对团队绩效的影响。2008 年,他们发表了“氧气项目”的相关发现,并于 2018 年发表了一项后续研究。在 2008 年发现的 8 个最佳经理人行为中,他们发现了两种新的行为,它们是横跨整个谷歌的协作性和强有力的决策。


在 2019 年,Seth Richtsmeier 分享了一些对谷歌今日的成功产生了帮助的文化实践。这些文化实践包括,公司创造了这样一个环境,它鼓励人们的创造力和自主性,并建议透明性和跨职能协作,以加快信息共享和创新。


谷歌的软件工程师 Fergus Henderson 在 2017 年发表了一篇文章,描述了谷歌的软件工程实践,他认为这些实践对公司的成功和软件开发人员对该公司的喜欢程度做出了巨大贡献。Henderson 总结了关键的工程技术和实践,这些技术和实践广泛地在团队间共享,这些团队在谷歌内都经受住了时间的严格考验。


第一个关键实践是使用代码存储库:大多数开发人员的代码都存储在一个统一的源代码库中,所有软件工程师都可以访问这些源代码。写访问权限是受控制的,但是工程师可以访问任何代码并进行修改,只要这些修改可以获得代码所有者的批准就能够提交入库。当涉及到代码所有权时,存储库的每个子树都有一个列出了用户 ID 的文件。每个子树的所有者控制对该子树的写访问权,整个团队都列在所有者的文件中。


该构建基于一个名为 Blaze 的分布式系统,用于编译和链接软件以及运行测试。Blaze 为构建和测试整个代码库的软件提供了标准命令。这些标准实践允许工程师在代码库中快速、安全地构建和测试软件,并允许工程师轻松进行跨项目的更改。每次构建工作都分布在数百甚至数千台机器上,这可以快速构建非常大的程序或并行运行数千个测试。


软件工程师使用内部开发的基于 web 的工具执行代码审查。对主要源代码库的所有更改都需经由至少其他一位工程师进行评审。


软件重写每隔几年就会发生一次,这会消耗大量的资源,但它保证了公司快速适应市场需求和变化的能力。工程师重写代码以减少逐渐积累的遗留性代码和代码复杂性,并允许他们将自己的知识和代码所有权转移给新的团队成员。这些重写确保谷歌的代码基础是使用现代技术和工程实践编写的。


从文化上讲,工程师有权修复任何损坏的代码,不管产品边界如何,他们通过这个方式来确保他们的产品符合公司的最高质量标准。


同样在 2017 年发表的一篇文章中,曾于 2006 年至 2008 年在谷歌工作的Edmond Lau证实,谷歌传授着有价值的工程技术,这可以帮助工程师在职业生涯中取得成功,但他指出,大多数工程师都受限于开发和协调大型的、全球性的产品。工程师在迭代、确定优先级、做出产品决策、甚至采取行动或根据结果确定时间优先级方面的灵活性更低。


原文链接:


Google Software Engineering Culture


2019-10-11 08:002544
用户头像

发布了 61 篇内容, 共 27.8 次阅读, 收获喜欢 135 次。

关注

评论

发布
暂无评论
发现更多内容

B站真题:如何判断括号是否有效?

王磊

Java 数据结构 算法

Spring 事务,你真的用对了吗(上篇)?

废材姑娘

Spring MVC

week04作业

龙卷风

架构师一期

会用Docker的人都别装了,这多简单呐

MySQL从删库到跑路

MySQL Docker Linux yum redhat

互联网架构演化

张荣召

聊聊「测试分工和测试时间」

清菡软件测试

测试

极客时间架构师培训 1 期 - 第 4 周作业

Kaven

训练营第四周作业 1

仲夏

极客大学架构师训练营

理解分布式一致性:Paxos协议之Basic Paxos

程序那些事

raft PAXOS raft协议 paxos协议 Basic paxos

DDIA读书笔记(1)可靠性,可扩展性,可维护性

莫黎

读书笔记

架构师训练营 1 期 -- 第四周总结

曾彪彪

极客大学架构师训练营

week04总结

龙卷风

架构师一期

LeetCode题解:22. 括号生成,递归生成同时过滤,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第 1 期 - 第四周作业提交

Todd-Lee

极客大学架构师训练营

为什么说 Python 内置函数并不是万能的?

Python猫

Python

架构师训练营第 1 期 - 第四周总结

Todd-Lee

极客大学架构师训练营

WEEK4 学习总结

陈勇

极客大学架构师训练营

大型互联网应用面对的挑战及应对方案和手段

张荣召

架构模式

张荣召

WEEK4 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述

陈勇

架构师作业 - 第四周 - 一个典型的大型互联网应用系统使用了哪些技术方案和手段

袭望

理解分布式一致性:Raft协议

程序那些事

分布式 raft 分布式一致性 raft协议

区块链助力政府建设高效政务能力

CECBC

区块链 政务

用Python绘制地理图

计算机与AI

Python 绘图

架构师训练营 1 期 -- 第四周作业

曾彪彪

极客大学架构师训练营

训练营第四周作业 2

仲夏

极客大学架构师训练营

视读——沟通的艺术,看入人里,看出人外(第四章)

废材姑娘

架构师训练营-week04-作业1

lucian

极客大学架构师训练营

Paxos 的变种(一):Multi-Paxos 是如何劝退大家去选择 Raft 的

多颗糖

分布式 架构师 分布式架构 分布式一致性

系统架构:系统技术挑战与方案

张荣召

区块链行业发展的“忧与愁”

CECBC

区块链 互联网

谷歌的软件工程文化:激发创造力、鼓励自主性_文化 & 方法_Shaaron A Alvares_InfoQ精选文章