目录
引言
在软件项目管理中,成本管理是实现项目成功的关键环节之一。它贯穿项目生命周期的每个阶段,从规划到实施再到收尾,对项目的资源分配、预算控制和风险管理具有重要作用。软件项目成本管理的特点和复杂性,如人工成本高、维护成本大以及风险不可预估等,决定了成本管理必须采取科学的规划、准确的估算和严格的控制手段。本文详细探讨了软件项目成本管理的定义、特点以及在估算、预算和控制环节中可应用的原则和方法,为高效地实施软件项目提供参考和指导。
一、软件项目成本管理
(一)定义
项目成本管理
是为了项目在批准的预算内完成,对成本进行规划
、估算
、预算
、融资
、筹资
、管理
和控制
的过程。
①规划成本管理:确定如何估算、预算、管理、监督和控制项目成本。
②估算成本:对完成项目活动所需货币资源进行近似估算。
③制定预算:汇总所有单个活动或工作包的估算成本,建立一个经批准的成本基准
④控制成本:监督项目状态,以更新项目成本和管理成本基准的变更。
(二)软件项目成本特点
①人工成本高
②间接成本(比如办公楼租金、水电费等)
③维护成本高(质量成本)
④风险成本高,成本变动频繁
二、成本估算
成本估算
是对完成项目活动所需资金进行近似估算的过程。
(一)成本估算的原则
①有形成本(容易用钱来衡量)
②无形成本(难用金钱衡量)
③直接成本
④间接成本
⑤预留(偶然事件和管理储备金)
(二)成本估算的方法
①自下而上的估算
首先对单个工作包或活动的成本进行最具体、细致的估算;然后把这些细节性成本向上汇总或“滚动”到更高层次。
②类比估算
这是一种粗略的,自顶向下的估算形式
③代码行估算、功能点估算
软件项目中,先估算活动的代码行(工作量),再乘以每行人工费用,可计算得到该活动的成本。
代码行估算
从软件程序量的角度定义项目规模。
要求功能分解足够详细。
有一定的经验数据(类比和经验方法)。
与具体的编程语言有关。
功能点估算
用系统的功能数量来测量其规模,与实现产品所使用的语言和技术没有关系。
对系统的外部功能和内部功能进行计数。
根据技术复杂度因子(权)对它们进行调整,产生产品规模的度量结果。
④参数估计
⑤专家估算法(delphi估算)
- 由多位对应用领域和开发环境有丰富经验的专家进行成本估算。
- 为避免单个专家产生偏见,尽量由多位专家进行估算,取得多个估算值,最后得出综合的估算值。
- 组织者发给每位专家一份软件系统的规格说明和一张记录估算值的表格,请他们估算。
- 专家详细研究软件规格说明后,对该软件提出3个工作量(或成本)的估算值:
最小值ai
最可能值mi
最大值bi
- 组织者对专家的表格中的答复进行整理
- 计算每位专家的平均估算值Ei=(ai+4mi + bi)/6
- 最终平均值E=(E1 +E2+…+En)/n (n表示n个专家)。
某管理信息系统-专家估算
专家1:1,8,9 (1+9+48)/6=7(万元)
专家2:4,6,8 (4+8+46)/6=6(万元)
估算结果=(6+7)/2=6.5(万元)
eg. 项目经理正在进行一个媒体信息查询系统项目的估算,他采用的delphi的成本估算方法,邀请2位专家估算,第一个专家给出1万, 8万,9万的估算值,第二个专家给出了4万, 6万 ,8 万的估算,计算这个项目的成本估算值是多少?
第一个专家E1=(1+48+9)/ 6=42/6=7
第二个专家E2=(4+46+8)/ 6=36/6=6
期望值 E=(E1+E2)/2=13/2
⑥质量成本
质量成本由质量故障成本和质量保证成本组成。质量故障成本是指为了排除产品质量原因所产生的故障,保证产品重新恢复功能的费用;质量保证成本是指为了保证和提高产品质量而采取的技术措施所消耗的费用。
质量与成本的关系图
⑦综合成本估算方法
确定代码行( LO、LM、LP )
求期望值LE和偏差(标准差σ)
根据经验数据,确定各个子功能的代码行成本
计算各个子功能的成本和工作量,并计算任务的总成本和总工作量
计算开发时间
对结果进行分析比较
(三)IT项目成本估算的典型问题
(1)估算太快
(2)缺乏估算经验
(3)成本通常被低估
(4)追求精确估算
三、制定预算
制定预算是汇总所有单个活动或工作包的估算成本,建立一个经批准的成本基准的过程。
(一)制定预算的指导原则
①计划性
:指在项目计划中,将成本估算总费用尽量精确地分配到WBS的每一个组成部分,从而形成与WBS相同的系统结构。
②约束性
:是一种分配资源的计划,既不过分慷慨,也不过于吝啬。
③控制性
:是指项目预算的实质就是一种控制机制,尽可能在完成目标的前提的节省资源。
(二)制定预算的方法
制定预算的方法——成本分摊(基于WBS),资金限制平衡,以及专家判断法等。
(三)成本基准(成本预算的目标)
成本基准是经过批准的、按时间段分配的成本预算,用作与实际结果进行比较的依据。在成本基准之上增加管理储备,得到项目预算。项目预算和成本基准的各个组成部分,如图所示。
项目成本基准——例子
四、控制成本
控制成本是监督项目状态,以更新项目成本,管理成本基准变更的过程。
(一)控制成本的方法:挣值管理
PMBOK推荐使用挣值管理(Earned Value Management, EVM)
EVM是综合了范围、时间和成本数据的项目绩效测量技术
通过与计划完成的工作量、实际挣得的收益、实际的成本进行比较,可以确定成本、进度是否按计划执行。
根据基准(原计划+批准的变更),你可以知道离项目目标有多远
使用EVM,你必须周期性更新实际项目绩效信息
世界范围内,越来越多的组织使用EVM来控制项目成本
(二)挣值管理
①核心概念
实际成本(Actual Cost,AC)
:在给定时段内,执行某工作而实际发生的成本
计划价值( Planned Value, PV)
:经批准的成本预算,计划工作的预算价值
挣值(Earned Value,EV)
:是对已完成工作的测量值,实际工作的预算价值
2)项目某时刻进行挣值分析
CV(Cost Variance)
= EV - AC (成本偏差 = 挣值 - 实际成本 )
CV>0,表明项目实施处于成本节约状态;CV<0,表明项目处于成本超支状态。
CPI = EV/AC (成本偏差指数 = 挣值/实际成本 )
=1: 按照预算进行
1: 低于预算,成本节约
<1:超出预算,成本超支
SV(Schedule Variance)
=EV-PV (进度偏差 = 挣值 - 计划值 )
SV>0,表明项目实施超过计划进度;SV<0,表明项目实施落后于计划进度。
SPI = EV/PV (进度偏差指数 = 挣值/计划值 )
=1:按照进度进行
1:超前于进度
<1:落后于进度
②根据项目某时刻的挣值分析结果预测完成整个项目
BAC 完工预算 整个项目的预算(总的PV)
ETC 完工尚需估算 剩下的工作还需多少钱
EAC=AC+ETC 完工估算 实际成本+完工尚需估算
VAC=BAC-EAC 完工偏差= 整个项目的预算-完工估算
(三)成本控制的结果
①工作绩效信息
WBS各组件(尤其是工作包和控制账户)的CV,SV,CPI,SPI,EAC和BAC值,都需要记录下来,并传达给干系人。
②成本预测
③变更请求
④经验教训
(四 )软件项目成本控制注意事项
①软件项目高成本的原因
诸如需求蔓延、技术银弹(银弹是对付狼人的唯一武器,软件开发中遇到的困难好比狼人一样难对付
)、重复返工、贪多求全等原因造成的人员和资金浪费。
②注重质量成本(开发/运行成本
)
③控制软件项目中的隐性成本
IT项目资源使用效率低下带来的成本增加,IT项目决策执行偏差造成的不一致成本、或是IT项目工作流程效率低造成的成本等。
总结
软件项目的成本管理贯穿了规划、估算、预算到控制的全过程,是项目成功的重要保障。通过结合自下而上的估算、类比估算、专家估算法等多种方法,可以更准确地预测和管理成本,同时以挣值管理为核心的控制技术,为项目实施提供了高效的成本控制工具。然而,软件项目成本管理仍面临诸如需求变更、隐性成本高企等挑战,因此需要在实践中注重质量管理、提升资源利用效率,并持续优化管理流程。只有做到科学估算、合理预算和严格控制,才能确保项目在预算范围内高质量交付,从而满足客户需求并实现组织的价值目标。