软件项目规模评估

顾名思义软件评估就是对软件项目的规模进度做出一个合适评估以判断软件项目的预算以及项目计划。

软件评估是软件工程的一个最底层基础,也是在软件项目实施时必经非常核心的一个步骤。对于一个软件项目,只有对其大致的评估后,才能掌握大致的软件成本,人力资源配备,同时也是做项目计划的基础。

软件评估,评估的是软件规模,基本的使用单位是代码行数。但是代码行为单位有其自身的一些变数和问题,比如不同的编程语言,即便是实现相同的功能其大小也是不统一的。另外,这个单位无论是作为成本预算还是作为项目计划,都是非常不方便的。所以,现在普遍使用的软件规模单位是人天,比如3人天,就是一个功能需要1个人做3天或者3个人做一天的规模。这个单位用于计算成本和规模进度都非常方便。而人天和代码行之间的折算关系就涉及到另外一个参量叫做生产率,就是一个人平均一天写多少行代码(注意这个生产率是从项目开始到项目结束,包括需求分析,设计,编码,测试所有活动总生产率,而不是仅仅是中间编码活动中一天能写多少行代码)

软件规模的评估方法通常是用专家评估法。专家评估法依据的是对被评估项目都是领域的专家情况下。首先要先将项目拆分成多个小的功能模块,注意功能模块拆分是有规定的,不能太大,每个模块不能超过500行代码,即不能超过10人天左右工作量(太多则会产生较大误差),专家(至少3位以上)对每个功能模块进行评估各自进行评估。评估完后,汇总每个功能模块每个专家的评估值,每个功能模块专家的评估的平均偏差少于20%的这个功能评估算是成功接受,取其平均值作为评估值,如果这个模块的功能估计偏差超过20%那么,针对这个功能的评估,对应的专家要进行讲解,说明和澄清自己为何做次评估,在一次讨论后。将所有未被接受的功能,如上进行第二次评估。同样再次计算其中未能通过的功能模块,再进行第三轮评估。如果第三轮评估仍然有不通过的,则项目经理参考每个专家的评估值,自行决定这个功能模块的最后评估取值。这样,将所有功能的规模汇总,就组成了最后的项目规模结果。

专家评估法,有点是非常准确,缺点是非常耗时耗资源,评估一个中等规模的项目往往要3个人以上花将近大半天时间完成,所以通常只有大公司耗得起,即便是大公司由于评估方式非常麻烦,所以经常也不用。

现在大多的软件评估方法通常也是这个原理,但是采取了简化版本的方法进行评估。即多个人对一个完整项目进行评估,最后平均每个人的规模估计,作为最后结果。

软件规模评估出来后,通常有两个作用,首先是评估出软件项目的研发成本。比如一个125人天规模的软件项目要进行开发,假设每个人每天的成本是2000,那么这个软件研发成本大致就是500000。这是一个很重要的参考依据。由此基本页可以决策这个软件是否值得做。

评估出来后的另外一个作用就是制作软件研发计划,还是比如125人天的项目,这个项目要多长时间开发完,显然跟研发投入相关,理论上研发投入越高,进度越快,125人天如果给定一个项目组是5人,那么就是要25天,也就是大致为一个多月的时间(计算工作日平均23天为一个月的有效正常工作日),当然,项目组规模也不是完全是说如果有125人就能一天完成,因为人多了就会产生大量的管理成本,同时任务之间也不全能切分和并行,所以这个不能是《人月神话》。但大致给定一个合理的人数就可以计算出大致的项目合理进度。有了合理进度,下一步就可以根据一些常用经验指定大致的项目计划,比如从项目工作量来讲需求大致花费15%的工作量,设计占25%编码占40%测试占20%而且,每个阶段能够投入的人也不尽相同,显然需求能投入的人基本很少,因为总需要一个人全局的掌握所有需求,所以尽管需求比重不大,但总是很耗时,而编码投入的人最多,所以总体耗时是差不多的。根据这些信息,基本就可以制定出总体的项目计划。而项目计划,是软件项目的管理基础,有了计划参考才能导出后面一系列的项目管理活动,数据度量等情况。所以,软件项目评估真的是非常核心和重要的事情。

以上是通用的软件研发模式,其实很多软件外包其成本和进度,也是由此进行评估参考的。

但以上评估可以看出,前提是基于专家,这对于一些传统企业,显然是一个奢侈品,而当前网上,能够进行规模评估的服务非常少,常用的是估估(http://gugu.joinlinking.com)。其他一些众包平台,也有成本预算,但是那些是根据模块价格进行大致统计的,和以上的规模评估差距就甚远了。

来源:breeze的一切

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年3月14日
下一篇 2017年3月15日

相关推荐