首页 理论教育软件研发成本度量规范释义

软件研发成本度量规范释义

【摘要】:《软件研发成本度量规范》标准适用于度量成本与功能规模密切相关的软件研发项目的成本。《规范》中的规模估算可依据其中任一方法识别功能点计数项,并根据其对应的权值计算出软件功能规模。总之,《规范》在软件行业的应用,将带来软件行业甲乙双方双赢的结果,可以维护市场健康有序发展。《规范》的应用,将为乙方在甲乙双方谈判中提供有利的谈判筹码。

1.《软件研发成本度量规范》的适用范围?不适用部分如何解决?

《软件研发成本度量规范》(简称《规范》)标准适用于度量成本与功能规模密切相关的软件研发项目的成本。

注:对于以非功能性需求为主,或包含大量复杂算法,或以创意为主的软件研发项目,在进行成本估算时,可参考《规范》估算软件规模,并估算除算法研究、高度创意及非功能需求之外的软件研发工作成本;也可不估算软件规模,参考《规范》描述的方法(如类比法、类推法)和原则,直接估算软件研发项目的工作量、工期及成本。

2.成本的构成及含义?如何计算?

软件研发成本包含直接成本和间接成本。依据软件行业特点,直接成本又分为直接人力成本和直接非人力成本,而间接成本分为间接人力成本和间接非人力成本。

直接成本是指:项目存在则导致成本发生,项目取消则成本不再发生的成本。如项目成员的人力资源费用(直接人力成本)、由于本项目需要所产生的差旅(直接非人力成本)、培训(直接非人力成本)等费用。

间接成本是指:服务于本组织所有研发项目的联合成本,即只要有研发活动成本就会产生,而所有研发活动都取消则成本不再发生。如研发管理人员的费用分摊(间接人力成本)、研发设备/场地的费用分摊(间接非人力成本)。

直接人力成本根据工作量估算结果(单位通常为人月)和平均人力成本费率(即每人月多少钱)计算;间接成本通常根据项目组的人数和持续时间进行分摊,因而也与工作量相关;直接非人力成本通常在软件项目中所占比例较小,该部分与工作量无关,可参照《规范》中关于直接非人力成本的细项划分(包括办公费、差旅费、培训费、业务费、采购费及其他等六项)分项估算。

因此,成本估算的常用公式为:软件研发成本=工作量×平均人力成本费率(含直接人力成本、间接成本)+直接非人力成本。

3.为何要估算软件规模?如何估算?

软件规模,也即“软件大小”,就如同建筑规模以平方米衡量一样。

软件规模估算是软件估算的基础。软件研发工作量与软件规模密切相关,因而,估算软件规模是进行有效项目范围和成本管理的基础。

由于缺乏标准,当前不少企业不去估算规模,而是凭借经验估算工作量,这种做法的弊端是:①不能在项目前期界定范围,明确需求;②项目开发过程中,无法进行生产率改进,也就无法走上通过提高生产率来降低成本的发展道路。

当前纳入国际标准的软件规模度量方法共有5种,均为功能点方法。《规范》中的规模估算可依据其中任一方法识别功能点计数项,并根据其对应的权值计算出软件功能规模。

4.什么是软件因素调整因子?什么是开发因素调整因子?这两个重要参数如何获得?

所谓软件因素调整因子,是指由于软件自身特点对生产率产生影响时所需考虑的因子(例如,要解决的问题很复杂或对质量要求很高的软件通常其生产率就会低一些),这些因子通常包括业务领域、应用类型、质量要求等方面。即:与甲方要开发什么软件,软件本身的特性和软件质量要求相关的因子。

所谓开发因素调整因子,是指对于同一软件,由于采用的技术或团队人员的差异而导致生产率变化时所需考虑的因子(例如,更先进的开发技术或更有经验的人员通常导致生产率更高),这些因子通常包括技术、过程、团队经验、重用程度等方面。即:与开发组织(团队)的技能、经验以及使用的开发工具等相关的因子。

在估算软件研发工作量时,最主要的两个决定因素是:软件规模和生产率。不同的项目,由于面临问题、团队能力等方面的差异,会导致生产率有较大差异。需要根据软件情况、开发情况对生产率进行调整。

具体调整因子的选择和取值,可通过对历史数据进行统计分析获得,也可根据经验确定。标准应用指南中的参数表及取值是通过对行业4634套基准数据,采用相关性分析方法获得的,并已在很多企业进行了验证。

5.参与试点的企业,他们的估算偏差有多大?

以往企业采用经验法的估算结果与项目结束后的实际情况偏差在100%~300%之间。《软件研发成本度量规范》经近百家试点企业实施验证,规模估算与实际偏差平均在10%以内,工作量/成本估算和实际的偏差平均在20%左右,估算准确度大大提高,完全满足了业界对估算偏差小于50%的期望。

6.企业的应用效果如何?

《规范》经过全国几十家典型软件企业应用,效果良好,完全达到了立项的初衷。具体体现在如下3个方面:(www.chuimin.cn)

(1)促使甲乙双方在合同前期澄清需求、明确项目范围。众所周知,需求变更是软件行业的一项老大难问题,是软件研发诸多问题的根源。《规范》采用国际通用的功能点方法进行规模估算,支持在项目早期就“甲方的模糊需求”进行有效、低成本的沟通和澄清,提高了需求分析质量,从而降低了软件厂商的成本风险,提高了项目范围管理能力。

(2)提高了软件企业在接单过程中的议价能力。采用《规范》后,软件厂商即按照规模报价和议价,而不再仅依据预算或者个人经验去报价,为广大厂商提供了谈判的“依据”,从而提高了软件厂商的议价能力。

(3)有效避免低价中标和低价恶性竞标。维护行业正常的平均利润水平,保护广大软件企业的利益,避免凭借低于成本价格承接项目的现象,彻底消除了长期困扰软件企业的“十元钱中标”的问题。

7.如果甲方也掌握了《软件研发成本度量规范》中的算法,是否会影响软件厂商的收入和利润?

如果甲方掌握了《规范》,不仅不会降低软件企业收入和利润,而且会使全行业平均项目收入和利润水平整体上升。原因在于:

(1)大大减少对需求变化估计不足带来的合同后项目范围扩大,而这些扩大往往不会再支付费用,变更经常侵蚀掉绝大部分的软件企业利润。

(2)减少低价竞标现象,消除恶性竞价,也会大大提高软件企业平均收入和利润。

总之,《规范》在软件行业的应用,将带来软件行业甲乙双方双赢的结果,可以维护市场健康有序发展。

8.乙方能否利用《软件研发成本度量规范》与甲方周旋?如何增加谈判筹码?

《规范》的应用,将为乙方在甲乙双方谈判中提供有利的谈判筹码。

(1)利用《规范》,可以帮助乙方在项目开始前促使甲方就“软件项目大小”与乙方达成一致。如果不能达成一致,项目过程中发生的需求变更,吃亏的往往是乙方。

(2)为甲乙双方的商务谈判提供“量化依据”。在商务谈判中,由于乙方整体处于弱势地位,所以在没有行业标准时,乙方的项目估算由于过多依赖经验,与甲方谈判时往往“无理可讲”,甲方就会有更多的理由去压低价格,而乙方却没有依据进行反驳。而《规范》应用后,乙方则可依据标准据理力争,从而提高了议价能力。

9.目前很多厂商在实际开发过程中,都会存在大量重用,这些在成本估算中是否已经有所考虑?是如何考虑的?

在制定《规范》时,工作量估算已经考虑了重用因素,技术路线是通过识别每个功能点计数项的功能吻合度进行调整。

这样的考虑,将对软件企业带来积极影响,软件企业为了获得竞争优势,会不断提高重用水平,提高生产率,降低成本。而生产率落后的企业将处于行业竞争的劣势地位,从而保护了优秀企业,避免了劣币驱逐良币现象的发生,这将有助于整个行业健康发展。

10.《软件研发成本度量规范》的易用性如何?请说明一下,作为一个外行人如何使用其来估算成本(分步骤)?

依据《规范》中规定的估算步骤,对于某特定需求的软件研发工作,相关人员可按照以下3步快速获得成本估算结果。

第一步,规模估算:依据符合国际标准的功能点方法对功能点进行估算/计数;

第二步,工作量估算:根据项目特征和行业模型确定软件因素调整因子和开发因素调整因子的取值,并根据已估算的规模数据计算项目工作量;

第三步,成本估算:根据工作量估算结果,计算项目直接人力成本和间接成本;并依据《规范》的要求,根据项目情况估算直接非人力成本,后将以上三项成本求和,即得出软件研发成本的估算值。

备注:估算过程中相关公式、模板可参考标准不同场景的应用指南,相关调整因子的取值可参考权威部门发布的相关行业基准数据。