项目进度中的缓冲与应急储备
每个估算都带着一个无声的垫子。一个真正只需三天的任务被报成五天,以防万一。在四十个任务上这样做,你就把数周的安全余量埋在了没人看得见、也管不着的地方。更糟的是,这种隐藏的水分很少能守住交付日期,因为早在它本该覆盖的风险到来之前,它就被悄悄花掉了。本指南展示一种更好的方式来存放你的安全余量。
给每个任务加水分的隐性代价
当你问某人一个任务要花多久时,你很少得到一个纯粹的估算。你得到的是估算加上一份私下的安全余量。把三天的工作报成五天的人并没有撒谎。他是在为自己防备各种干扰:同事休假、评审返回要求修改。这种本能是健康的。问题在于安全余量最终落到了哪里。
埋在任务里的水分是看不见的。没人能看出一个五天的估算里含有多少垫子,所以没人能管理它、汇集它或收回它。把这一点放大到整个计划,你得到的进度看上去很谨慎,实际上却被你碰不到的安全余量撑得臃肿。余量是存在的,但它孤立地保护着每个任务,而不是保护整个交付日期。
为什么隐藏的安全余量被花掉而非省下
即便有了所有这些水分,项目仍然会延期。三种有充分记录的行为解释了安全余量为何在起作用之前就蒸发掉。
| 效应 | 发生了什么 | 结果 |
|---|---|---|
| 帕金森定律 | 工作会膨胀到填满所给的时间 | 任务耗尽整个加水分的估算 |
| 学生综合症 | 因为有余地,人们动手得晚 | 垫子在真正开工前就没了 |
| 无声吸收 | 提前完成没有及时上报 | 一个任务省下的时间从不向前传递 |
第三种效应是无声的杀手。一个提前两天完成的任务本应把两天交还给项目。可人们却去打磨工作,或者干脆等到截止日期才交出去,节省下来的时间就消失了。延误总是向前传递,收益却几乎从不。于是水分只往一个方向渗漏。
把安全余量从任务中移出来
解决办法不是去掉安全余量,而是重新安置它。把水分从各个任务的估算中剥离,让每个任务只承载一个诚实的、大约五五开的工期,即在没有灾难也没有奇迹的平常日子里所需的时间。然后把你剥出来的全部安全余量汇集成工作链末尾的一份共享储备。这就是关键链排程的核心思想。
汇集之所以奏效,和保险奏效的道理相同。并非所有任务都会在同一次项目运行中超时。有的提前,有的滞后,波动部分相互抵消。一个共享缓冲只需覆盖整条链的合并波动,而这小于每个任务各自最坏情况之和。你最终需要的总安全余量更少,而你所持有的终于可见了。
链末尾的项目缓冲
项目缓冲是放在最长依赖工作链最后一个任务之后、恰好位于承诺交付日期之前的一整块时间。它吸收所有汇入其中的累积滑移。如果任务稍微超时,它们会吃掉缓冲,而不是把交付日期往后推。如果任务提前,缓冲会增长,让你提前得到你在超前的预警。
由于缓冲是一个单一的可见之物,你可以在项目运行中看着它逐渐燃尽。这一个度量,即剩余缓冲对剩余工作的比例,比一墙绿色的任务条更能说明进度的真实健康状况。它把安全余量从一个隐藏的猜测,变成一个你可以在每次状态会议上汇报的数字。
链条汇合处的汇入缓冲
你最长的链条并不是穿过计划的唯一路径。其他工作串在它旁边推进,并最终汇入它。如果其中一条支链在汇合点迟到,即便它从不是最长的路径,也会拖延主链。汇入缓冲正是防备这一点。
汇入缓冲是插在一条非关键链与关键链相连处的一小块时间。它吸收上游工作的滑移,使主线不被打扰。在每一个次要路径汇入你最长链条的地方放一个,你的关键路径就能免受从侧面袭来的意外的影响。
缓冲要留多少、放在哪里
最古老的经验法则是五成法:把你从一条链上各任务中削减的安全余量加总,再把缓冲定为这个总数的一半。如果你在一条链上去掉了二十天的水分,就留十天的缓冲。它粗糙却出奇有效,并抓住了保险逻辑:合并风险小于各自风险之和。
对于更长的链条,平方和开方法更为紧凑。你取每个任务削减的安全余量,平方,加总,再开平方根。这让缓冲按统计波动而非原始总和来缩放,于是长链不会被过度保护。两种方法都遵循一条规则:缓冲位于链条末尾,绝不被抹回到各个任务中。
应急储备与管理储备
缓冲防备的是已知工作的普通波动。它们并不覆盖真正的意外,把两种截然不同的储备池清楚分开会很有帮助。把它们混为一谈,正是团队要么在第一次冲击时僵住、要么把安全网悄悄花在例行波动上的原因。
| 储备 | 覆盖 | 由谁掌控 | 在基线内吗? |
|---|---|---|---|
| 应急储备 | 已知风险与正常波动 | 项目经理 | 是,在计划之内 |
| 管理储备 | 未知的、不可预见的事件 | 发起人或治理方 | 否,置于计划之上 |
应急储备就是你的项目缓冲和汇入缓冲:为你能说得出名字的风险而预留的金钱和时间,随着工作推进由你动用。管理储备完全置于进度之外,只有当无人规划过的事情发生时才由发起人释放。把它们分开,能阻止例行的超支悄悄吃掉本该用于真正紧急情况的资金。
一个算例:加水分的任务对比汇集的缓冲
数字让差别变得具体。取一条由四个依赖任务组成的小链条。在第一个版本里,每个估算都带着自己私下的水分。在第二个版本里,我们把水分剥离为诚实的工期,并把其中一半汇集成一个缓冲。
加水分版本。四个任务,每个都内含两天的垫子报出。
| 任务 | 诚实时间 | 加水分报价 |
|---|---|---|
| 设计 | 3 天 | 5 天 |
| 构建 | 4 天 | 6 天 |
| 测试 | 3 天 | 5 天 |
| 部署 | 2 天 | 4 天 |
承诺合计:20 天。由于学生综合症和无声吸收,每个任务往往会耗尽它的全部报价,所以计划确实接近二十天,而任何单个糟糕的任务仍有滑移的风险,因为它的邻居早已花掉了自己的垫子。
现在改为汇集安全余量。诚实工期合计十二天。去掉的水分是八天,于是按五成法则,我们在末尾留四天的缓冲。
汇集版本。诚实工期,一个共享缓冲。
- 设计、构建、测试和部署按诚实时间进行:3 + 4 + 3 + 2 = 12 天工作。
- 在部署之后加一个 4 天的项目缓冲。
- 承诺合计:16 天,比加水分的计划短四天。
- 如果构建超时两天,它从共享缓冲中支取,还留两天继续保护其余工作。
- 如果设计提前一天完成,这一天流入缓冲,而不是凭空消失。
同样真实的安全余量,少承诺四天,而缓冲如今是一个你能为之辩护的可见数字。
在推进中跟踪缓冲消耗
缓冲只有在你盯着它时才有用。带缓冲的计划里,最好的进度指标是已消耗缓冲与已完成工作之比。如果你走完了链条的四成,而只用掉了两成缓冲,你状态极好。如果你用掉了六成,你就有一个值得趁还有时间立刻处理的问题。
许多团队把它画成一张简单的三区图。绿色表示缓冲使用舒适地落后于进度,琥珀色表示密切留意,红色表示采取行动。这与基线跟踪背后是同一种纪律,聚焦于一个诚实的数字,而不是几十个各自带着隐藏水分的任务级日期。
浪费缓冲的常见错误
即便采用了缓冲的团队,也常常自毁其效。这些失误是可预料的,知道它们就等于治好了一半。
第一个错误是保留水分、又在上面再加一个缓冲。这把安全余量重复计算,产生一个没人相信的臃肿计划。如果你要加项目缓冲,就必须先把任务估算削减到诚实工期,否则整件事的意义就没了。第二个错误是把缓冲当作可以按需发放的空闲时间。缓冲不是小金库。它只被它所保护的那条链上真正的超支所消耗,而且每一次支取都应当可见。
第三个错误是因为缓冲看起来像水分,就对干系人把它藏起来。事实恰恰相反。一个可见、有名、受跟踪的缓冲是计划中最诚实的东西。它准确说明你持有多少保护,并让所有人看着它起落。正如那句校准所言,一张做好一次、之后再不触碰的甘特图不是计划,而是愿望。一个你从不盯着看的缓冲,就是同一个愿望披了件外衣。
把缓冲放进一张普通的甘特图
你并不需要专门的关键链软件就能获得大部分好处。只要你在这件事上有纪律,任何甘特工具都能容纳缓冲。无论你用电子表格还是基于浏览器的制作工具,步骤都一样。
- 诚实地估算每个任务,按五五开的工期,不加私下的水分。
- 把任务连接起来,让计划算出你最长的依赖工作链。
- 在那条链的末尾加一个可见的缓冲任务,按五成法则或平方根法则定其大小。
- 在支链汇入主线的地方加入更小的汇入缓冲。
- 每次状态更新时,记录每个缓冲相对于进度消耗了多少。
- 把缓冲的数字,而不是一片任务百分比,作为你头条的健康指标来汇报。
你今天就可以在免费甘特制作工具里把它排布出来,为每个缓冲使用一种鲜明的颜色条,让它读起来像保护,而不是工作。
让它奏效的思维转变
缓冲与其说是一种技巧,不如说是你看待安全余量方式的转变。加水分的做法把每个任务当作必须自我防卫的孤岛,这让你的保护变得稀薄分散、又看不见。带缓冲的做法把交付日期当作值得守护的东西,并把你的安全余量集中到真正能守住那个承诺的地方。
一旦你用这种方式跑完一个项目,加水分的风格就开始显得奇怪。既然一个可见的缓冲用更少的时间和远更高的清晰度就能做同样的事,何必把安全余量藏在四十处?诚实的估算加上一个汇集的缓冲,给你更短的承诺、更清晰的信号,以及一份你能在任何评审中为之辩护的储备。这不是乐观,而只是把安全余量放在你看得见的地方。
常见问题
缓冲和应急储备有什么区别?
缓冲是你放在一条链末尾用来吸收滑移的那一块具体时间,例如项目缓冲或汇入缓冲。应急储备是更宽泛的储备,是为已知风险留出的时间或金钱。在关键链规划中,你的缓冲就是你持有进度应急储备的方式。
我的项目缓冲应该有多大?
一个常见的起步规则是你从链上各任务削减的全部安全余量的一半。如果你去掉了二十天的水分,就留十天的缓冲。对于更长的链条,平方和开方法给出一个更紧凑、按统计缩放的尺寸,避免对长的工作串过度保护。
什么是汇入缓冲?
汇入缓冲是放在一条非关键工作链汇入你最长链条处的一小块时间。它吸收上游工作的延误,使其不致把主线往后推。在每一个次要路径汇入关键链的地方放一个,以保护你承诺的交付日期。
为什么不干脆给每个任务都加水分?
藏在任务里的水分是看不见的,所以没人能管理或收回它。帕金森定律、学生综合症以及未上报的提前完成,意味着它会在风险到来之前被悄悄花掉。把同样的安全余量汇集成一个可见的缓冲,所需的总时间更少,还给你一个真正能盯着看、能为之辩护的数字。
应急储备和管理储备有什么区别?
应急储备覆盖已知风险与正常波动,位于你的基线之内,由项目经理掌控。管理储备覆盖真正的意外,位于计划之外,只由发起人释放。把它们分开,能阻止例行超支悄悄抽干本该用于真正紧急情况的资金。
延伸阅读
本文也提供英文版本。