资源平衡:修复超额分配的进度计划
一份甘特图可以同时既完全有效又完全不可能。横条对齐,依赖关系清晰,完成日期看着很漂亮,然而在星期二它却悄悄假设一个人会在一天之内完成三天的工作。这就是超额分配,而资源平衡就是修复它的方法。这是大多数人会跳过的一步,也正是为什么这么多“现实”的计划到了第二周就崩溃。
什么是超额分配
当分配给某个资源(通常是一个人)在某段时间内的工作量超过其产能时,就发生了超额分配。两项并行安排的任务,每一项都需要那个人全职投入,就意味着 200% 的分配率:这在物理上不可能,但基本的甘特图里没有任何东西会阻止你把它画出来。进度计划看起来没问题,因为横条可以随意重叠;只是人做不到。
为什么一份有效的进度计划会不可能
甘特图检查的是依赖关系,而不是人的极限。它会毫不犹豫地把 Sam 的三项任务放在同一个下午,因为就依赖逻辑而言,它们是允许同时进行的。这个计划在逻辑上有效,在实践中却是虚构。资源平衡就是让计划尊重一个事实的过程:一个人一次只能做一件事。
平衡与平滑的区别
两种相关的修复方法,有一个关键区别。资源平衡会解决超额分配,即便它不得不把完成日期往后推,正确性优先。资源平滑会让工作量变得均匀,但拒绝移动完成日期,所以它只使用可用的浮动时间。平衡可能让你更晚完成,但始终可行;平滑保住了日期,但只有在有足够宽裕来吸收峰值时才管用。
并排对照
| 资源平衡 | 资源平滑 | |
|---|---|---|
| 目标 | 消除超额分配 | 让工作量变均匀 |
| 完成日期 | 可能往后推 | 固定 |
| 使用 | 不惜一切 | 仅浮动时间 |
| 保证可行性 | 是 | 仅当浮动时间足够时 |
如何平衡一份进度计划
一旦你能看到过载,就可以手动做平衡:
- 找出超额分配的时段,即分配给某个人的工作超过其产能的地方。
- 先花掉浮动时间:把一项有宽裕的并行任务推迟到那个人有空为止,这不会让你付出任何代价。
- 如果浮动时间用完了,就把任务排成先后顺序,一个接一个地做而不是同时做,这可能把完成日期往后推。
- 或者增加产能:如果任务可以拆分,就再分配一个人。
- 之后重新检查关键路径,平衡可能会改变它。
一个实例
- 如果“设计结账页”有浮动时间:把它挪到周四到周六。Sam 现在处于 100%,而且因为你花掉的是浮动时间,完成日期不会动,这就是平滑。
- 如果它没有浮动时间:两项无论如何都必须一前一后地进行,于是项目会晚三天完成,这就是平衡。
浮动时间就是货币
请注意,浮动时间就是你在做平衡时花掉的东西。有宽裕的任务可以被挪动,从而免费缓解过载;关键路径上的任务没有浮动时间,所以缓解它们总要付出完成日期的代价。这就是为什么浮动时间和资源平衡是一枚硬币的两面:浮动时间告诉你哪里有空间可以挪动工作,而平衡就是挪动它的动作。
简短版
一份通过了每一项依赖检查的进度计划,仍然可能要求一个人同时出现在两个地方,这就是超额分配。资源平衡通过挪动或排序工作来修复它,先花掉浮动时间,只有在不得不时才移动完成日期。平滑做的是同样的事,但拒绝移动日期,所以它只依赖浮动时间。在 gantts.app 编辑器中搭建计划,然后检查没有任何人被要求去做不可能的事。
常见问题
什么是资源超额分配?
超额分配是指分配给某个资源(通常是一个人)在某段时间内的工作量超过了他能完成的量,例如同一天有两项全职任务(200% 的分配率)。基本的甘特图允许这种情况,因为横条可以重叠,尽管那个人做不到。
资源平衡和资源平滑有什么区别?
资源平衡会消除超额分配,即便完成日期不得不往后推。资源平滑会让工作量变得均匀,但保持完成日期固定,所以它只使用可用的浮动时间。平衡保证一份可行的计划;平滑只有在有足够宽裕时才管用。
资源平衡会改变完成日期吗?
可能会。如果超额分配的任务有浮动时间,平衡会把它们挪进宽裕里,完成日期保持不变。如果没有,任务就必须排成先后顺序,从而把完成日期往后推。平衡把可行的计划置于原定日期之上。
我该如何修复一份超额分配的进度计划?
先找出过载的时段,然后先花掉浮动时间,把有宽裕的并行任务推迟。如果浮动时间用完了,就把任务一个接一个地排成先后顺序,或者在任务可以拆分时再增加一个资源。之后重新检查关键路径,因为平衡可能会改变它。
浮动时间和资源平衡有什么关系?
浮动时间就是你做平衡时花掉的东西。有宽裕的任务可以被挪动,从而在不拖延项目的情况下缓解过载;关键路径上的任务没有浮动时间,所以缓解它们总要付出完成日期的代价。浮动时间告诉你哪里有空间可以挪动工作。
延伸阅读
本文也提供英文版本。