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

让工作可持续

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

EN →

这一章讲什么?

你手机上的 App 每隔几天就更新一次。每一次更新的背后,都有一群人把新写的东西「送上线」。这件事在有的公司是周三下午三点、一个人点一下、五分钟结束;在另一些公司是周六深夜、九个人开着电话会、折腾到凌晨四点、最后还失败了

这一章问的不是「哪种更快」,而是一个更朴素的问题——这活儿,人能一直这么干下去吗?

打个比方:搬家

想象两个人搬家。

第一个人三年没收拾过屋子。搬家那天全家总动员,从早忙到深夜,砸了两个杯子,最后累到不想说话。于是他更怕搬家了——下次能不搬就不搬,再拖三年。第二个人每周花二十分钟理一点,搬家那天一个下午就完了。

关键在于:这不是两种性格,是两种循环。越拖越难,越难越拖;反过来,越勤越轻松,越轻松越敢勤。软件上线走的是一模一样的两条路。

旧世界为什么难

为什么会有「深夜上线」这种事?因为在很多系统里,换新版本得先把服务停掉——就像修水管得先关总闸,所以只能挑没人用的时间干。既然要挑半夜、要请一堆人到场、要走一堆手工步骤,那自然是能少做就少做

可少做的结果是:每次上线积压的改动越来越多。真出了毛病,没人说得清是这一百多处改动里的哪一处。于是每次上线都更吓人,于是更不敢上线。这个圈就这么转起来了。

另一件事:漏水的管子和发毛巾

这一章还讲了一件看起来无关、其实是同一回事的事:人为什么会被工作耗干。

常见的处理办法是:公司发现大家状态不对,于是请瑜伽老师、办抗压讲座、送健身卡。这些不是坏事,但它们都默认了一件事——是人不够强。好比楼上管子在漏水,物业不修管子,改成给每户发毛巾。毛巾越发越多,水一直在漏。

这章引用的研究说,真正让人被耗干的是环境里几件很具体的事:活儿多到做不完、想改的东西自己说了不算、干得好没人看见、规则看人下菜碟、嘴上说的和实际要求的不是一回事。没有一件是靠个人意志力能解决的。

那该怎么办

这章给的方向出人意料地朴素:先把上线这件事,从「一场大战」改造成「上班时间的一件小事」。不用停服就能换版本,步骤全交给机器跑,出问题一键退回上一版——做到这一步,深夜、电话会、九个人到场,就全都没必要了。

然后是第二件:别再修人,去修那六件事。比如,一个人值班的一晚上被叫醒五次,正确的反应不是夸他扛得住,而是把这当成一次故障来查——为什么会响五次?

一句话记住

别问一个团队累不累,问他们上次上线是周几、几点、几个人在场——这个答案比任何满意度问卷都准。人被耗干很少是因为人不够强,多半是因为环境里有一根一直在漏的管子;要修的是管子,不是发毛巾。诚实的代价是:把上线变轻松是一笔实打实的前期工程投入,做到一半反而更难受——机器还没接管,人却已经不再仔细了。

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