第十章 分解和重组
1)大数法则
团队的估算结果得益于被称为大数法则的统计特性。该法则的要点在于如果对一个大的对象进行估算,估算值要么偏大,要么偏小。但是如果对多个较小的对象进行估算,部分估算误差会偏大,另一些会偏小。这些误差可以在一定程度上相互抵消。在前面的例子中,你的团队低估了某些特性,但又高估了另外一些特性,累积起来可以相互抵消一部分误差,所以总体估算结果的误差只有7%。而在你的估算中,整个24%的误差都是在一个方向上的。
把对大对象的估算分解成对多个小对象的估算,以便利用大数法则,让偏大的误差和偏小的误差在一定程度上相互抵消
2)估算的小对象应小到什么程度?

到关注软件构造的时候,做出的决策的粒度是很微小的,诸如:应该如何设计这个类的接口?如何命名这个变量?如何设计这个循环的结构?,等等。这些决策仍然很重要,但与一开始在软件概念层次上做出的重大决策相比,现在任何单个决策的影响都是局部的。
软件开发是一个逐步细化的过程,其含义是:项目进行得越深入,分解估算的粒度就会越细。在项目早期,可能是根据特性领域的划分来建立自底向上的估算。后来,可能是根据市场需求来建立估算。再往后,可能是使用详细需求或工程需求来建立估算。在项目的最后阶段,可能是使用基于开发人员或测试人员任务的来建立得到的估算。
10.2 通过基于活动的工作分解结构进行分解
有时某些未发现的工作是以被遗忘特性的形式隐藏起来的,有时则是以被遗忘任务的形式隐藏起来的。通过基于活动的工作分解结构(WBS)来分解项目有助于避免遗忘任务。


要使用这种通用的工作分解结构,就要把每栏中的说明和其所属的类别组合到一起——例如,建立/进行计划、管理计划、评审计划、建立/进行需求工作、管理需求工作、评审需求工作、建立/进行编码、管理编码、评审编码,等等。表中的点表示最常见的组合。
该工作分解结构给出了一张清单,列出了估算时可能要考虑的相当广泛的活动类型。为了包含与所在开发组织的软件开发方法的细节有关的起码的附带条目,你可能需要扩展这张清单。你也可能会决定排除这个工作分解结构中的某些类别。只要在这样做的时候清楚做出这些决策的原因,就没有什么问题。
10.3 累加最好情况和最差情况估算的危害
你是否有过这样的经历?在整理出一张详细的任务清单后,仔细地估算清单中的每个任务,想着:“如果我们足够努力,应该可以实现。”在小心翼翼地进行计划后,你在第一个任务中非常努力地工作,然后按时交付。第二个任务中出现了一些预期外的问题,但是你通过加班来按进度完成了。第三个任务中出现了更多的问题,于是你在那天结束时没有完成它,想着第二天早上可以把它弄完。但到这一天结束的时候,你只是刚刚完成了第三个任务,甚至还没有开始处理本应在那天进行的任务。在那一周结束的时候,你已经落后进度表不止一个任务了。
怎么会这样?是你的估算出错了,还是只因为表现的不够好?
问题的根源在于第一章 "90%置信度" 和第四章 "估算误差的来源" 中讨论的乐观主义问题的共同影响
10.4 建立有意义的总体最好情况和最差情况估算
既然不能分别累加最好情况和最差情况估算值来得到总体最好情况和最差情况估算值,那该怎么做?统计学上常用的近似方法是假设最小值和最大值之差的 1/6 大致等于标准偏差。这一近似方法假设实际结果小于最小值的可能性是 0.125%,而小于最大值的可能性是 99.86%
1)对少量任务计算总体最好情况和最差情况(简单标准偏差公式)
标准偏差(Standard Deviation)是统计学中用于衡量一组数值离散程度的一个度量。它描述了数据集中各个数值与平均值(均值)之间的偏差的平方的平均数的平方根。标准偏差是方差的算术平方根。
标准偏差的计算步骤如下:
- 计算平均值(均值):将所有数值加起来,然后除以数值的个数。
[ \bar{x} = \frac{\sum_{i=1}^{n} x_i}{n} ]
其中,( \bar{x} ) 是平均值,( x_i ) 是每个数值,( n ) 是数值的总数。- 计算每个数值与平均值的差的平方。
[ (x_i - \bar{x})^2 ]- 计算这些平方差的平均值,即方差。
[ \sigma^2 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})^2}{n} ]
其中,( \sigma^2 ) 是方差。- 计算方差的平方根,得到标准偏差。
[ \sigma = \sqrt{\sigma^2} ]
其中,( \sigma ) 是标准偏差。
标准偏差的几个重要性质:
- 标准偏差越大,数据的离散程度越高。
- 标准偏差越小,数据的离散程度越低。
- 当所有数据值都相同的时候,标准偏差为0。
- 标准偏差的计算适用于描述对称分布的数据,特别是正态分布。
在现实应用中,标准偏差常用于质量控制、金融市场分析、科学研究等领域,以帮助理解数据的变异性和做出基于统计的决策。
对少量(大约不超过10个 )任务,可以根据简单标准偏差公式来计算出最好情况和最差情况。
标准偏差 = (最差情况估算值之和 - 最好情况估算值之和) / 6
2)对大量任务计算总体最好情况和最差情况(复杂标准偏差公式)
估算学处理方法的第一步是对每一个单个的估算值分别应用标准偏差公式
单个标准偏差 = (单个最差情况估算值 - 单个最好情况估算值) / 6
- 使用前述公式计算每项任务或特性的标准偏差;
- 计算每项任务的标准偏差的平方,即方差(variance)
- 对方差求和;
- 求方差和的平方根。
3)建立总体最好情况和最差情况估算值
4)有关百分比置信度估算的注意事项

浙公网安备 33010602011771号