目前IT业内常见的规模度量方法有功能点分析(FPA:function points analysis)、代码行(LOC:lines of code)、德尔菲法(Delphi technique)、COCOMO模型以及复杂度估算模型(Complexity Model)。
曾看过业内有不少公司在CMMI预评估之前都使用Function Points 功能点或COCOMO模型,但是在预评估后,都更换为其他方法,最根本的原因在于这两种方法过于复杂,虽然项目组成员经过多次估算培训,但要做到能全面合理解释、滴水不漏确实不太容易,因此在CMMI预评估时,不少公司的项目组成员在估算这个问题上给严厉的主任评估师问得漏洞百出,难以自圆其说而狼狈不堪,当然也有一小部分公司团队因为在评估前和主任评估师有很好的沟通,做了充分准备,能合理解释,有效地规避了风险。
因此,选择估算模型,一定要以自己公司的实际项目情况作为选择标准,“最适合自己的也就是最好的。” 根据估算成本和使用简单性原因,业内有不少公司采用了Delphi法或复杂度模型做为公司主要估算模型,其中以复杂度模型为最贴近项目实际运作。
复杂度估算模型原理是基于以往公司内部同类项目/工作的经验及历史数据,按功能或任务或者技术类型,按高/中/低难度进行划分,每个难度对应的 SIZE(SIZE对应值可以采用以前类似Function耗费的真实成本(比如单位:MD 人天 )的一个比率进行调节),并通过识别新需求的复杂度来统计出项目规模。例如我们可以定义:
1.New Function
Function Type Low Average High
2.Enhancement Function
Function Type Low Average High