【管理系列-09】软件成本怎么评估,知己知彼才能做软件造价

news2024/10/5 14:26:29

项目来了,总要叫来几个人,讨论一下成本是多少,能不能接,作为研发经理,能够较为合理的评估成本是一项必备技能,如何科学合理的评估,达到对内对外都满意,我想这是每个研发经理的必修课。

通常我们评估项目成本会找几个有类似产品开发经验的工程师去评估开发成本,为了更加精确,我们会分成若干类和若干小项去评估,当然这种评估比较简单高效,经验丰富的工程师能较为准确的评估出来项目成本,我们称这种方法为经验法

当然,经验法对内完全没问题,知根知底,但是对外就有很多问题,你把凭经验评估出来让领导进行预算审批,领导签字时心里发慌,审计能通过吗。因此在立项时就应该考虑工程造价合理科学有依据,那么有没有以审计的视角基于客观、科学、量化的造价依据对成本进行评估呢,另一个方法就应运而生了,我们称这种方法为国标法

经验法和国标法很难说谁优谁劣,甚至在项目前期需求不明朗的情况下没法用国标法进行评估,只能凭经验法估出成本转化为国标法的计量规范。因此,两种方法都应该掌握,接下来聊聊这两种方法。

经验法

经验法根据项目需求,招标要求,以及软件工程中涉及到的方方面面,进行成本估算,步骤如下:

  • 召集商务人员、项目管理人员、相关项目或产品开发经理、核心研发人员进行招标文件或合同文件分析。
  • 进行功能差分,补齐工作量估算表
  • 分别进行工作量估算,分别估算出最小值、最可能值、最大值,估算结果取平均
  • 相互比较,就差距大的工作项展开讨论,达成一致,得出最终估算工时。
  • 查阅公司财务上给出的人才队伍高、中、低配比对应的工时单价,计算出成本费用。
经验法工作量估算表:
类别工作描述工作量估算备注
最小最可能最大估算结果
售前支持包括投标相关工时开支
项目管理人员管理
项目管控
项目管理团队建设
需求调研需求对接
需求分析与报告
产品设计产品设计
UI设计
技术设计架构设计
系统模块设计
功能开发按照实际模块、功能点进行拆分评估根据具体项目进行详细拆分
测试测试用例、测试执行、集成测试
测试报告
上线维保安装部署、试运行
维保期维护
质量保障审计、评审、第三方评测费用
培训培训人员成本、场地租赁
其他包括采购、差旅费、招待费等等

国标法

2016年12月工业和信息化部发布《软件和信息技术服务业发展规划(2016-2020年)》,《规划》中明确提出软件市场定价与软件价值不匹配问题是我国软件和信息技术服务业发展依然面临迫切需要解决的突出问题,一句话总结就是定价不合理,需要科学方法和机制去解决。于是,各级政府纷纷发布相关政策和指南,比如北京发布《信息化项目软件运维费用测算规范》,河北发布《信息系统集成服务资费评估指南》,山东省财政厅发布发《山东省省级部门委托第三方机构参与预算绩效管理工作暂行办法》等等,国家发布GB/T36964-2018《软件工程 软件开发成本度量规范》,目的就是让软件市场定价科学,机制保障健全。国标法如何评定呢,我们从规范出发。

下图为软件成本构成,很好理解,软件开发成本包括直接成本和间接成本,直接成本又包括直接人力成本和直接非人力成本;间接成本包括间接人力成本和间接非人力成本。

  • 直接人力成本:开发方项目组的工资、五险一金、奖金、福利等人力资质费用总和;项目组人员:项目经理、需求分析人员、设计人员、编码人员、测试人员、部署人员、文档编辑人员、质量保障人员等。
  • 直人非人力成本:开发方为达成软件开发项目目标,所需要支付的人力成本之外的其他成本;如:办公费、差旅费、培训费、业务费、采购费、专利费用、专用软件费用、技术协作费用等。
  • 间接人力成本:服务于软件研发管理整体需求的非项目组人员的人力成本;费项目组人员:部门经理、办公室人员、产品规划人员、过程管理、组织级其他相关人员。
  • 间接非人力成本:开发方不为开发某个特定项目,但是服务于整体研发活动产生的非人力成本;如:房租、水电、物业、开发人员日常办公费及各种设备的租赁、维修、折旧等。

在这里插入图片描述

其中直接非人力成本通常按办公费、差旅费、培训费、业务费采购费等分项估算;间接成本可按比例分摊计算也可依据与直接人力成本的固定占比计算。那么直接人力成本估算是软件研发成本估算中的难点。一般采用NESMA功能点法编报直接人力成本预算。

NESMA功能点法

未调整功能点数量(UFP) 可采用指示功能点计数法和估算功能点计数法两种方法进行计算。

  • 指示(预估)功能点计数法(多用于项目立项阶段):

U F P = 35 ∗ I L F + 15 ∗ E I F UFP= 35*ILF+15*EIF UFP=35ILF+15EIF

  • 估算功能点计数法(多用于项目审计和验收阶段):

U F P = 7 ∗ I L F + 5 ∗ E I F + 4 ∗ E I + 5 ∗ E O + 4 ∗ E Q UFP=7*ILF+5*EIF+4*EI+5*EO+4*EQ UFP=7ILF+5EIF+4EI+5EO+4EQ

在项目建议书、概算结算,如果事务功能尚不明确的情况下可采用指示(预估)功能点计数法计算。在预算、招标、验收阶段,如需求较为明确,数据功能(ILF、EIF)和事务功能(EI、EO、EQ)可识别的情况下,使用估算功能点计数法计算功能点数,得到的功能点数值更加准确。

类型描述UFP
ILF内部逻辑文件(Internal Logical File,ILF),软件内部需要维护(如增删改查)的数据,以用户角度识别的,在应用程序内部的、可维护的内部逻辑数据和控制信息。7
EIF外部接口文件(External Interface File,EIF),在其他系统中维护,但本系统需要调用的数据。5
EI外部输入(External Input,EI),向软件输入数据或发送命令。EI是处理来自应用程序边界外部的一组数据输入。它的主要目的是维护一个或多个ILF,或者更改系统的行为。4
EO外部输出(External Output,EO),EO是输出数据到应用程序边界外部的过程。它的主要目的是向用户呈现经过处理的信息。该处理过程必须包含至少一个数学公式或计算方法,或生成派生数据。一个EO也可以维护一个或多个ILF,或者改变了系统行为。5
EQ外部查询(External Query,EQ),EQ是向应用程序边界外发送数据的基本处理的过程。其主要目的是从ILF或EIF中通过恢复数据信息来向用户呈现。该处理逻辑不包括任何数学公式或计算方法,也不会生成任何派生数据。EQ不会维护任何一个ILF,也不会改变应用程序的系统行为。4

根据定义比较难判断某个功能点是什么类型,我们可以按照如下功能点类型判定模型进行判断,可以简单理解为,ILF为实体开发,包含数据库创建、DAO层和Service层设计、开发、测试等后台工作,EI、EO、EQ为Controller接口层和前端交互显示设计、开发、测试工作。
在这里插入图片描述

UFP需要通过VAF(调整因子)调整成FP,VAF取值[0.65~1.35],为了计算简便,一般会把不同类型的项目设置不同的VAF,比如OA办公项目,VAF=1.1。
F P = V A F ∗ U F P FP = VAF * UFP FP=VAFUFP
例如:一个FP多长时间呢,1FP=7.16人时,当VAF=1.1,1UFP=7.876人时,我们按每天8小时计算,那么1UPF相当于1人天的工作量。如此,可以计算出项目开发的总工时。

经典的功能点类型判定示例

在这里插入图片描述

功能点名称类型UFP
员工ILF7
部门ILF7
工资信息EIF5
添加员工信息EI4
修改员工信息EI4
删除员工信息EI4
员工信息导出EO5
员工人数统计EO5
部门信息导出EO5
查询员工信息EQ4
查询部门信息EQ4

UFP = 54,FP=1.1*54,1FP=7.16,计算出总工时,根据当地的人工费用,就能计算出直接人力成本了,然后再加上直接非人力成本,以及按比例算出间接成本,最终得到项目的开发成本。

参考文章

  • 软件研发成本计算模型
  • SJ/T 11619-2016 软件工程 功能规模测量NESMA方法
  • 软件造价知识普及5:我国软件成本度量涉及有哪些相关标准?
  • NESMA功能点估计方法 软件规模估计
  • 软件功能点拆分 — 软件工程报价功能点区分模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/684106.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

管理类联考——逻辑——知识篇——分析推理——四、数字——haimian

数字 题型识别 与数字相关的分析推理题在逻辑科目中扮演着非常重要的角色,可能涉及方程、不等式、分子与分母比值关系、百分比、概率、集合运算等,可结合数学方法或利用数字规律进行解题。 思维导图 常用公式 从某种意义上说,数学本身就是…

五、浅析[ElasticSearch]底层原理与分组聚合查询

目录 一、ElasticSearch文档分值_score计算底层原理1.boolean model2.relevance score算法2、分析一个document上的_score是如何被计算出来的 二、分词器工作流程1.character filter、tokenizer、token filter2、内置分词器的简单介绍3、定制分词器3.1默认的分词器--standard3.…

《教我兄弟学Android逆向13 xpose改机开发01-环境设置》

上一篇 《教我兄弟学Android逆向12 编写xposed模块》 我们了解了xpose的基本原理并一起搭建了xpose的hook环境,你也很好的完成了课后作业,但是通过后面的测试练习你发现xpose在不同系统环境的安装方法是不一样的,在我们之前的低系统手机上面直接安装就能…

LNMP六个实验

目录 访问状态统计配置 基于授权的访问控制 基于客户端的访问控制 基于域名的 Nginx 虚拟主机 基于IP 的 Nginx 虚拟主机 基于端口的 Nginx 虚拟主机 总结 访问状态统计配置 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块 修改 nginx.conf 配置文件,…

Python基础四

目录 一、Python数据类型--列表 1.列表的下标 2.访问列表中的元素 3.更新列表元素 4.删除列表元素 5.列表脚本操作符 6.列表截取与拼接 截取 拼接 7.嵌套列表 8.列表比较 二、Python内置函数--列表相关 一、Python数据类型--列表 Python中的列表类似于java的数组 列…

Rust语言从入门到入坑——(7)Rust 错误处理

文章目录 0 引入1、可恢复错误2、可恢复错误递归3、不可恢复错误4、kind 方法5、总结 0 引入 Rust 有一套独特的处理异常情况的机制,程序中一般会出现两种错误:可恢复错误和不可恢复错误。 1、可恢复错误的典型案例是文件访问错误,如果访问一…

RVEA算法

RVEA 1 目标函数2 预备知识3 参考向量引导选择4 更新参考向量5 流程6 代码7 运行效果 1 目标函数 min ⁡ X f ( X ) ( f 1 ( X ) , f 2 ( X ) , . . . , f M ( X ) ) \min_{\small{X}} \pmb{f(\small{X})} (f_1(\small{X}), f_2(\small{X}), ..., f_M(\small{X})) Xmin​f(X)…

数据结构——快速排序的介绍

快速排序 快速排序是霍尔(Hoare)于1962年提出的一种二叉树结构的交换排序方法。快速排序是一种常用的排序算法,其基本思想是通过选择一个元素作为"基准值",将待排序序列分割成两个子序列,其中一个子序列的元素都小于等于基准值&am…

DAY29:回溯算法(四)组合总和+组合总和Ⅱ

文章目录 39.组合总和思路伪代码为什么传入i而不是i1,不会导致无限循环 完整版剪枝优化剪枝修改完整版补充:std::sort升降序的问题(默认升序) 40.组合总和Ⅱ思路最开始的写法debug测试:逻辑错误修改完整版:…

营销策划报告个人心得

营销策划报告个人心得篇1 20__年3月27日晚,我们12级市营专业的同学们早早的来到了大成楼。根据网络营销与策划课程实训要求,覃希老师邀请了校外企业经理给我们进行产品培训。 我们按实训项目分别安排在C302和C304教室培训,培训中同学们认认真…

基于深度学习的高精度水果检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度水果(苹果、香蕉、葡萄、橘子、菠萝和西瓜)检测识别系统可用于日常生活中或野外来检测与定位水果目标,利用深度学习算法可实现图片、视频、摄像头等方式的水果目标检测识别,另外支持结果可视…

OpenGL 模板测试

1.示例效果图 选中模型对象,出现模型轮廓。 2.简介 当片段着色器处理完一个片段之后,模板测试会开始执行,和深度测试一样,它也可能会丢弃片段。接下来,被保留的片段会进入深度测试,它可能会丢弃更多的片…

MongoDB集群管理(三)

MongoDB集群管理 集群介绍 为什么使用集群 随着业务数据和并发量的增加,若只使用一台MongoDB服务器,存在着断电和数据风险的问题,故采用Mongodb复制集的方式,来提高项目的高可用、安全性等性能。 MongoDB复制是将数据同步到多个…

LNMP (Nginx网站服务) nginx 平滑升级

目录 1.1 Nginx的简介 1.2 Apache与Nginx的区别 Nginx对比Apache的优势: 1.3 Nginx的进程 Nginx的两个进程: 同步,异步,阻塞,非阻塞的概念补充 阻塞与非阻塞 同步和异步 2.1 编译安装Nginx 2.1 .1 关闭防火墙…

两点边值问题的有限元方法以及边值条件的处理示例

文章目录 引言题目补全方程刚度矩阵构造基底边值条件非齐次左边值条件非齐次右边值条件非齐次非齐次边值条件有限元方程 求数值解直接求总刚度矩阵先求单元刚度矩阵 引言 本文参考李荣华教授的《偏微分方程数值解法》一书 题目 对于非齐次第二边值问题 { − d d x ( p d u …

陶哲轩甩出调教GPT-4聊天记录,点击领取大佬的研究助理

量子位 | 公众号 QbitAI 鹅妹子嘤,天才数学家陶哲轩搞数学研究,已经离不开普通人手里的“数学菜鸡”GPT了! 就在他最新解决的一个数学难题下面,陶哲轩明确指出自己“使用了GPT-4”,后者给他提出了一种可行的解决方法…

【FFmpeg实战】avformat_find_stream_info() 函数源码解析

转载自地址:https://cloud.tencent.com/developer/article/1873836 先来看一下 avformat_find_stream_info() 的头文件里的注释对该函数的介绍,本文我们基于 FFmpeg n4.2 版本的源码分析。 /*** Read packets of a media file to get stream informatio…

Apikit 自学日记:创建 API 文档

Apikit 中一共有5种创建API文档的方式: 新建API文档 导入API文档,详情可查看《导入、导出API文档》 从模板添加API文档,详情可查看《API文档模板》 自动生成API文档,详情可查看《自动生成API文档》 IDEA插件注释同步API文档 …

linux 在线安装 Redis

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

生成式AI掀起产业智能化新浪潮|爱分析报告

报告摘要 大模型支撑的生成式AI,让人类社会有望步入通用人工智能时代,拥有广阔的应用前景,有望赋能千行百业。当前生成式AI的落地整体处于初级阶段,不同模态的落地时间表差异明显,企业需求主要集中在数字化程度高、容…