什么是项目进度中的浮动时间(时差)?
两项任务在甘特图上看起来可能一模一样,但其中一项若拖延一天就是一场危机,另一项却可以漂移一周而毫无影响。区别就在于浮动时间。它是进度表中最有用的数字之一,也是最不为人理解的数字之一。下面讲讲浮动时间是什么、你会遇到的两种类型,以及如何在自己的计划中读出它。
一句话说清浮动时间
浮动时间,也称时差,是指一项任务可以延误多久而不延误其他事情。这个"其他事情"要么是整个项目,要么只是下一项任务,你指的是哪一个,就对应下面讲到的两种浮动时间。
浮动时间充裕的任务很灵活:晚点开始、拉长时间,下游都不会察觉。浮动时间为零的任务毫不留情:任何拖延都会推后完成日期。分清哪个是哪个,就是只操心该操心的事与操心所有事之间的区别。
浮动时间和时差是同一回事
这两个词你都会见到。"时差"在日常用语以及 Microsoft Project 等工具中很常见;"浮动时间"则是正式进度计划和关键路径法中的术语。它们指的是完全相同的量。本指南使用浮动时间,但你喜欢的地方尽可读作时差。
浮动时间如何计算
浮动时间来自对进度表的两次推算。正向推算给出每项任务的最早开始和最早完成。反向推算从截止日期往回算,给出每项任务的最晚开始和最晚完成,且不推后结束日期。浮动时间就是二者之间的差距:
说白了:浮动时间 = 最晚开始减去最早开始(与最晚完成减去最早完成得到的数字相同)。如果一项任务最早可以在 3 号开始、最晚可以在 7 号开始而不影响截止日期,那么它有四天的浮动时间。
总浮动与自由浮动
唯一一个让人绊倒的区别。两者都真实存在,回答的是不同的问题。
| 总浮动 | 自由浮动 | |
|---|---|---|
| 拖延到多久前... | 项目完成时间才会移动 | 下一项任务才会移动 |
| 相对于什么衡量 | 截止日期 | 后续任务的最早开始 |
| 大小 | 较大或相等 | 较小或相等 |
| 在关键路径上 | 零 | 零 |
自由浮动是你可以动用而完全不影响任何其他人的余量。总浮动是你可以在项目本身延误之前动用的余量,而用掉它可能会悄悄吃掉后续某项任务的自由度。拿不准时,保住自由浮动,动用总浮动时要心里有数。
一个实例演算
- 构建:第 6 到 10 天。评审要等它,所以构建的浮动时间为零,它在关键路径上。
- 撰写文档:只需 2 天,但同样有到第 10 天的窗口。最早完成在第 7 天,最晚完成在第 10 天,所以它有3 天的总浮动。
请注意,你从来不必去猜。浮动时间是算出来的,不是凭感觉的,这也是为什么一个能计算它的工具胜过一张你手工上色的图。
为什么值得了解浮动时间
浮动时间把进度表从一张图变成一件决策工具。浮动时间为零的任务就是你的关键路径:决定完成日期的那条链条,每延误一天,结束就晚一天。有浮动时间的任务就是你的灵活度:在这里你可以吸收意外、调动资源,或让某件事先等一等。
跟踪浮动时间的管理者不再在整个计划上均匀地四处救火,而是开始保护真正要紧的那几项任务。这是把有限的注意力花得最有效率的办法。
如何在甘特图上看出浮动时间
在真实项目里,你不会手工计算浮动时间。在一个能计算进度的工具中,它已经在那里了:
- 用依赖关系把任务连起来,让工具知道顺序,这正是让浮动时间有意义的前提。
- 打开关键路径。被高亮的任务就是浮动时间为零的链条;凡是没被高亮的都有一些浮动时间。
- 让一项非关键任务拖延一下再看:如果完成日期没有移动,你刚刚就看到了它的浮动时间在起作用。
- 用好这份余地。当关键路径吃紧时,把人从浮动时间多的任务调到浮动时间为零的任务上。
你可以在免费的 gantts.app 编辑器里试试:建几项相互连接的任务,打开关键路径,再拖动一根非关键的条形,感受一下余地在哪里。
简短版
浮动时间就是一项任务在给你带来代价之前可以挪动多少。浮动时间为零意味着它在关键路径上,每一次拖延都伤筋动骨;浮动时间为正意味着你有喘息的余地。自由浮动保护下一项任务,总浮动保护截止日期。学会读它,一张繁忙的进度表就会突然告诉你到底该看哪里。
常见问题
什么是项目管理中的浮动时间?
浮动时间,或称时差,是指一项任务可以延误而不延误项目(总浮动)或下一项任务(自由浮动)的时间量。关键路径上的任务浮动时间为零,因此它们的任何延误都会推后完成日期。
浮动时间和时差是一样的吗?
是的。时差是日常用语,在 Microsoft Project 等工具中很常见;浮动时间是关键路径法中使用的正式进度计划术语。它们描述的是同一个量。
总浮动和自由浮动有什么区别?
总浮动是指一项任务可以拖延多久而项目完成日期才会移动。自由浮动是指它可以拖延多久而下一项任务才必须移动。自由浮动始终小于或等于总浮动。
浮动时间如何计算?
浮动时间等于最晚开始减去最早开始(等价地,最晚完成减去最早完成)。这些数值来自对进度表的一次正向推算和一次反向推算,而这由进度计划工具替你完成。
浮动时间为零是什么意思?
浮动时间为零意味着该任务在关键路径上:它没有挪动的余地,因此它的任何延误都会延误整个项目。这些是要优先保护的任务。
延伸阅读
本文也提供英文版本。