项目排程中的提前量与延迟量
两个任务很少是首尾精确相连的。有时你可以在第一个任务完成前就开始下一个,有时则必须在它之后等待。这两种调整就是提前量(lead)和延迟量(lag),它们决定了一份进度计划是贴合现实,还是悄悄地差了好几天。一旦你用正确的方式理解它们,就会觉得很简单;而几乎每个人一开始都会被绊住,因为这两个名字听起来是反的。
两个术语的定义
提前量是一种重叠。它让后续任务在其前置任务完成之前就开始,把它往前拉。延迟量是一种等待。它强制在前置任务完成之后、后续任务能够开始之前留出一段延迟,把它往后推。提前量压缩进度,延迟量拉长进度。
记忆的窍门:提前量把工作往前拉(你抢先起步),延迟量把工作往后拖(它落在后面)。其余的一切都由此推导而来。
提前量为负,延迟量为正
在排程工具中,提前量和延迟量是同一个设置,只是在依赖关系上取相反的符号。一条完成到开始的连接带有两天延迟量,意思是"在 A 结束后等待 2 天,B 才开始"。同一条连接带有两天提前量、输入为负二时,意思是"B 可以在 A 结束前 2 天开始"。一个数字,一个符号,效果相反。
何时需要提前量
在工作可以安全重叠的地方使用提前量。典型情形:你不必把全部文档都写完才开始编辑,编辑可以先处理最初的几章,而后面的章节仍在撰写中。给这条连接加上几天提前量,就能让两个任务重叠,在不增加任何资源的情况下缩短项目。这是最省钱的进度压缩方式。
何时需要延迟量
在现实强加了一段并非工作的等待时,使用延迟量。油漆需要干燥,混凝土需要养护,客户需要三天来审阅,一批货物在途要一周。这些都不是你靠增加人手就能加快的工作量,因此把它建模成一个任务是错误的。要把它建模成延迟量:连接上的一段间隔,没有任何人被分派,进度计划只需遵守它。
对照一览
| 提前量(lead) | 延迟量(lag) | |
|---|---|---|
| 效果 | 重叠,开始得更早 | 等待,开始得更晚 |
| 连接上的符号 | 负 | 正 |
| 进度 | 压缩它 | 延长它 |
| 典型用途 | 可重叠的工作 | 干燥、养护、审阅、在途 |
如何在工具中添加
提前量和延迟量位于依赖关系上,而不是任务上:
- 先在两个任务之间创建连接(通常是完成到开始)。
- 打开该连接,设置它的提前量或延迟量数值。
- 把等待输入为正的天数,把重叠输入为负数。
- 检查完成日期:提前量应当把它提前,延迟量应当把它推后。
你可以在免费的 gantts.app 编辑器中试一试:连接两个任务,加上延迟量,看着第二根条形向右滑动。
一个完整示例
- 给这条连接加上1 天延迟量。第二遍现在在第一遍完成一天之后才开始,中间没有人闲着,进度计划只是在等待。
- 对比一下:如果第二个油漆工可以在第一个还在刷近处那面墙时就从远处那面墙开始,你就会改用提前量,让两者重叠。
一句话总结
提前量让两个相连的任务重叠,把进度往前拉;延迟量插入一段等待,把进度往后推。在工具里,它们是同一个数值取相反的符号,提前量为负,延迟量为正,设置在依赖关系上,而不是任务上。用提前量来压缩可以重叠的工作,用延迟量来对干燥、养护和审阅这类任何投入都无法缩短的真实等待建模。
常见问题
提前量和延迟量有什么区别?
提前量是一种重叠,它让任务在其前置任务完成之前就开始,把进度往前拉。延迟量是一种等待,它让任务在其前置任务完成之后被推迟,把进度往后推。提前量压缩计划,延迟量拉长计划。
提前量是负的还是正的?
提前量在依赖关系上输入为负值,因为它把后续任务往前拉。延迟量为正,因为它把后续任务往后推。它们是同一个设置,只是符号相反。
我什么时候该用延迟量?
把延迟量用于那些并非你能加快的工作的真实等待:油漆干燥、混凝土养护、客户审阅期、货物在途。由于在延迟期间没有人在投入工作量,它被建模成连接上的一段间隔,而不是一个任务。
我什么时候该用提前量?
在工作可以安全重叠时使用提前量,例如编辑先处理最初的几章,而后面的章节还在撰写。加上提前量会让任务重叠,在不增加资源的情况下缩短项目,因此它是一种压缩进度的省钱方式。
提前量和延迟量是放在任务上还是依赖关系上?
放在依赖关系上。提前量和延迟量描述的是两个相连任务之间的关系,因此设置在连接上,而不是任何一个任务本身。先创建依赖关系,然后给它添加提前量或延迟量的数值。
延伸阅读
本文也提供英文版本。