HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

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

关注

评论

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

百度联合清华,全球首个十亿像素数据集来了!

百度大脑

人工智能 百度

Kafka源码阅读笔记(1)

InfoQ_Springup

kafka

数字货币自动交易机器人APP开发|数字货币自动交易机器人软件系统开发

系统开发

【详解文件IO系列】讲讲 MQ 消息中间件 (Kafka,RocketMQ等)与 MMAP、PageCache 的故事

Linux服务器开发

网络编程 Linux服务器开发 底层实现原理 网络io C++后端开发

我们真的可以使世界成为无密码的地方吗?

龙归科技

网络 安全性

这份阿里P8大佬手写的 “Java核心面试精选” 疯传阿里内网

码农之家

Java 编程 程序员 互联网 面试

微擎的日志文件保存在哪里?如何查看。

微擎应用商城

HTTPS双向认证

上海派拉基础研发

https HTTP ssl SSL 连接

如何利用ipad随时随地开发代码

程序员石磊

ipad 编程 远程

浅谈BSS3.0产品“守成”之策上 • 架构提升篇

鲸品堂

架构 运维 性能

vue2的$refs在vue3组合式API中的替代方法

devpoint

Vue3 $refs vue2 this.$refs

MySQL性能监控与调优

Sakura

4月日更

量化合约交易机器人系统开发|量化合约交易机器人APP软件开发

系统开发

从能耗大户“变身”智能绿色办公,只需一步到位!

IoT云工坊

物联网 API sdk 办公空间 智能转型

合约跟单交易系统开发量化策略

薇電13242772558

数字货币

与同事组队,用 3s 把工作节点打通,建立信赖与协作关系。

叶小鍵

11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

JackTian

Python 程序员 Shell linux运维 脚本语言

【LeetCode】删除排序链表中的重复元素Java题解

Albert

算法 LeetCode 4月日更

1分钟get什么是训练数据

澳鹏Appen

人工智能 机器学习 大数据 数据集

深入浅出带你掌握线程、多线程和线程池

华为云开发者联盟

Java 线程 多线程 线程池 操作系统

13年Java开发经验精华总结!29大核心知识模块,带你直达架构师!

Java架构追梦

Java 阿里巴巴 架构 全栈知识点

十大经典系统架构设计面试题

程序员石磊

架构 面试 架构设计

合约量化机器人系统开发|合约量化机器人软件APP开发

系统开发

合约量化交易机器人系统开发|合约量化交易机器人APP软件开发

Linux df 命令

一个大红包

linux命令 4月日更

量化合约机器人APP开发|量化合约机器人软件系统开发

系统开发

Rust从0到1-枚举-match控制流

rust 枚举 match

Google Analytics

曦语

数据分析

使用transform制作书本翻页效果

空城机

JavaScript 大前端 4月日更 书本翻页

web简易视频聊天室+媒体流插入

anyRTC开发者

大前端 音视频 WebRTC RTC

5分钟教你学会GaussDB数据分布策略设计

华为云开发者联盟

数据库 分布式数据库 GaussDB GaussDB(for openGauss) 数据分布

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