经理的经验极其重要,对客户的分析基本上要依赖经验做判断,要求管理人员有大量的客户经验和行业分析能力。
3. 历史数据估算法的运用
依据历史数据估算软件开发周期是一种比较常见的方法,这种方法以历史软件开发周期为依据,在估算时把当前软件项目的情况与历史数据加以对比,从而得出最终结果。按照历史数据估算开发周期准确度还是相当高的,但这种方法只适用于对某类软件的开发,比如某个行业业务系统的开发,当要估算的软件与历史软件相差太多,比如开发工具完全不同,或者类型完全不同,就不能再依赖这种方法,最起码应该辅助使用其它估算法。如果没有历史数据或是开发一种新领域软件,可以使用代码行或功能点估算法,在此基础上再通过其它方法校正。
事实上目前项目管理人员对开发周期的估算大部分属于人力时间估算法,凭借的是自己的经验,经验越多估算的结果就越精确,但是大部分项目管理人员对以前很有价值的历史数据缺乏归纳整理,估算的时候凭借感觉的成分多一些,所以精确度相对要低很多,所以要求我们的项目管理人员不仅要有大量软件开发的经验还要不断总结积累,历史项目数据对于以后软件开发周期的估算是非常有价值的。
在实际使用历史数据估算法时,建议项目经理建立一个历史项目数据库,在库中包含以前所有项目的开发周期、项目规模、开发人员状况、客户状况等详细数据,当估算时根据当前项目的状况在库中寻找最类似的历史项目,然后再比较两个项目之间在项目规模、项目风险、人力资源之间的区别,我们假定历史项目开发周期为A当前项目的周期可以依据下列公式得出 B=A×(2×S+R+P+2×C)/6
S:代表软件规模 R:代表风险 P:代表人力资源 C:代表客户
以上值均指当前项目与历史项目的比率。其中软件规模和客户两项占的权重最大,这也是根据项目管理经验得出的,在实际使用历史数据估算法时还可以灵活加入其它因素。
实际的比较因素应该不止这些,但软件规模、风险、人力资源及客户状况是其中最重要的,对软件开发的影响也最大,所以这个公式中只考虑了这些因素。