【公众号@ “项目管理研究所” 将会第一时间更新文章并分享《行业分析报告》】 归档于软件项目管理初级学习路线第七章 软件项目进度计划《初级学习路线合集 》


前言

大家好,这节我们学习软件项目管理—传统历时估算,进入项目进度计划的第三个过程-历时估算。

软件项目管理预测模型(7.2.传统历时估算)(1)

历时估算就是估算持续的时间,包括任务、路径、项目的持续时间。

历时估算分为传统历时估算方法和敏捷历时估算方法,这节主要介绍传统历时估算方法。

传统历时估算方法
  1. 定额估算法
  2. 经验导出模型
  3. CPM(关键路径法估计)
  4. PERT(工程评估评审技术)
  5. 预留分析
  6. 其他:❑ Jones的一阶估算准则❑ 类比估算❑ 专家判断❑ 基于承诺的估计
定额估算法

定额估算法的思路比较简单,公式:T=Q/(R*S)

其中T:活动历时,Q:任务工作量,R:人力数量,S:工作效率(贡献率)。

软件项目管理预测模型(7.2.传统历时估算)(2)

举例:比如 任务工作量=6人天,人力数量=2人,工作效率=1,则活动历时为3天。如下图所示:

软件项目管理预测模型(7.2.传统历时估算)(3)

这个估算方法适合规模比较小的项目,或者某个任务的历时估算。

经验导出模型

经验导出模型是一个参数模型的方法,与成本计划的参数模型一样,是根据项目数据统计分析得出来的。

软件项目管理预测模型(7.2.传统历时估算)(4)

不同的研究机构根据不同的研究对象得出的模型不同。尽管形式不同,但是基本模式如下:D = a * E的b次幂。

D是以月为单位的进度,E是以人月为单位的工作量,a是2-4之间的系数,b是1/3左右的系数。

软件项目管理预测模型(7.2.传统历时估算)(5)

例如:Walston-Felix模型: D = 2.4 * E的0.35次幂。基本COCOMO: D=2.5*E的b次幂

软件项目管理预测模型(7.2.传统历时估算)(6)

软件项目管理预测模型(7.2.传统历时估算)(7)

那么在实践过程当中,大家不要照搬照抄别人的模型,应该基于自己项目数据的统计进行收集,研究出自己企业的模型。

比如说某个企业项目数据的研究出模型: D = 3 * E的1/3次幂,因此可以进行进度估算。

对于这个企业某项目规模是E=65人月,则项目的时间进度估计为12个月。

软件项目管理预测模型(7.2.传统历时估算)(8)

下面我们介绍CPM(关键路径法估计),PERT(工程评估评审技术)。他们是项目管理当中比较经典的方法。

CPM(关键路径法估计)

关键路径方法主要体现在进度编排上,这里的历时估算主要是针对路径的估算。步骤如下:

  1. 确定项目网络图
  2. 每个任务有单一的历时估算
  3. 确定网络图中任务的逻辑关系
  4. 关键路径是网络图中最长的路径。
  5. 关键路径可以确定项目完成时间

举例:这个图是某项目的网络图,采用CPM历时估算时,每个任务有单一的历时,A为100,B为10,这个图的关键路径是A这条路径,长度是100,所以项目完成的最短时间为100。

软件项目管理预测模型(7.2.传统历时估算)(9)

如果估计任务历时时,存在很多分析,这时我们可以考虑PERT方法。

PERT(工程评估评审技术)

基本步骤如下:

  1. (Program Evaluation and Review Technique)利用网络顺序图逻辑关系
  2. 当项目中某项单独的活动,存在很大的不确定性时。
  3. 采用加权算法估算任务历时
  4. 利用网络图逻辑关系,确定路径、项目历时

加权算法:

选定3个估算值:

  1. O是最小估算值:乐观(Optimistic),
  2. P是最大估算值:悲观(Pessimistic),
  3. M是最大可能估算(Most Likely)。

采用加权平均得到期望值E=(O 4M P)/6

软件项目管理预测模型(7.2.传统历时估算)(10)

举例:对某一个任务采用PERT加权算法,(8 4*10 24)/6,最后等于12天,所以这个任务估算的时间是12天。

软件项目管理预测模型(7.2.传统历时估算)(11)

PERT估算方法是在估算任务过程当中存在分析时采用的方法,24天,8天,10天,这些天完成的概率肯定是不同的,24天完成的概率肯定是大于8天完成的概率,概率不同风险也就不同。

软件项目管理预测模型(7.2.传统历时估算)(12)

所以我们需要给一个评价的指标,这个指标就是标准差和方差。

标准差等于(最大估算值-最小估算值)/2

方差等于标准差的平方

软件项目管理预测模型(7.2.传统历时估算)(13)

我们再来看PERT评估一条路径的指标,这个路径的历时等于该路径上每个任务历时之和。

路径方差等于该路径每个任务方差之和。

软件项目管理预测模型(7.2.传统历时估算)(14)

我们来看一条例子,这条路径有三个任务,J、k、L。

软件项目管理预测模型(7.2.传统历时估算)(15)

我们采用PERT估算方法,J这个任务有三个估算值:2,3,6,则该任务的历时估算值为E=3.33。

K这个任务三个估算值为:4,6,8,PERT估算历时得出的结果是E=6。

L这个任务三个估算值为:3,4,6,PERT估算历时得出的结果是E=4.17。

三个值加起来,得出的这条路径的历时估算值是13.5

根据公式计算每个任务的标准差和方差,从而得出该路径的标准差和方差。

我们利用这个标准差来评价这个PERT历时估算结果,为了评价这个估算结果,需要应用一个概率的理论。

软件项目管理预测模型(7.2.传统历时估算)(16)

正态分布的均值减去一个标准差的概率约等于68.3。那么他的物理意义是均值加减1倍的标准差,也就是红色的部分围住的面积占总面积的68.3%。

软件项目管理预测模型(7.2.传统历时估算)(17)

同理,均值加减2倍的标准差概率约等于95.5%,那么他的物理意义是均值加减2倍的标准差,也就是红色的部分围住的面积占总面积的95.5%。

软件项目管理预测模型(7.2.传统历时估算)(18)

同理,均值加减3倍的标准差概率约等于99.7%,那么他的物理意义是均值加减3倍的标准差,也就是红色的部分围住的面积占总面积的99.7%。

软件项目管理预测模型(7.2.传统历时估算)(19)

我们应用一下这个概率的理论,来评价一下上面项目的历时估算,顺便加深大家对概率理论的理解:

刚刚上面项目的历时估算 E 也就是均值是13.5,那么均值减去1倍的标准差,既13.5-1.07= 12.43,均值加上1倍的标准差等于14.57,所以项目从12.43天—14.57天内完成的概率为68.3%。如下图:以此类推…

软件项目管理预测模型(7.2.传统历时估算)(20)

那么我现在考大家一个问题,在14.57天内完成的概率是多少呢?

大家想一下14.57是什么,他等于均值加上1倍的标准差等于14.57,14.57内完成的概率就是0—14.57天内完成的概率。

他的物理意义相当于这个蓝色的箭头以左的部分围住的面积,占总面积的百分比。我们想一下他的概率是多少?

软件项目管理预测模型(7.2.传统历时估算)(21)

那么均值以左的部分是50%,那么均值加1倍标准差的概率所占概率为68.3/2=34.2,所以这个项目在14.57天内完成项目的概率为84.2%。

软件项目管理预测模型(7.2.传统历时估算)(22)

预留分析

预留分析也叫做存储分析,包括应急储备和管理储备,既应急预留和管理预留。

软件项目管理预测模型(7.2.传统历时估算)(23)

  1. 应急预留是包含在进度基准中的一段储备时间,用来应对已经接受的已识别风险, 以应对进度方面的不确定性 。
  2. 管理预留是为管理控制的目的而特别留出的项目预算,用来应对项目范围中不可预见的风险。

他是加在任务末端的一个人为任务。

Jones的一阶估算准则
  1. 估算项目功能点
  2. 从幂次表中选择合适的项目类型和级别的不同,从而选择不同的幂次将功能点升幂。

软件项目管理预测模型(7.2.传统历时估算)(24)

我们举个例子:比如某项目,估计功能点为35个功能点,它属于平均水平的商业软件,我们从幂次表当中选择的幂次是0.43,则进度的粗略估算为12个月。

软件项目管理预测模型(7.2.传统历时估算)(25)

类比估算

以过去类似项目的实际持续时间为依据,来估算当前项目的持续时间.

他是一个比较粗的估算,还在项目信息不足的情况下可以采用的一个方法。

专家判断方法

专家根据下面专业知识而做出的历时估算.

  1. 进度计划专业知识
  2. 有关估算的专业知识
  3. 学科或应用知识
基于承诺的进度估算

基于承诺的估算方法他是从承诺的角度来估算历时,项目经理要求每个开发人员给出任务完成时间的承诺,然后安排进度,基本没有估算的过程,好像是个非理论的方法,但是这个方法在实践中也是大量使用,而且效果也不错。

从根本上讲,这个方法是基于项目经验数据得出的,所以他是有优点的,优点是开发者对于自己承诺的进度是比较关注的。

总结

我们来总结一下传统历时估算方法。

  1. 定额估算法是思路比较简单的方法。
  2. 经验导出模型是一个参数模型的方法。
  3. CPM和PERT方法是一个经典的估算方法。
  4. 预留分析方法相当于是一个预留储备方法。
  5. 当然我们还讲了Jones的一阶估算准则,类比估算,专家判断,基于承诺估算的其他进度估算方法。

到这里,第七章 第二节 传统历时估算方法就讲解完毕了!下一节介绍敏捷历时估算法~

如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~

后续将持续更新【软件项目管理初级学习路线】的全知识点,大家感兴趣的多多关注博主哟~————————————————

,