“在这些事情中,唯一的确定性是没有什么是肯定的。”(豪华老人)
项目计划当然是关于未来的,关于未来的一切都有一些与之相关的不确定性。当任务的持续时间估计为5天时,它将被认为这可能不会完全正确。可能存在少量的不确定性或大量的数量,但绝对有一些。
由于这种不确定性关于任务持续时间,任何对项目完成的估计就是估计。只有在任务持续时间的估计结果证实的程度上只有有效。由于通常存在许多任务,几乎可以确定,其中许多人将花费较少的时间比估计更少,而其他人则比估计更多的时间。
因此,在现实中,项目的完成可能不会像确定性CPM或PERT所预测的那样,而是在一个可能围绕估计对称分布的日期范围内的某个地方。(实际上比那更糟。正如后面所讨论的,使用确定性估计也会引入偏差,因此这些估计往往是系统乐观的。)
进度风险分析是一种识别这种不确定性的技术,它用代表可能持续时间范围的分布来代替每个任务的确定性持续时间。分析方法存在于处理简单情况下的概率分布,但项目网络通常过于复杂而无法适用。
解决方案是使用Monte Carlo仿真。除了在计算机上完成之外,这有点像模拟真实生活事件一样。计算机可以生成所谓的伪随机数。这些不是真正随机的,因为如果一个人知道生成机制,可以再现它们,但是他们通过了他们通过了旨在识别任何非随机性的复杂统计测试的知识。使用这些伪随机数,可以从任何所需的分布生成样本,并且这些是在蒙特卡罗模拟中用于模拟大量随机生成方案的物理系统。
蒙特卡罗模拟在很多领域都有应用。在项目网络环境下,蒙特卡罗模拟:
- 从用户定义的分布中获取每个任务持续时间的样本;
- 基于这些采样持续时间的CPM分析;
- 存储此时间分析的结果(通常以直方图类似的摘要形式);和
- 重复步骤1到3几百或上千次。
在此过程结束时,它可以产生表示任何感兴趣结果的概率分布的直方图,这通常包括早期和后期开始和完成日期,免费和总浮点,以及每个任务的成本。
因此,估计的项目完成日期和其他重要里程碑由概率分布而非单点估计代表。而不是预测项目将在某个日期完成 - 这将几乎肯定被证明是错误的 - 一个人可以做出更加现实的预测,例如“该项目将于5月31日完成的90%的几率。”
但是,进行风险分析的最重要的原因可能是前面提到的偏差,这意味着确定性CPM或PERT对项目完成的单点估计往往甚至不在风险分析产生的概率分布所代表的范围内。原因是一种叫做合并偏差的现象。
当网络中两条或多条路径收敛时,合并偏差就会发生,而它们持续时间的不确定性使得其中任何一条路径都可能成为关键。为了说明合并偏差,假设一个任务只有两个并行运行的前辈。假设每个人都有相等的概率花1到6天的时间。再进一步假设他们不会只取一天的一部分。(这听起来可能有些做作,事实也的确如此。然而,它允许通过投掷骰子的类比来说明这一点,而不涉及很多微积分。)
每个任务的预期持续时间当然是3.5(1+2+3+4+5+6除以6)。但是他们的预期时间是多少这两个是完整的吗?下表显示了这对任务的所有36种可能的结果,这可以通过投掷两个骰子来模拟。(例如,如果第一个任务花了5天,第二个任务只花了3天,那么它们完成的时间都是5天,可以在表中查找。
|
|
|
|
|
|
|
| 1 | 1 | 2 | 3. | 4. | 5. | 6. |
| 2 | 2 | 2 | 3. | 4. | 5. | 6. |
| 3. | 3. | 3. | 3. | 4. | 5. | 6. |
| 4. | 4. | 4. | 4. | 4. | 5. | 6. |
| 5. | 5. | 5. | 5. | 5. | 5. | 6. |
| 6. | 6. | 6. | 6. | 6. | 6. | 6. |
在36个可能性中,只有一个有1的最大值,而虽然不少于11个,但最大值也有6个。因此,只有两个平行路径,可以看出,两个任务所需要的时间可能比确定性估计长3.5天。如果我们做数学,我们发现预期的价值实际上近4.5天。拥有3个并行任务,预期值差不多5天,5个任务约为5.4天。而且10天是5.8天。(显然它将在6天内收敛,因为平行路径变得非常大。)
另一种来看待这一点是为了重申墨菲的法律,比墨菲令人悲观:
如果有许多可能会出问题的事情至少有一个将要。
在具有并行路径的项目网络中,只需要一个路径需要“出错”以延迟项目完成。(在这种情况下,“出错”只是意味着需要比预期更长的时间。这并不一定意味着错误,但可能是原始估计中涉及的不可避免的不确定性的结果。)这是合并偏见。