专业书籍精读 · 持续交付 · 第 15 章

管理持续交付

Continuous Delivery · Ch 15 · Jez Humble & David Farley · 2010

EN →

这一章讲什么?

你手机上有的 App 每周更新一次,有的一年才更新两次。差别通常不在程序员手快不快,而在这家公司里「放行上线」这件事是怎么办的。《持续交付》前面十四章讲的全是技术——怎么搭自动化流水线、怎么自动跑测试、怎么管环境。最后这一章掉头问了一个更尴尬的问题:技术都会了,为什么公司还是发不快?

打个比方

想象一家工厂花大价钱装了全自动流水线,却规定每出一批货都要厂长亲自到场、在一张三十页的表上签字。流水线转得再快,出货速度也只等于厂长签字的速度。很多公司就是这个处境:自动化服务器天天在跑,上线仍是一场要凑齐二十个人、挑周六凌晨干的大工程。

旧世界为什么难

传统上线像一场手术:一份几十步的手工清单,一群平时不碰这套系统的人照着做,做错了也没法干净地退回去。更要命的是,负责「别出事」的那些角色——运维、安全、合规——通常直到最后一刻才被叫进来。他们唯一的自保手段就是让流程更重:多几轮签字、多几份文档。于是发布更慢、每次攒的改动更多、风险更大,下次更不敢发——一个越拧越紧的死结。

这章给的两把工具

第一把是尺子。作者把「一家公司离持续交付有多远」拆成六条线分别看:构建、环境与部署、发布与合规、测试、数据、配置。每条线从「乱来」到「持续改进」分五格,你如实在每条线上标一个点,连起来是一条锯齿线。关键不是求总分高,而是看哪条线最靠左,先补那一条——六条一起上,通常一条也补不动。

第二把是换掉审批。书里最反直觉的一句是:想让审计满意,别去加签字,去加自动化。一个签好的字只能证明「有人签过」;而一条完整的流水线能证明更硬的东西——线上跑的这个版本,是哪次代码改动、由哪次构建产出、过了哪些测试、谁在什么时候按的上线键。这本账是机器顺手记下的,想赖也赖不掉。

该怎么做

先别谈「三年内达到最高级」。找到最疼的那条线,改一格,看指标有没有动,再改下一格。风险管理也不是写更厚的文档,而是在对的时间点问对的问题:我们怎么知道这版做完了?谁有权部署?出事回滚要多久?测试环境和生产到底像不像?——这几个问题答不上来,文档写多厚都没用。代价也得说清:这类改造在见效之前通常会先让团队慢上一阵子,新流程要磨合、旧习惯要改,撑不过这段的团队往往半途而废。

一句话记住

挡住持续交付的很少是技术,而是组织里「谁敢放行」这件事。这一章给的两个答案:用一把六条线的尺子找到最短板、一次只补一格;以及把手工签字换成自动留痕的流水线——它才是审计真正想要的那种证据。

想看成熟度网格、证据链示意图与具体选型对比? → 切到精读版