专业书籍精读 · Accelerate · 第 4 章

技术实践

Accelerate: The Science of Lean Software and DevOps · Ch 4 · Forsgren, Humble & Kim · 2018

EN →

这一章讲什么?

你手机里的 App,有的一周更新好几次,有的半年才动一次。《Accelerate》(中译《加速》)前三章用数据证明了一件事:软件发得又快又稳的团队,公司业绩也更好。但它们没回答最要紧的那个问题——那我们星期一早上到底该做什么不一样的事?第 4 章就是来回答它的:哪些具体的技术做法,真的能把「又快又稳」做出来。

先说个怪事

按常识,改动发得越勤,出错的机会应该越多。可数据是反的:一天发好几次的团队,出事反而更少、修得也更快。攒三个月发一次大版本的那种团队,才是通宵、回滚、互相甩锅的常客。这一章要解释这个怪事从哪来。

旧世界为什么难

想象三个人各自装修同一间屋子,各干各的、三个月不碰面,最后一天才开门对照——一个人把承重墙砸了,另一个人正好在那面墙上挂了柜子。那天注定是灾难,而且没人说得清是谁先动的手。

攒大版本就是这么回事:几百处改动混成一坨进生产,出了问题只能一处处翻。真正让人痛的不是「改动多」,而是「改动堆在一起、太晚才见面」。

核心机制:三个点子

一、一切都记账。不只是代码,连「这台机器是怎么装的、参数设成多少」都写下来、存进公共档案库。好处是:机器烧了,照着档案重装一台一模一样的,而不是靠某个老员工的记忆。这一章有个挺意外的发现——代码存档案库现在人人都做了,真正拉开差距的是「机器和配置也一起存」

二、天天碰头。别各改各的三个月,每人每天下班前,把自己那份活并回大家共用的那一份。今天的冲突今天解决,小到几分钟就能弄完。还是那间屋子——改成每天收工前互相看一眼,灾难就没机会攒出来。

三、让机器当质检员。每改一次,就自动把全套检查跑一遍。关键不在「有没有这套检查」,而在信不信得过:它说没事,你就真敢发;它报警,你就知道是真出事了。这里还藏着一个更意外的发现——这套检查最好由写代码的人自己写。数据显示,甩给专职测试团队或者外包去写的那种,对交付效能几乎没有帮助。原因也不难懂:只有写代码的人知道自己哪里脆;也只有他自己写,才会顺手把代码改成好测的样子。

带来了什么

最反直觉的收获不在速度,而在人。做到这几件事的团队,加班更少、倦怠更轻、发布日不再是恐怖之夜,团队之间的信息也更通畅。而气氛一好,大家更愿意继续坚持这些做法——它就转起来了。所以这一章真正的主张是:这些技术实践不只是提效工具,它们会实实在在改变一个组织里人的状态。

一句话记住

持续交付不是买一套流水线,而是让大家共用的那份代码随时都能发出去:一切进档案库、每天并回主干、让信得过的自动检查替你把关。而整套东西的命门只有一个——自动检查一旦老是误报,人就会开始无视它,前面所有投入全都白搭。

想进到具体机制、研究结论和示意图? → 切到精读版