软件开发成本管理之由时间、质量、成本是决定项目管理成败的鼎之三足,每个项目都有一个预算,项目成功就包含着要在批准的预算范围内完成项目。但是很多国内软件业的项目经理,都会认为项目经理抓好两件事即可,一手是时间,一手是质量。而对于开发成本的管理,始终没有上升到应有的高度,即使在一些CMM/CMMI级别比较高的公司,他们对于项目的开发成本也都没有做到很好的管理。
为什么出现这样的情况?究其原因,其一,项目经理这个位置在公司发展中走得是技术路线,成本管理并没有得到很高的重视。其二,成本管理做起来的确比较麻烦,费时费力,效果也不一定精确可用。很多公司现在如果让他们说出他们开发人员的生产效率是多少,很少有人可以精确说出;加上现在大多项目组织是矩阵式管理,人员作为资源在项目组里流动性比较大,所以大多是一笔糊涂帐。其三,就如上面所说,在中国很多公司中,项目经理并不负责项目的预算部分,这项工作往往由职能部门的经理来担当,由他负责跟踪、报告和监控项目的开销。
说到这里,有的朋友可能会反驳了,项目中我控制好时间和质量,成本就控制了。诚然,如果一个项目如果时间和质量控制的合适,成本也大多是较好的,但这是远远不够的。我们经常会看到这样的情形,从前些年的“工资跟着学历走,程序员要求硕士以上学历,而招来的技术专业类博士生却去做服务”到现在软件行业已经走出高利润回报的后时代,公司的项目签合同或者开发或实施过程中看着好像在盈利,但是到了年底核算,公司却是亏损严重。或是项目到了中后期,无论怎么努力,为了千方百计完成项目,花费都已经无法控制等种种现象,表明成本管理依然是软件行业项目管理的木桶短板。
软件开发成本管理之术及实践
项目成本管理,就是保证项目在预算内完成的管理。如果用最简单的话来说,成本管理是回答如下花钱问题的:
这个项目将花多少钱?
这个预算合理吗?依据是什么?
这些钱够花吗?是否预算考虑了项目风险的因素?
这些钱花在什么地方?如何花?何时花?
如何能保证花钱是在预算之内的?
这个项目实际花了多少钱?
如何评估花费?
这个项目花费的历史记录对项目成本管理有何贡献?
这些问题,从项目成本管理过程中,分为如下过程:资源计划编制、费用估算、费用分配和费用控制阶段。当然这四个过程并不是瀑布式的,而是组成了项目成本管理的闭环。
计划编制
在进入了资源计划编制阶段之前,一般应完成工作范围说明书和WBS,在资源计划的过程中,我们要确定完成项目活动需要使用什么资源以及多少资源,所以输出就是项目的资源需求计划,也就是人、物等资源的需求计划。过程的输入除了上面所说的工作范围说明书和工作分解结构WBS外,一般还会有资源配置库说明、活动的工期估算,以及公司项目管理库中的机构政策和历史信息。在此过程中,常用的技术就是专家判断方案选择方法,当然也可以用MicroSoft 的Project、IBM的Rational Portfolio Manager等项目管理软件来进行,将范围和时间计划的甘特图等关联资源。
费用估算
费用估算环节,主要是估算要完成项目活动所需资源将耗用多少费用。在这个环节要得出费用估算值、和费用计划等文档。这时我们的输入,除了上一个过程的输出资源需求外,还需要WBS,因为WBS是确定成本估算准确性的关键,我们需要为WBS中列出的每项活动所需的资源做出成本估算。除WBS以外,还需要资源价格或者比较符合实际价格的成本估算出版物、历史信息,以及考虑风险等情况。资源价格即是资源的单位成本,例如招聘的开发人员、测试人员折算的每小时薪金,用上面得出的该资