在估算时为什么要分解估算对象?

来源:互联网 发布:淘宝店被降权怎么办 编辑:程序博客网 时间:2024/06/06 05:51

    在估算规模与工作量时,常常看到很多项目经理没有拆分被估算对象,一个模块的规模超过1万行或者一个任务的工作量超过30天之类的。这样估算的偏差值是比较大的,为什么呢?我们举例说明:

    假如有一个软件模块估计有1万行代码,根据历史经验,我们估算偏差率的标准差为10%,无论估算偏差率符合什么分布,根据切比雪夫不等式,至少有89%的数据落在平均数加减3个标准差的范围之内,实际的代码行数会以89%的概率,落在7000到13000代码之间。而如果估算偏差率符合正态分布,则实际的代码行数会以99.73%的概率落在区间(7000,13000)内。

    如果把这个模块拆分成50个程序进行估算,每个程序的平均规模为200行代码,估算偏差率的标准差仍然为10%,则估算偏差的标准差为20,方差为400,50个程序的累计方差为400*50=20000行,方差的开方为标准差=141.4行,于是实际的代码行数的区间为(10000-3*141.4,10000+3*141.4)=(9576,10424)。

    将两个区间进行比较:

    (7000,13000)

    (9576,10424)

    两种估算结果的精度差别显然,所以在估算时,一定要将估算对象细拆分!

    对于上述的推理过程可以在水晶球软件中进行模拟对比,便于直观地观察两种方法的差别,假如两种方法都估算出1万行代码,在水晶球软件分别模拟1000次实际结果,左图是未拆分任务时实际代码行数落在区间(9576,10424)的概率,大概是34.97%,右图是细拆分任务后实际代码行数落在区间(9576,10424)的概率,大概是99.81%。

 

0 0
原创粉丝点击