不清,不能正确反映一项工作的难易程度以及代码的效率。因此,在传统的LOC方法上有许多改进的方法。这些不断演化的新方法有:PERT功能点估算法、类比估算法、系统分解法等。
除了以上介绍的两种方法外,还有许多其它的估算方法。不同的方法适用于不同的具体环境,有些方法虽然很好但并不一定适合当前的任务。因此,建议至少使用两种方法进行规模估算,不要依赖于任何一种方法。只有量体裁衣,具体问题具体分析,才能得到尽量合理的规模估算。
准确进行项目规模估算的步骤
(1)规模估算前先制定良好的规划
一个成功的软件项目首先要有一个好的起点,也就是一个合理的规划。同样道理,一个好的规模估算也需要有一个好的规划。例如,当我们的办公室内堆满了杂乱无章的文件时,恐怕是无法知道对于我们真正有用的文件在哪里。同样道理,当我们从软件项目中收集了各种需求、意见和问题时,我们也很难从中估算出整个项目的规模、工作量以及成本。因此,在估算之前首先要对众多信息进行整理、归类和分析,从而得到一个条理清晰的项目规划。在这个规划提供的框架内,才可能正确的估算。因为有了规划才能成竹在胸,才能给规模估算指出正确的方向。
(2)确定软件项目的范围
确定软件项目的范围,就是确定目标软件的数据和控制、功能、性能、约束、接口以及可靠性的要求。这项工作和需求分析是很类似的,如果之前已经达成需求分析规约,那么可以直接从《需求分析说明书》中把有用的部分拿来使用。如果还没有开始需求分析,就必须要使用需求分析技术从客户处得到一个具体的软件范围。因为确定软件项目的范围,就能形成一个有界限的开发框架。虽然这个开发框架还不够精确,但足以进行规模的估算工作。
(3)制订各级别的估算表框架和模板
在开发框架明确后,我们下一步要做的是把公司内部最有项目经验、最有估算经验的工程们召集在一起,制定各级别的估算表框架和估算表模板,并写上足够清晰的指导。当项目组用这些模板的时候,就相当于用了估算精英们的脑袋来思考本项目的估算了。然后,再根据项目的实际情况列出具体的活动,最后是把这些活动进行细化估算。据我过往的经验,很多时候规模估算没有做好的缘故是因为没有估算好非直接生产编程的活动的规模,例如管理类、支持类、维护类的活动,而根本的原因是没有制定好估算表框架和有合适的模板可利用。
(4)根据合适的估算表模板进行由底而上的估算
最后一步是项目组根据项目的特点利用合适的估算表模板继续细化,例如进行详细的WBS分解,列出要完成这个项目所需要的全部工作。然后,把这些工作通过由底而上的方式进行综合,以估算出项目规模的大小。
最后,分享这次项目失败给我的教训:要客观的利用和看待过去的经验。因为以往的估算经验虽然是宝贵的财富,但是如果财富用错了地方就会变成垃圾。在使用历史经验时,要注意现在和参考经验之间的差异。不要忘记,随着时间的推移,软件开发领域的技术和方法都在发生着巨大的改变。