-
一、软件开发成本定义
软件开发成本只包括开发方在软件开发过程中的各项工作任务所花费的资源总和。这里就涉及到一个概念——软件开发过程,软件开发过程包括从项目立项开始到项目完成验收之间的需求分析、概要设计和详细设计、编码实现、集成测试、验收交付活动以及相关的项目管理支持活动。需要注意的是软件开发过程是不包括数据迁移和软件维护等非软件开发活动。所以,项目中如果存在数据迁移、ETL等开发活动,这部分是不能按照前面讲的NESMA估算分析,还是要按照经验、历史数据类比等方式进行独立估算。项目的运维成本也不能包括在开发成本之内,这部分也是要单独进行估算。
-
二、软件开发成本组成
按照《软件研发成本度量规范》,软件开发成本包括所有人力成本与非人力成本之和。人力成本包括直接人力成本和间接人力成本,非人力成本包括直接非人力成本和间接非人力成本。如下图:
-
1.直接人力成本
《软件研发成本度量规范》中的定义如下:直接人力成本包括开发项目组成员的工资、奖金、福利等人力资源费用。其中项目成员包括参与该项目研发过程的所有研发或支持人员,如项目经理、需求分析人员、设计人员、开发人员、测试人员、部署人员、用户文档编写人员、质量保证人员、配置管理人员等。对于非全职投入该项目研发工作的人员,按照项目工作量占其总工作量比例折算其人力资源费用。
-
2.间接人力成本
《软件研发成本度量规范》定义:间接人力成本指开发方服务于开发管理整体需求的非项目组人员的人力资源费用分摊。包括开发部门经理、项目管理办公室人员、工程过程组人员、产品规划人员、组织级质量保证人员、组织级配置管理人员、商务采购人员和IT支持人员等的工资、奖金和福利等的分摊。
-
3.直接非人力成本
直接非人力成本是直接发生在项目中的人力以外的费用。《软件研发成本度量规范》中规定直接非人力成本包括:
(1)办公费,即开发方为研发此项目而产生的行政办公费用,如办公用品、通信、邮寄、印刷、会议等费用。
(2)差旅费,即开发方为研发此项目而产生的差旅费用,如交通、住宿、差旅补贴等。
(3)培训费,即开发方为研发此项目而安排的特别培训产生的费用。
(4)业务费,即开发方为完成此项目研发工作所需辅助活动产生的费用,如招待费、评审费、验收费等。
(5)采购费,即开发方为研发此项目而需特殊采购专用资产或服务的费用,如专用设备费、专用软件费、技术协作费、专利费等。
(6)其他,即未在以上项目列出但确系开发方为研发此项目所需花费的费用。
-
4.间接非人力成本
间接非人力成本指开发方不为开发某个特定项目而产生,但服务于整体开发活动的非人力成本分摊。包括:开发方开发场地房租、水电电和物业,开发人员日常办公费用分摊,战略、市场宣传推广、品牌建设、知识产权专利等费用分摊,以及各种开发办公设备的租赁、维修和折旧分摊等。例如,开发方日常办公使用的设备及软件成本,可以按照间接非人力成本进行分摊。
-
5.直接成本与间接成本的区别
直接成本可以说是依附于项目本身的属性,如果项目终止或者取消,相关费用不再发生,则这些费用就是直接成本;反之,这些费用就是间接成本。例如,项目开发需要使用某种特定技术,而项目组成员目前对该技术并不了解,需要进行相关培训以保证项目开发的正常进行,那么此培训费就是直接成本。如果进行某项培训不是特定服务于该项目,则此培训费用就是间接成本。
-
6.开发费用与非开发费用的区别
在“软件开发成本”内,所有费用一定是为开发活动服务的。如果费用与项目有关,但与开发活动无关,则不应算作软件开发成本。例如,某项目的开发需要采购特殊的硬件设备,则应计入直接非人力成本,而运行这个系统所需的设备不属于软件开发成本,通常计入硬件购置费。
-
三、软件成本估算模型
-
1.直接人力成本的估算
软件开发成本估算中最核心的就是直接人力成本的估算,目前典型的估算方法是根据工作量估算结果和项目成员直接人力成本费率来进行估算。直接人力成本的计算通常都按照两种方式计算:
(1)按照不同类别人员的成本综合计算。根据每类人员的直接人力成本和估算工作量分别计算每类人员的直接人力成本,然后将各类人员的直接人力成本相加得到该项目的直接人力成本。
项目规模估算完成后即可获得总工时。可以根据软件行业基准数据来获取各类工作的工作量占比,2023年的基准数据如下表所示。当然各自企业也可以按照自己的实际度量数据作为参照。
DHC =
DHC为直接人力成本(元);为第i类人员的工作量(人月);
为第i类人员的费率(元/人月)。
(2)直接估算人员的平均直接人力成本费率。根据项目的平均直接人力成本和项目估算工作量就可以计算出项目的直接人力成本。公式如下:
DHC=EF
其中,DHC为直接人力成本(元);E为项目总工作量(人月);F为平均直接人力成本(元/人月)。
-
2.直接非人力成本估算
直接非人力成本基本上跟工作量没有关系,因此,无法使用单位工时所耗费的费率来计算直接非人力成本,需要根据实际情况进行分析。可以对直接非人力成本进行分类,然后再进行估算,公式如下:
其中,DNC为直接非人力成本(元);为第i类直接非人力分类的数量;
为分类的单价。
直接非人力成本分类如下:
-
3.间接人力成本估算
间接人力成本是企业间接投放到项目中的人力成本,间接人力成本适合按照工作量比例进行分摊。
比如,质量保证部门的质量保证人员甲负责组织级质量保证工作和3个项目(A、 B、C)的项目级质量保证工作。其中,用于项目A、B、C的工作量占总工作量的1/4,用于组织级质量保证工作和其他工作的工作量占总工作量的1/4,同时,项目A的研发总工作量占该组织所有研发项目总工作量的1/3,则质量保证人员甲的人力资源费用中,1/4计入项目A的直接人力成本,1/12(占质量保证工程师甲1/4的组织级质量保证工作和其他工作中,只有1/3计入项目A的成本)计入项目A的间接人力成本。
-
4.间接非人力成本估算
项目的间接非人力成本是企业间接投放到项目中的非人力成本,间接人力成本一般按照人工投入比例进行分摊,也可根据公司情况确定不同的分摊方式,如按部门粗略分摊等。
例如,某公司有员工200人,1年的房屋租赁费120万元,则每人每月的房租分摊为500元,如果项目A的总工作量为100人月,则分摊到项目A的房屋租赁费为5万元(即100人月500月/人月)。
-
三、确定软件开发成本
软件开发成本的计算如下:
SDC=DHC+DNC +IHC +INC
式中:
SDC:软件开发成本,单位为元; DHC:直接人力成本,单位为元; DNC:直接非人力成本,单位为元; IHC:间接人力成本,单位为元; INC:间接非人力成本,单位为元。
估算软件开发成本时,如果已经获得项目工作量(人月),可以采用如下公式:
SDC = AWF + DNC
式中,SDC为软件开发成本(元);AW为调整后的工作量(人月);F为平均人力成本费率(元/人月),平均人力成本包括直接人力成本、间接成本及毛利润,但不包括直接非人力成本;DNC为直接非人力成本(元)。
平均人力成本费率可以使用企业自身的人力成本。如果没有实际数据,可以参考软件行业发布的最新数据,比如上海,2023年的平均人力成本为31166元/人月。
如果作为乙方,需要项目报价,可采用如下公式:
式中,P为报价,GP为毛利润。
参考资料
1.《软件研发成本度量规范》
2.《2023年中国软件行业基准数据》