估算项目工作量的方法:定额法
定额法是根据历史功能的分类与复杂度建立定额表,然后对于新项目的功能首先进行分类,然后再进行复杂度的判定,从而查表得到估算的开发工作量。
例如:某公司将自己做的应用软件进行了分类,并分为复杂、简单、一般三种复杂度,建立的开发工作量定额表如下:

有某个新项目立项时,拟估算工作量,可以使用定额法。根据初步的需求识别每个功能的类别与复杂度,查表就可以得到定额开发工作量,后期可以按一定的倍数估算总体工作量,也可以在EXCEL中定义公式自动查表计算。

上述案例中项目的总工作量是以开发工作量的2倍进行估算的。
在公司内建立与推广定额法时,可以参考如下步骤:

步骤一:划分项目类别
不同类别的项目其功能类别与定额等都是不同的。可以把项目进行多层分类。分类的维度可以多种,比如按部门分类、按行业分类、按技术方法分类等等。
步骤二:划分功能类别
此处不是列举具体的功能,而是对功能进行提炼归类。不同类型的软件,功能类别不同。分类时要服从MECE原则,即相互独立,完全穷尽(Mutually Exclusive Collectively Exhaustive)。
步骤三:划分定额刻度
一般分为三类刻度即可,比如复杂、一般、简单。如果划分的刻度太多,在实际中不太容易区分。每类功能的不同刻度应该给出具体的定义,举例如下:

步骤四:确定定额数字
确定每个分类每个刻度的定额数字时有两种方法:专家讨论法与历史统计数据法。在没有历史数据记录时,可以采用专家讨论法。即组织公司内的专家进行讨论,根据专家各自的经验大家达成一致。
当有历史数据记录时,可以对历史项目的每个功能按照步骤二和步骤三确定的分类标准确定其刻度,然后统计每个分类与刻度所有功能的历史工作量,算出平均值作为定额数字。
为了使该方法简单易用,建议定额数字确定为一个单点值而不是一个区间。比如单据录入类的复杂功能为5人天,而不是3到7人天之间。
步骤五:校验微调定额
选择有代表性的记录了总工作量的历史项目,采用上述方法进行估算工作量,然后与实际工作量进行对比,分析估算工作量与实际工作量的差异是否可接受,如果有些项目的估计偏差率不可接受,则对定额数据进行调整。
步骤六:试点优化定额
应用上述定额法到新项目中,并积累新项目的实际数据,监督该方法的准确性,对该方法进行持续优化。
定额法的优点是可以进行快速估算,并容易和客户达成一致,缺点是需要对定额进行校对后使用。
本文作者:任甲林 高成熟度主任评估师 麦哲思科技
