专业书籍精读 · Accelerate · 第 1 章
Accelerate: The Science of Lean Software and DevOps · Ch 1 · Forsgren, Humble & Kim · 2018
你手机上的 App,有的一周更新一次,有的半年不动一下。《Accelerate》(中译《加速》)第 1 章想回答一个听起来很虚、其实能算的问题:一个团队「交付软件的本事」,到底能不能量出来?作者的答案是:能量。而且量出来的这个数,预测得了这家公司赚不赚钱。
按常识,发版越勤越容易出事——所以很多公司的做法是「少发、慢发、层层审批」。可这本书背后四年、两万多份问卷的数据说的是反的:发得最勤的那批团队,线上出事反而更少、出了事恢复得也更快。就像开车,一年只开两次的人,比天天开的人更容易剐蹭。
过去要回答「我们该怎么改进」,手里只有两样东西。一是大会上某位大神的经验之谈——他那套在他公司管用,换个地方就未必。二是「成熟度模型」,像考级:从一级爬到五级,拿到证书就算转型成功。问题是,证书发下来那天,改进就停了;而且它数的是「你装了几个工具」,不是「你到底交付得快不快、稳不稳」。
这本书把范式换掉了:不要成熟度证书,要能力体检报告。区别在于——考级是「所有人走同一条路、爬到顶就结束」;体检是「先量出你现在最弱的那一项,专治那一项,治完再量」。它永远没有终点,而且每家公司的下一步都不一样。
那怎么体检?作者挑了四个所有团队都报得出的数:多久发一次版、从代码写完到上线要多久、上线后出事的比例、出了事多久能恢复。前两个说「快」,后两个说「稳」。把上万个团队按这四个数分档,快的那批和稳的那批高度重合——这就是前面那个怪事的证据。
关键在一次搬多少。搬家时一趟拉一卡车,看着省事,可车一翻就全完,而且你根本不知道是哪件东西压坏了别的。分十趟拉,每趟都轻、出问题一眼看得见、重来一趟也不心疼。软件发版同理:发得勤,每次改动就小;改动小,出事概率就低、原因好找、重来便宜。于是「敢发」和「不出事」不但不打架,还互相喂养。反过来「攒三个月发一次」是恶性循环:一发就是一整车,出了事无从下手,下次更怕发、攒得更久。
它给了工程团队和老板一套能坐下来对话的共同语言:不用再吵「我们做得好不好」,直接摆那四个数,再对着最弱的一项动手。当然,这些结论来自问卷调查而非实验室对照,而且一旦把这四个数写进绩效考核,人就会去刷数字,所以它更适合当体检报告、不适合当 KPI。
「交付得快」和「交付得稳」不是二选一,数据显示它们是同一批团队的同一件事——秘诀是把每次改动做小。而想改进,别去爬等级、拿证书:先量出自己最弱的一环,专治那一环,然后再量一次。
想进到研究方法、四指标的具体量级与示意图? → 切到精读版
Accelerate 第 1 章不讲任何一条具体实践,而是给全书打方法论地基:软件交付效能(software delivery performance)不是一种感觉,而是一个可测量的量,测出来之后它能预测组织绩效。要改进它,得换掉工业界惯用的成熟度模型(maturity model)范式,改用能力模型(capability model)——不是爬到五级宣布完工,而是持续找出当前最弱的那根杠杆、改进、再测。最反直觉的一句:「快」和「稳」不是跷跷板的两端,数据显示它们是同一批团队的同一件事。
本章是 Accelerate 全书 Part I「研究发现」的开篇,也是整本书的信任状。这本书是 2014–2017 年四届 State of DevOps Report(Nicole Forsgren 领衔的 DORA 团队与业界合作发布)的学术化整理,覆盖 23,000+ 份问卷、2,000+ 家组织。本章不给具体实践清单——那是 Ch4(技术实践)、Ch5(架构)、Ch3(文化)的事;它先解决两件更靠前的事:凭什么信这些结论,以及该拿什么范式去做转型;紧接着的 Ch2 才把「交付效能」拆成四个可操作指标。对应现实场景:任何一场「要不要做 DevOps 转型、做完怎么算成」的立项会。
2018 年前后,关于「怎么交付软件才对」的说法几乎全是轶事与厂商话术:独角兽的工程博客、大神的大会经验、供应商的白皮书。共同的毛病是不可证伪——他那套在他的约束下管用,你照抄未必,失败了也说不清错在哪一步。
而真想系统改进的组织,手上唯一像样的工具是成熟度模型,于是转型的典型剧本成了:立项、买工具、按等级表打勾、拿到 Level 4、宣布成功。不解决会怎样?——投进几千万、装满一屋子工具、拿到认证,交付还是慢,而且没人说得清问题出在哪一环,因为你从头到尾量的都不是交付结果。本章要同时填上这两个坑。
难点在于,交付效能不像 CPU 主频,没法直接读出来。作者的办法借自社会科学:把它当成一个潜变量——你没法拿尺子量「智力」,但可以量若干个会一起动的可观测指标,再用统计手段确认它们确实指向背后同一个东西。
挑指标时作者立了两条硬规矩,比指标本身更值得记住:一是必须同时覆盖「快」与「稳」两侧,只量一侧必然把团队推进另一侧的深坑;二是必须量全局结果、不量局部产出——「代码行数」「story point 速率」这类度量个人工作量的指标,一旦被考核就会被优化到损害全局。按这两条筛下来落成四个:部署频率、变更前置时间说「快」,变更失败率、恢复时间说「稳」(Ch2 逐个展开)。
拿到四个数,再用聚类分析分成高 / 中 / 低三档。关键不在于分了三档,而在于界线不是作者拍的、是数据自己聚出来的,且四年年年都能聚出结构稳定的分档——这是「不是又一套观点,而是一个可复现的发现」的底气。
把三档效能与组织自报的商业结果对照,得到全书传播最广的一条结论:高效能组织在盈利能力、市场份额、生产率这三项上「达成或超出目标」的可能性,是低效能组织的两倍。这不只对上市公司成立——对政府、非营利这类没有利润指标的组织,把结果换成「产出数量、运营效率、客户满意度、组织使命达成」,结论一样。
这里有个词要抠:书里用的是预测(predict)而非「相关」,统计上意味着他们做了推断性的预测建模,不只是画个散点图看趋势。但也别读过头——这是横截面问卷研究,不是随机对照实验:能说「两件事强绑定、方向可辨」,不能证明严格因果(作者在 Part II 承认了边界,§7 再展开)。
真正的分量在于换了一张谈判桌:它把「技术团队怎么干活」从成本中心的话术里拽出来,摆到了董事会能看懂的表上——此前工程效能的投入总在跟市场费用抢预算却讲不出回报。
传统假设写在无数公司的流程里:要稳,就得少发、慢发、加审批。数据给的是反的——高效能团队在四个指标上全面领先:发得更频繁、前置时间更短,同时变更失败率更低、恢复更快。「快」和「稳」在数据上正相关,压根不构成跷跷板。书中引述的 2017 年那届数据里,高效能对低效能:部署频率差 46 倍、变更前置时间差 440 倍、恢复速度差 96 倍,变更失败率还低 5 倍——同一批团队,四项全赢。
机制收敛在批量大小这一个词上。精益制造几十年前就知道:批量越小,单批在制品越少、缺陷暴露越早、返工越便宜。搬到软件上是一条自我强化的正循环:
反过来,「少发慢发加审批」是一条负循环:攒三个月一发,批量巨大、风险叠加,一出事无从下手,于是下次更怕发、攒得更久。审批越重,实际风险越高——这是本章最值得带走的一句反直觉结论。
本章花了相当篇幅论证一件当时相当冒犯的事:别用成熟度模型指导技术转型。三宗罪——
对照的能力模型有四个好处:① 结果导向——先定义要改进的结果,再看哪些能力对它有拉动;② 多维、动态——各团队按自己的瓶颈定制路径并随时间调整;③ 内建持续改进——没有「完成」这一格;④ 指出差异化杠杆,支持「改这一项会怎样」的推演——不是「样样都重要」,而是在你现在这个位置,动哪一根收益最大。
落到实操,这个范式换掉的是一个很具体的动作:别再照抄别人的实践清单。Netflix 那套在 Netflix 有效,因为那正好是 Netflix 当时的约束点;你要做的是先测量、找到自己的约束点,再挑对应的能力去动。
四年研究最后收敛出 24 项关键能力,分五类:持续交付(一切纳入版本控制、自动化测试、部署自动化、主干开发、持续集成……)、架构(松耦合、团队自治)、产品与流程(小批量、客户反馈、工作可视化)、精益管理与监控(轻量级变更审批、监控、主动通知、限制在制品)、文化(Westrum 的生成型文化、学习氛围、协作、工作满意度),后面各章逐一展开。
它们串成的因果链就是全书骨架:能力 → 软件交付效能 → 组织绩效。旁支上还挂着一条容易被忽略的主张:高效能同时伴随更低的倦怠(burnout)与更高的工作满意度——改善交付效能改善的是人的处境,不是靠压榨人换来的。
还有一条 Ch1 就点明、却常被忽略的结论:没有「我们是传统企业所以做不到」的豁免。样本里的高效能组织遍布各行业、各规模,包括高度受监管的金融与政府部门,也包括抱着大型遗留系统(legacy system)的老公司。约束在能力上,不在行业标签上。
表 1 · 成熟度模型 vs 能力模型:你其实在选一种「改进的形状」
| 成熟度模型 | 能力模型(本章主张) | |
|---|---|---|
| 核心问题 | 我们到第几级了? | 我们现在最弱的一环是哪个? |
| 终点 | 有——达标即完成 | 没有——持续改进 |
| 路径 | 锁步、一刀切,全组织同一条 | 多维、动态,各团队按瓶颈定制 |
| 量什么 | 活动与工具(装了没、开会了没) | 结果(交付效能 → 组织绩效) |
| 典型失败 | 拿到认证后改进停摆;打满勾仍交付缓慢 | 测量本身有成本;指标一旦当 KPI 就被刷 |
| 诚实的代价 | 便宜、好汇报、合规友好 | 要长期养一套测量能力,且结论因公司而异、不好抄 |
| 适合 | 合规 / 采购确实需要一个等级标签时 | 真想改进交付结果时 |
表 2 · 高 / 中 / 低三档在四指标上的画像(书中所引 2017 年 State of DevOps 数据)
| 指标 | 高效能 | 中效能 | 低效能 |
|---|---|---|---|
| 部署频率 | 按需,一天多次 | 每周一次到每月一次 | 每周一次到每月一次 |
| 变更前置时间 | 小于 1 小时 | 一周到一个月 | 一周到一个月 |
| 恢复服务时间 | 小于 1 小时 | 小于 1 天 | 一天到一周 |
| 变更失败率 | 0–15% | 0–15% | 31–45% |
这张表有个值得停一下的细节:中档与低档在前两项上落在同一区间。书里点名讨论过——中档团队往往卡在夹层里:已经开始频繁提交代码,却还没去掉重量级审批与手工返工,「快」的收益没兑现,风险却先涨了。转型的痛点常在半路,而不在起点。
表 3 · 想改进,先动哪根杠杆?(把本章方法论落成动作)
| 你现在的症状 | 大概率的约束点 | 下一步动哪儿 |
|---|---|---|
| 发布要排期、走三层审批 | 重量级变更审批 | 换成同行评审 + 自动化门禁,然后盯前置时间有没有降 |
| 发得不算少,但一发就出事 | 测试与部署自动化不足 | 补自动化测试、做到部署可重复可回滚 |
| 改一处就要惊动别的团队 | 架构耦合 | 松耦合 + 团队自治:能不能不协调就独立上线 |
| 四个数都好看,但人在燃尽 | 在制品过多 / 文化 | 限制并行工作量,看 Westrum 文化那一维 |
| 不知道自己在哪一档 | 压根没测量 | 先把四个指标量起来——这正是本章的第一主张 |
这一章之所以成了此后近十年「工程效能」讨论的默认底本,是因为它把「DevOps 到底有没有用」的口水仗,变成了一个可复现也可证伪的研究纲领,还顺手给出四个跨技术栈、跨行业都报得出的数。今天你在 GitHub、GitLab、Azure DevOps、Google Cloud 的效能面板上看到的「DORA 四指标」,源头就在这里;DORA 团队于 2018 年被 Google Cloud 收购,研究一路做到今天。
1.5%、交付稳定性估计下降 7.2%;他们的解释是「improving the development process does not automatically improve software delivery — at least not without proper adherence to the basics of successful software delivery, like small batch sizes and robust testing mechanisms.」——这是对本章「别照抄工具清单、要盯结果」最好的注脚。Google Cloud Blog「2024 DORA Report」↗11.6 秒一次生产部署、单小时峰值逾 1,000 次——极高的部署频率与极大的规模可以共存,这是「快不必然换来不稳」最早的公开旁证之一。出处:Jon Jenkins「Velocity Culture」, O'Reilly Velocity 2011 主题演讲(原视频源不可直链,此处只留文字出处)① 一句话:本章是全书的方法论地基——交付效能可测量、且预测组织绩效;改进要用能力模型而非成熟度模型。
② 证据基础:2014–2017 四年、23,000+ 份问卷、2,000+ 家组织,跨行业跨规模;这是「凭什么信」的答案。
③ 测量方法:交付效能是潜变量,用四个可观测指标刻画(部署频率、变更前置时间、变更失败率、恢复时间),再用聚类分析让数据自己分出三档。选指标守两条:同时覆盖快与稳;量全局结果、不量局部产出。
④ 最反直觉的结论:快与稳同向——高效能团队四项全面领先;机制是批量大小撑起的正循环,而「少发慢发加审批」是负循环,审批越重,实际风险越高。
⑤ 商业分量:高效能组织在盈利、市场份额、生产率上「达成或超出目标」的可能性是低效能的两倍;非商业组织换个结果口径同样成立。
⑥ 范式之争:成熟度模型三宗罪(终点思维、锁步一刀切、量活动不量结果)vs 能力模型四好处(结果导向、多维动态、持续改进、指出差异化杠杆)。
⑦ 因果链:24 项能力(五类)→ 软件交付效能 → 组织绩效,旁支还有更少倦怠;且没有「我们行业特殊所以做不到」的豁免。
⑧ 最该记住的动作:先测量、找自己的约束点,别照抄别人的实践清单。
⑨ 最该警惕的误用:四指标是诊断工具,不是 KPI;而且这毕竟是问卷研究,DORA 自己后来也补了第五个指标——好起点,不是终局。