Monte Carlo 模拟是一种预测不确定事件可能结果的数学技术。我们之前曾撰写过有关其为研发专业人员带来的益处的文章,并主持过有关 Monte Carlo 模拟功能的网络讲座,以帮助产品满足预期规格、预测过程能力并确定最佳过程设置。然而,Monte Carlo 也可以是估计项目持续时间,甚至成本的强大工具。
项目时间表通常是不确定的事件,特别是在项目跨职能时。虽然项目经理通常会猜测项目的时间安排,但他们可以使用简单的模拟来完成猜测工作。
想象一下,一个软件开发项目通常基于两周冲刺构建。为简单起见,假设所有要求都已指定,并且一组开发人员已准备好工作。不出所料,老板问道:“80 天内我们的会议能否提供这项新功能?”
在估计项目时间表时,项目经理会考虑 3-4 个冲刺(42 到 56 天)的开发时间、1-2 个冲刺(14 到 28 天)的质量测试以及 1 周的部署时间(7 天)。更谨慎的方法包括增加最大时间范围:开发 56 天,测试 28 天,部署 7 天,合计 91 天。或者,经理可以对这些估计取平均值,得到 77 天(49 天用于开发,21 天用于测试,7 天用于部署)。但是,如果老板提出 80 天的交付请求,则确定是否满足截止日期成为一个关键考虑因素。
没有人喜欢告诉老板这是无法做到的。也许更糟糕的是,告诉老板您不确定结果。这就是 Monte Carlo 模拟可以提供帮助的地方!
正如您从下图中看到的,我在 Minitab Engage 中输入这位项目经理的困境,以预测项目的持续时间。我已经进入了项目的三个阶段(以天为单位),上限规格为 80 天,这是我想象中的老板想在我们的用户会议上演示它的时候。
运行模拟后,我获得两个见解:首先,它向我展示:我最有可能的结果(在分布的中间,以平均值突出显示)是 77 天。 其次,我可以看到,我有 23.8% 的可能性不能满足 80 天的截止日期。
有了若干数据分析,我可以做出一些有根据的决定。也许我觉得仅有大约 76% 的可能性让我的老板开心也不错了。或者更有可能的是,我需要为项目增加额外的资源以确保成功。如果能够告诉我的老板我的信心水平,以及为什么我需要重新分配资源或投资来满足他们 80 天的时间期限,可能会促成在项目之前进行更有成效的对话,并且如果我错过截止日期,在项目结束时也会得到更多的谅解。