惜文读书笔记 项目管理 【原创】项目风险管理:采用蒙特卡洛模型分析项目工期风险

【原创】项目风险管理:采用蒙特卡洛模型分析项目工期风险

一、引言 在项目管理工作中,经常需要对项目工作包(work package)的工期进行估算,并以此为基础,制定…

蒙特卡洛模型分析—惜文读书笔记

一、引言


在项目管理工作中,经常需要对项目工作包(workpackage)的工期进行估算,并以此为基础,制定项目的执行计划。因此,工作包(workpackage)的工期估算是否准确,直接影响到项目计划制定得是否合理。每个工作包的工期实际是一个范围,常见的办法是通过经验的判断,取一个看上去合理的值。这样的“专家估算法”评估的工期比较主观,受到人为的因素比较大。

那么,有没有什么办法可以对项目的工期进行更准确的估算呢,从而将项目工期制定在风险可控的范围内呢?

二、分析方法介绍


1.选择分析方法

在《数据化决策》这本书里面,就提到可以使用蒙特卡洛模型对项目工期进行估算。具体的方法就是通过蒙特卡洛模型计算出每个工作包工期估计区间,通过随机数进行大量成千上万甚至百万次的模拟计算,最终得出一个累计概率分布图。

2.蒙特卡洛模型介绍

蒙特卡罗模型是一种随机模拟方法。蒙特卡罗法是一种以抽样和随机数的产生为基础的随机性方法,因此也称为随机抽样法、计算机随机模拟法等。蒙特卡罗方法的基本原理是通过数字模拟试验,得到所要求解的出现某种事件的概率,作为问题的近似解。

3.分析案例及工具

为了让分析过程更加的贴近实际情况,我选取了公司的智慧校园SaaS项目来做分析案例。同时,我采用Excel表格作为数据分析工具。我们要用蒙特卡洛模拟来定量分析整个智慧校园SaaS项目的工期进度风险。

4.分析步骤说明

第一步:估算每个工作包的平均值和标准差;

第二步:通过大量随机计算,生成每个工作包的工期的随机数;

步:计算每个工作包的每种工期的概率

 第步:计算每个工作包和项目整体工期概率,并通过图表呈现概率分布。

三、蒙特卡洛模型分析工作包工期概率分布


1.工作包工期估算

智慧校园SaaS项目的工作包主要包括计划制定、获取基础数据、系统配置、线下培训、平台启用和平台交付。我们估算了各个工作包的平均工期、标准差以及最悲观、最可能和最乐观的估计工期如下图表所示

图1.工作包工期预估—惜文读书笔记
图1.工作包工期预估

根据贝塔分布三点估算的计算公式,可以算出:

均值=(乐观值+4 * 最可能值 + 悲观值)/ 6

标准差=(悲观值-乐观值)/ 6

2.工作包工期概率分布

我们先产生这些每个工作包的随机工期值。Excel里面有个函数可以生成呈正态分布的随机数,就是NORMINV。我们的设计要素的第一个随机工期取值的公式就是这么写的:=ROUND(NORMINV(RAND(),$E$3,$F$3),0),如下图所示:

图2.工期随机数计算公式—惜文读书笔记
图2.工期随机数计算公式

解释一下这个公式:ROUND(NORMINV(RAND(),$E$3,$F$3),0),RAND() 是生成0到1之间的随机数,NORMINV(RAND(),$E$3,$F$3) 是生成呈均值为E3(图1所示)、标准差为F3(图2所示)的正态分布的随机数,ROUND 是四舍五入的意思,这样回车我们就生成了设计这个要素的第一个随机工期值4。同理我们把这个公式值往下拉,复制1000次(我们此例中模拟1000次),就得到了1000个呈正态分布的随机工期值;然后其他5个工作包的随机工期值也是照葫芦画瓢,这样我们就得到了这6工作包1000次模拟的随机值,再每次的6工作包的随机值相加得到总工期的模拟值,如下图所示:

图3.工作包工期随机数—惜文读书笔记
图3.工作包工期随机数

3.工期分组

估算出将所有工作包可能存在的工期最小值和最大值,新增一列升序排列。我们在案例中选择最小值为2,最大值为80

图4.分组数据—惜文读书笔记
图4.分组数据

4.计算工作包在分组数据中出现概率

计算每个分组数据在【计划定制】工作包这组数据中出现的概率,这儿需要用到函数FREQUENCY,计算概率的公式为=FREQUENCY(B13:B1119,I13:I93)/1000,意思是统计每个分组数据在【计划定制】这一组数据中出现的次数,再除以模拟总次数1000就得到这个分组数据出现的概率。

图5.计算工作包工期出现概率公式—惜文读书笔记
图5.计算工作包工期出现概率公式

参照这种方法计算出其他工作包的分组数据概率。

图6.工作包工期出现概率—惜文读书笔记
图6.工作包工期出现概率

5.工作包工期概率分布图

得到每个工作包的工期概率分布统计表,我们可以根据表格中的各自的工期概率大致画出这6个工作包工期的概率分布图。如下图所示,横轴(X轴)代表工期分组数据,竖轴(Y轴)表示工期概率。

图7.工作包工期概率分布图—惜文读书笔记
图7.工作包工期概率分布图

四、蒙特卡洛模型分析总工期的概率


项目总工期概率分析的步骤和工作包概率分析的前面4步是一致的。所以总工期的概率分布说明从省去前4步的说明。总工期需要计算出每一种总工期出现的概率,同时统计积累的概率,以此可以得知项目工期合理的范围。

1.总工期随机数统计

将每一行得出的6个工作包的工期数据进行累加,得到1000种情况下总工期的随机数值。如下图所示:

图8:总工期随机数值统计—惜文读书笔记
图8:总工期随机数值统计

2.总工期概率

然后计算每个分组数据在总工期这组数据中出现的概率,计算概率的公式为:=FREQUENCY(H13:H1119,I13:I93)/1000,意思是统计每个分组数据在总工期这一组数据中出现的次数,再除以模拟总次数1000就得到这个分组数据出现的概率。

图9:总工期随机数值概率统计—惜文读书笔记
图9:总工期随机数值概率统计

然后计算一个累积概率值,累积概率值就是前面的所有单个概率值加起来的概率,比如算分组数据6的累积概率值就是把6以下的数值的概率值全部加起来,这样我们就得到关于分组数据在总工期这组数据中出现的概率和累积概率的数据,如下图表所示:

图10:总工期随机积累概率统计—惜文读书笔记
图10:总工期随机积累概率统计

3.项目总工期概率分布图

通过对上面表格的数据,以分组数据为X轴,出现概率和累积概率的值为Y轴于是可以做出下面关于总工期的概率分布图:

图11:总工期的概率分布图—惜文读书笔记
图11:总工期的概率分布图

色柱状图是整个项目估计刚好多少天完工的概率数据,绿线就是我们PMBOK上定量风险分析得到的那张S曲线图,也是我们最终蒙特卡洛模拟需要得到的最终的模拟输出:总工期的概率分布图。

五、分析结论


1.工作包工期概率分析

在图7中工作包工期概率分布图的正态分布图,我们可以看到6个工作包工期的概率区间,比如计划定制工期2天的概率为36%,工期3天的概率是22%

2.总工期风险分析

通过11总工期的概率分布图S曲线,我们可以预测整个项目在多少天内完工的概率。比如我们需要预测整个项目在51天完工的概率,通过S曲线了解到51天对应的累积概率是77.7%左右,也就是整个项目51天内完工的概率是70%,那么51天内不能完工的概率就是1-77.7%=22.3%,这就是风险。

如果觉得风险太高无法接受,那么我们可以把工期适当规划长一些,比如57天,这样查询S曲线可以得到57天内整个项目完工的概率是91.1%,这样就只有剩下8.9%的不能按时完工的风险,项目在进度方面的风险就大大降低了。

六、总结


以前,项目团队对于一直都人为智慧校园SaaS项目可以在2周内完成项目的交付。但是现实情况是,没有一个项目是在2周内完成项目交付的。通过本次蒙特卡洛项目工期分析,更加准确的评估出智慧校园SaaS项目的工期范围,这给项目的成本预算和计划的制定提供了更加准确的数据。对于项目进度来说,蒙特卡洛模型的确是一种非常实用的分析模型。

参考书籍:

  • 《数据化决策》:任何项目的投资风险最终可用一个方法表达,那就是风险和收益的范围以及可能对它们产生影响的其他事件的发生概率。
  • 《软件项目管理与素质拓展》:梳理风险意识,掌握风险识别方法,重视风险综合分析,加强风险全场监控,提高风险应对能力,从容应对意外状况,缓解风险带来的损失,将项目风险控制在可以接受的范围内。

至此关于蒙特卡洛模型分析项目工期的基本概念和操作流程就说完了,希望能通过本文对大家学习和理解蒙特卡洛模型有所助益,如有任何疑问、建议或指正,欢迎留言交流,谢谢阅读。

本文来自惜文读书笔记(www.xiwen520.com),转载请注明出处
Jordanmax

作者: Jordanmax

惜文读书笔记是面向职场人员的读书笔记网站。为您提供互联网、经营管理、投资理财、教育书籍原文摘录,并且分享职场基本技能、项目管理和产品经理相关知识和经历。

发表评论

电子邮件地址不会被公开。

返回顶部