QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 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:002337
用户头像

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

关注

评论

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

Navicat!OceanBase社区版新朋友来啦!

OceanBase 数据库

数据库 oceanbase

ui设计网站:全网最热门的30个UI设计网站合集

uimaker

UI GUI设计

React组件复用的发展史

夏天的味道123

React

5年经验年薪百万,一位阿里P8分享自己的成长干货

钟奕礼

Java java面试 java编程 程序员、

内测分享:如何把小程序游戏运行到自有 App 中?(IOS 篇)

FN0

游戏 小程序游戏开发

React组件通信

xiaofeng

React

Vue3知识点之数据侦测

yyds2026

Vue

ha集群是什么意思?一般有几个节点?

行云管家

高可用 ha ha集群

React组件复用的技巧

夏天的味道123

React

软件项目管理工具 PingCode 入选2022年度企服口碑产品TOP36——36氪

爱吃小舅的鱼

Vue中的diff算法深度解析

yyds2026

Vue

Vue3必会技巧-自定义Hooks

yyds2026

Vue

2023年北京企业办理备案流程详解

行云管家

等保 等保备案 北京

Jvm上如何运行其他语言?JSR223规范最详细讲解

架构师之道

Java JVM

Webpack完整打包流程分析

Geek_02d948

webpack

React核心工作原理

xiaofeng

React

1业务架构作业

梁山伯

还在写代码处理映射关系? 动动手指,MatrixDB 4.4 轻松让 JSON 入表!

YMatrix 超融合数据库

kafka 产品发布 超融合数据库 YMatrix MatrixGate

保驾护航,嘉为蓝鲸助力某科技公司AD域故障恢复实记

嘉为蓝鲸

AD 自动化运维 嘉为蓝鲸

React高级特性之Context

夏天的味道123

React

Java程序员开发3年如何能拿到年薪40W?(强烈推荐涨薪必备)

钟奕礼

Java 程序员 java面试 java编程

阿里p8私藏MyBatis笔记,从入门到精通,纵享源码细节

钟奕礼

Java 程序员 java面试 java编程

React组件设计模式-纯组件,函数组件,高阶组件

xiaofeng

React

人保科技:自动化运维场景在数据中心的落地之网络策略自动化管理

嘉为蓝鲸

自动化管理 自动化运维 嘉为蓝鲸

事关紧急!每个运维人员都应该了解的工作

嘉为蓝鲸

自动化运维 嘉为蓝鲸 AD防护

龙蜥大讲堂12月预告来了!来自统信软件、移动云和浪潮信息等多位技术专家在线分享

OpenAnolis小助手

ebpf 移动云 龙蜥大讲堂 直播预告 统信软件

2022年11月国产数据库大事记-墨天轮

墨天轮

数据库 tdsql 国产数据库 达梦 polarDB

上帝视角一览大数据开发体系

JAVA旭阳

Java 大数据

《中国指标中台市场研究报告》线上发布会

Kyligence

数据分析 指标中台

Webpack插件核心原理

Geek_02d948

webpack

Webpack中的高级特性

Geek_02d948

webpack

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