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

加速

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

EN →

这一章讲什么?

你手机上的 App,有的一周更新一次,有的半年不动一下。《Accelerate》(中译《加速》)第 1 章想回答一个听起来很虚、其实能算的问题:一个团队「交付软件的本事」,到底能不能量出来?作者的答案是:能量。而且量出来的这个数,预测得了这家公司赚不赚钱

先说个怪事

按常识,发版越勤越容易出事——所以很多公司的做法是「少发、慢发、层层审批」。可这本书背后四年、两万多份问卷的数据说的是反的:发得最勤的那批团队,线上出事反而更少、出了事恢复得也更快。就像开车,一年只开两次的人,比天天开的人更容易剐蹭。

旧世界为什么难

过去要回答「我们该怎么改进」,手里只有两样东西。一是大会上某位大神的经验之谈——他那套在他公司管用,换个地方就未必。二是「成熟度模型」,像考级:从一级爬到五级,拿到证书就算转型成功。问题是,证书发下来那天,改进就停了;而且它数的是「你装了几个工具」,不是「你到底交付得快不快、稳不稳」。

它的点子:别考级,去体检

这本书把范式换掉了:不要成熟度证书,要能力体检报告。区别在于——考级是「所有人走同一条路、爬到顶就结束」;体检是「先量出你现在最弱的那一项,专治那一项,治完再量」。它永远没有终点,而且每家公司的下一步都不一样。

那怎么体检?作者挑了四个所有团队都报得出的数:多久发一次版、从代码写完到上线要多久、上线后出事的比例、出了事多久能恢复。前两个说「快」,后两个说「稳」。把上万个团队按这四个数分档,快的那批和稳的那批高度重合——这就是前面那个怪事的证据。

为什么「快」和「稳」能同向?

关键在一次搬多少。搬家时一趟拉一卡车,看着省事,可车一翻就全完,而且你根本不知道是哪件东西压坏了别的。分十趟拉,每趟都轻、出问题一眼看得见、重来一趟也不心疼。软件发版同理:发得勤,每次改动就小;改动小,出事概率就低、原因好找、重来便宜。于是「敢发」和「不出事」不但不打架,还互相喂养。反过来「攒三个月发一次」是恶性循环:一发就是一整车,出了事无从下手,下次更怕发、攒得更久。

带来了什么 / 该怎么用

它给了工程团队和老板一套能坐下来对话的共同语言:不用再吵「我们做得好不好」,直接摆那四个数,再对着最弱的一项动手。当然,这些结论来自问卷调查而非实验室对照,而且一旦把这四个数写进绩效考核,人就会去刷数字,所以它更适合当体检报告、不适合当 KPI。

一句话记住

「交付得快」和「交付得稳」不是二选一,数据显示它们是同一批团队的同一件事——秘诀是把每次改动做小。而想改进,别去爬等级、拿证书:先量出自己最弱的一环,专治那一环,然后再量一次。

想进到研究方法、四指标的具体量级与示意图? → 切到精读版