一、概述
理想很丰满,现实很骨感,你是否也有类似的经历呢?
备注:该图片引用自网络
制定项目计划是每个项目经理的基本功,但往往在面对复杂项目或长周期项目时,如何准确评估项目工期是一个很有难度的挑战。在cmmi高成熟等级模型中,引入了量化管理的概念,其中提到通过历史数据分析,可以利用统计技术对项目工期进行预测,通过大量实现模拟算出项目工期大概率是多少。常用的工具便是蒙特卡洛模拟(Monte Carlo simulation)。
二、蒙特卡洛模拟简介
蒙特卡洛模拟是一种基于统计学的方法,通常用在专业的项目风险管理软件中。甲骨文公司发布了一款风险管理工具Oacle Crystal Ball(水晶球),是基于Excel的应用程序套件,因此只要有Excel,就能使用水晶球进行蒙特卡洛模拟。Oacle Crystal Ball的工作原理是使用what- if 分析进行模拟数千种假设情况的结果,从而得出预测变量的最有可能结果。
Oacle Crystal Ball(水晶球)官方下载地址:Crystal Ball | Oracle 中国
小知识:Crystal Ball最初是由美国的Decision Engineering公司于1986年开发完成,后经过权威机构调研发现85%的《财富》全球500强企业使用该工具。
三、在Excel中用水晶球软件进行蒙特卡洛模拟的操作步骤
1.建立数据表
收集数据,建立数据表,准备输入数据。
2.定义假设变量
在进行模拟之前,需要先明确想要预测的结果y与那些假设变量x有关,并定义这些x变量服从和中统计分布,所有x变量数据所在的单元格需要标识出来。
3.定义预测变量
需要明确想要预测的是哪个单元格的值,这些预测变量的结果是由上述x决定的,也是最终蒙特卡洛模拟将要模拟计算的结果。
4.设定实验次数,运行模拟
设定实验的次数,通常需要至少30次以上(满足统计学意义上的大样本量)。设置完成后运行模拟,软件会自动开始执行模拟。
5.查看结果
运行结束后,预测窗口会自动现实模拟的结果,通常包含频率图、累计图、统计图、百分比图、模拟分析图等。
四、蒙特卡洛模拟项目计划工期案例演示
模拟案例描述:项目初期,甲方要求项目要在108天内完成,即项目总工期不能超过108天,项目组需要预测项目在108天内完成的可能性有多大。
环境准备:安装水晶球软件(上文有软件下载链接),下载完成后打开,并加载到Excel中,加载成功后会在Excel工具栏显示。
1.建立数据表:假设该项目工期采用三点估算法进行估算,各阶段项目工期符合三角分布。将项目分为5个阶段(实际项目中也可以按照WBS分解为不同的活动,各项活动工期符合某一个统计分布)。分别估算每个阶段工期的乐观值、最可能值、悲观值,记录在Excel中。
项目总工期=策划与需求阶段工期+设计阶段工期+编码阶段工期+验证阶段工期+发布阶段工期
2.定义假设变量:假设变量就是影响最终结果的自变量,通常服从某一种统计分布,在本案例中,假设变量就是各阶段工期,选择G列数据作为假设变量,Excel工具栏选择Crystal Ball-定义假设-选择数据分类类型。此处选择三角分布,填写对应的分布参数,依次将假设变量全部定义完成。
已定义假设变量的单元格会变成绿色。
3.定义预测变量:预测变量就是想要预测结果的变量,通常是基于某一组数据计算得到的。在本案例中,预测变量就是总工期,总工期对应的Excel单元格定义为预测变量。Excel工具栏选择Crystal Ball-定义预测-填写预测参数。
已定义预测变量的单元格会变成蓝色。
4.设定实验次数并运行模拟:此处设定的实验次数是500次,点击启动。
5.查看模拟结果:模拟结果显示项目有95%的可能性可以在108天内完成,表示项目工期风险较小,项目组可以按照甲方的要求承接该项目。
以上就是采用一个简单的场景案例介绍了蒙特卡洛模拟在项目工期风险预测中的应用。蒙特卡洛模拟除了在工期模拟中应用,还可以用在评审方式决策、缺陷预测、工作量预测等活动中,结合项目的实际情况可探索更加灵活的应用方式~