为什么在线项目管理软件功能不能做好软件项目估算?

  一直以来,软件项目的规模估算是个争论不休的问题。不论是对软件开发团队还是对软件用户,软件规模估算的重要性都是不容置疑的。因为它能极大的影响着甲方对发包软件的成本估算,乙方对自身开发成本的预测,以及乙方对开发过程的量化管理等诸多方面。

  而且,只有相对合理和相对准确地估算软件规模,才能对项目的进度安排、资源分配等各个环节进行合理的部署。所以,软件项目的规模估算是软件项目中相当重要的一环。但是,以下的原因却使项目的实际操作中对项目规模估算失准了。

  对项目规模估算认识不足

  项目规模估算一般分为两种应用场景:一是招投标的时候用来估价、报价;二是用来安排进度计划和指导项目具体工作的分配。

  因此,如果对规模估算认识不足的话,将可能会在这两种应用场景中估算失准。例如,如果项目规模低估的话就会造成人力估算低估、成本预算低估、日程过短,最终人力资源耗尽,成本超出预算。

  最后为了完成项目不得不赶工,不但会影响到项目质量,甚至会导致项目失败。而如果规模高估的话,就会因估价过高而降低了招投标时的竞争力,或在进度安排时提高了开发成本和浪费资源。

  由于对规模估算的认识不足,使到我在这次项目中就尝到一个大苦果,就是低估项目规模导致项目需要多次的追加预算。我不但多次受到公司领导的批评,而且还受到客户的多次投诉。

  个人经验估算法带有一定的局限性

  一般来说,依靠历史或个人经验的规模估算方法都有一定的局限性。原因是很难在项目分析和计划阶段就对软件的规模进行相对准确的估算。

  因为估算是依靠评估人员的经验,所以对评估人员的能力要求比较强,并且难以由第三方对评估人员的工作偏差作出修正。在这次项目的初期,我片面的只是根据个人经验进行估算,结果是轻率的估算了项目规模。这是最后导致项目失利的原因之一。

  另外,不同软件项目使用的技术不一样,这一点也非常影响到软件规模的估算。例如同一个功能,使用JAVA语言和使用Ruby语言所涉及的代码行相差数十行,甚至数百行。即使同为JAVA语言,使用不用的框架所需要编写的代码行也不一样。

  对项目估算时缺乏数据支持

  因为在软件开发初期时对规模估算都是很难准确量化的,所以到底需要多少资源、多长时间或者规模估算到什么的程度才算是合理的是没有一个标准的。

  但一个好的项目估算,是离不开一个准确的、可信的、客观的数据作为基础。如果在项目规模估算时只凭项目管理人员的经验进行估算,而缺乏大量的数据支持,那么估算最终就会变成常见的"三拍"现象:首先是项目经理拍脑袋估算,然后是项目经理估算失准时拍马屁的补救,最后是项目失败时拍屁股走人。

  当然,这只是个玩笑。不过由此可见项目规模估算不能只依靠经验来估算,而应该是要有大量的数据来支持。