登录      新用户注册      English
站点首页公司简介产品与服务知识库专家队伍人才招聘联系我们典型案例


资料下载 文章分享 推荐书籍
   文章分享
DELPHI估计方法指南
2008-01-28    Views:988     [Back]

宽带Delphi估计方法指南

任 甲 林


本文简述了Delphi方法的历史与步骤,详细描述了宽带Delphi方法的实施步骤,并对Delphi方法的实施要点进行了描述,为该方法的实践提供了一个操作性指南。
关键字
Delphi方法,估计,专家

1概述

  在进行决策时,如果单独地有一位专家做出判断,可能会存在偏见,如果是多位专家一起协商,则可能摒弃掉蒙昧无知的观点,但是也有两点不足:一是一些组员可能会过分地受比较善辩和自信的成员的影响。二是一些组员可能会过分地受权威人士或政治因素的影响。因此,为了客观地解决问题,Rand公司于1948年提出Delphi方法,它是一种预测未来的手段,故以古希腊神谕所在的地方(Delphi)来命名,该方法最初用于军事目的,很快就被推广到其他的领域,比如新产品开发、销售与市场研究、管理方法的改进、人口的预测等。

  最初的Delphi方法有3个基本元素构成:结构化的信息流、反馈结果给参与者、匿名的参与者。基于上述3个基本元素,Delphi方法用于不同的领域时有不同的具体操作。用于成本估计的标准Delphi方法的过程[1]如下:

  (1)协调员给每位专家一份规格说明书和一张记录估计值的表格。
  (2)专家无记名地填写表格,他们可以向协调员提问,但不得互相讨论。
  (3)协调员对专家填写在表上的估计结果进行小结,并反馈给各专家,如果需要进行下一轮估计,则要求专家要记录下一轮估计的理由。
  (4)专家重新无记名地填写表格,该过程要适当地重复多轮。
  (5)整个过程中,不得进行小组讨论。

  70年代初,Boehm针对软件成本的估计提出了宽带Delphi方法(wide-band Delphi),之所以称为宽带,是因为增加了沟通的信息量,他认为在标准的Delphi方法中,反馈给各专家的信息量不够,不足以使其他参与人员调整自己的估计值。

宽带Delphi方法的主要步骤如下:

  (1) 协调员给每位专家一份规格说明书和一张记录估计值的表格。
  (2) 协调员召集小组会议,专家与协调员以及专家之间对估计问题进行讨论
  (3)专家无记名地填写表格。
  (4) 协调员对专家填写在表上的估计结果进行小结
  (5)协调员召集小组会议,让专家对差异很大的估计项进行讨论。
  (6)专家重新无记名地填写表格,该过程要适当地重复多轮。

  笔者在实践中推广该方法时发现,该过程在实际操作中,还有一些具体的问题需要解决。因此笔者对上述的步骤进行了扩充与细化,以确保该方法的成功实施。

2 宽带Delphi方法过程


图1 宽带Delphi方法估计过程

活动1:准备估计的内容。
准备估计的内容时,有两个要点:
(1)完备的识别被估计的内容。
(2)尽管Delphi方法既可以对颗粒度比较大的任务进行估计,也可以对颗粒度比较小的任务进行估计,但是还是要细分任务,其目的是为了提高估计的准确度与加快估计值收敛的速度。如果让一个人去估计一幢大楼的使用面积和去估计一个房间的使用面积,估计的准确率显然差别很大。由作者将被估计的内容细分为更小颗粒度的问题,这样更容易把握,估计时更容易快速收敛。

活动2:成立估计小组。
估计小组有协调人、作者和3到6名估计专家组成。协调人负责计划和协调软件估计活动,协调人在担任此角色时不能用自己的观点去引导专家,也不能因为自己的认识或偏见而对软件估计的结果进行歪曲。协调人不能是作者,也不必作为专家。专家的数量不宜太多,否则成本比较高。专家必须具备2个条件:
(1)有业务与技术经验,熟悉被估计的内容;
(2)要有估计的经验,接受过估计方法的培训,并曾经在实践中评价过自己的估计准确率。

活动3:召开启动会议。
协调人负责召开启动会议,在启动会议上主要进行以下工作:

      1. 作者向专家介绍估计的内容、项目的各种假设和限制条件。
      2. 专家对被估计的内容达成一致,并确认各种假设和限制条件。

   专家与作者在本次会议上应对被估计的内容进行充分的讨论,以确保大家的理解是一致的,并通过这种讨论可能对被估计的内容进行完善。

      1. 专家对估计结果的度量单位达成一致。

比如估计软件的规模时,是用行还是千行作为计量单位,代码行是否包括注释行、空行、开发平台自动生成的语句等要达成一致。

      1. 对估计结束的准则达成一致。

结束的准则包括:

  1. 估计结果可接受的判断方法,即估计结果在多大的偏差范围内是认为是可接受的,此时称为估计结果收敛。
  2. 在连续几轮无法收敛后,估计应该结束;
  3. 对于不能收敛的估计内容如何确定估计结果。

结束准则也可以由协调人和作者在活动2中确定。

活动4:专家独立估计。
在专家进行独立估计时,需要注意:

  1. 专家的估计活动不应受外界压力的影响,协调人或者作者不能给出估计结果的上下限或其他限定。
  2. 各专家之间没有讨论和咨询。
  3. 各专家采用的估计方法也不受限制。各专家即可以根据自己的经验估计,也可以采用类比的方法进行估计。
  4. 如果专家认为被估计的内容中存在不明确的地方,应记录自己所做出的各种假设。

活动5:汇总估计结果。
收集各专家的估计结果,制作本轮的估计结果表:

表1 Delphi方法估计结果记录表


轮次

 

 

 

 

 

 

任务ID

任务

最大值

最小值

平均值

差异率

是否接受

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

差异率的计算方法以及接受的准则应该在活动2或者活动3时确定,比如可以采用如下的差异率计算公式及接受准则:
(1)差异率=max(最大值-平均值,平均值-最小值)/平均值;
(2)当差异率<25%时接受平均值为最终估计结果。
需要注意的是对于颗粒度比较小的任务,可能对差异率比较敏感,比如一个程序的平均估计规模为10行,如果估计结果为13行、10行、7行,则差异率按上面的准则计算则为30%,大于了25%,估计结果不可以接受。而如果一个程序的平均估计规模为100行,如果估计结果为103行、100行、97行的话,同样是3行的绝对偏差,该估计结果就是可以接受的。所以对于颗粒度比较小的任务,可能需要区别定义接受准则。

活动6:讨论不收敛项。
将本轮的匿名估计结果公布给各专家,讨论不收敛的估计项,在讨论时只对被估计的内容的理解进行讨论,不讨论每个人具体的估计结果,为了达成一致的理解,此时可能需要重新细化估计内容或确定估计假设。

活动7:新一轮的估计
对于估计结果未被接受的估计项,执行活动4,如此不断反复,直至满足以下任何一项条件:

      1. 完成多轮估计(如4轮),该条件已经在结束准则中确定了。
      2. 所有的估计结果收敛于一个可以接受的范围;
      3. 所有专家拒绝对各自的估计结果进行修改。

   活动8:讨论未收敛的估计项
对于结束了多轮估计后,仍然未收敛的估计项,可以采用如下的方法确定最终估计结果:

  1. 按照少数服从多数的原则,忽略少数与其他估计结果差异很大的估计结果。
  2. 采用“掐头去尾求平均值”的方法。即:排除最大与最小值后,求剩余数值的平均值作为最终估计结果。
  3. 由各专家进行讨论,形成一个一致的意见。

当然,也不限于采用其他方法确定最终的估计结果。

   活动9:总结本次估计
估计小组对最后汇总的估计结果进行审核,并对结果达成一致。
估计小组可以对宽带Delphi方法进行思考,提出改进措施,以使将来的估计活动更加有效。

3 小结

    宽带Delphi方法基于多名专家进行估计,既可以估计规模,也可以估计工作量,比单个人估计具有更少的偏向性,不需要历史数据,可以在适用于软件开发的不同阶段,简单易行。在实际应用该方法时,需要认真体会上述9个活动中的注意事项,以获得切实可行的估计结果。

参考资料:
[1] Boehm, Barry, Software Engineering Economies, Prentice-Hall: Englewood  Cliffs, N.J., 1981.

2008-01-28    
关于我们 | 人才招聘 | 联系我们 | 任甲林博客 | English | 技术支持:35互联
备案号:京ICP备08002867号  © 2008 麦哲思科技(北京)有限公司   -