4.4 案例四:成本控制
阅读以下关于信息系统项目管理过程中成本控制方面问题的叙述,回答问题1一问题3。
4.4.1案例场景
某A单位的电力信息应用系统(简称A系统),系统建设总投资是1100万元,其中主机采购、存储系统采购、网络设备采购、配件采购等花费500万元,应用软件开发600万元。2005年4月工程双方签订项目开发合同,由N公司负责承建。项目总工期为25周,计划从2005年5月1甲启动至2005年10月22日全部完工。
N公司是一家民营高科技信息系统集成企业,有高级工程师2人,软件、硬件、网络工程师共36人。N公司安排高工刘工负责A系统的建设工作。N公司的绩效考核制度是非常严格的,对项目负责人的考核,项目开工前要制订项目实施计划,项目完工后要对项目计划的执行情况进行考核,项目的进度、质量、成本三大目标都要求控制在计划的范围内。
刘工于项目正式启动之前两周开始进行项目建设的准备工作,对工程项目进行了工作分解,在工作分解的基础上,编制了项目资源计划、人员计划、项目质量保障计划、进度计划、项目成本预算和成本控制计划等。刘工编制完项目资源计划后,报告公司审批,包括项目小组组建的计划在内的项目资源计划顺利地通过了公司审批。于2005年5月1日项目正式启动时,项目小组也组建完成。刘工所组建的项目小组为12人,包括软件设计、编码工程师8人,软件测试工程师4人。
由于软件项目开发的主要成本为人力资源成本,为此,刘工制定了详细的人力资源成本控制计划,人力资源计划成本=12人×25周×平均人周成本(1500元) =450 000元。为了将软件开发人力资源费用控制在45万元内,刘工制定了详细的工程成本管理计划。
刘工所进行的项目工作分解,得到共24个系统功能模块,分别编号为M01、M02、……、M24,并分别为每个功能模块制定了工期和成本预算。如表4-8所示。
在项目开发的过程中,刘工随时跟踪统计项目的开支情况。刘工要求每位软件工程师每周报告一次工作进度,如某某模块完成工作量30%,刘工据此来估算项目的进度和成本绩效。如表4-9所示。刘工根据表4-9的统计数据计算累积完工的工程价值,计算公式为:
。
【问题1】(6分)
请以200字左右回答,刘工的成本预算存在哪些问题?刘工所采取的成本跟踪管理的方法是什么方法?应用软件系统开发项目中,使用此方法应注意什么特点?
【问题2】(10分)
请以200字左右回答,衡量软件开发实际累积人力资源成本的计算公式是什么?怎样改进上述方法才能控制好人力资源成本?怎样得到软件企业实际消耗的人力资源成本?
【问题3】(9分)
请以300字内回答,刘工采用此方法的具体措施是否存在不足之处?如存在,请指出不足并说明理由,请给出你的改进意见。
4.4.2案例分析
【问题1】
挣值管理方法是应用非常广泛的项目成本管理方法。但是,IT应用系统开发工程项目有其特殊的特点,挣值管理方法的应用必须结合IT工程项目的特点进行,才能够收到理想的效果。另外,IT应用系统工程项目的成本预算也是比较困难的课题,我们往往很难像其他工程项目(如建筑工程项目)那样,将IT应用系统工程项目的成本预算做得准确。
在过去的应用软件工程项目中,很少采用挣值管理来控制项目进度款支付。但随着IT项目管理水平的提高,随着我国IT工程监理制度的推广,将来采用挣值管理控制工程进度款支付也是可期待的。项目经理应当熟练掌握挣值管理方法。
软件项目的合同价格不等于软件项目开发的实际成本,合同价格除了承建单位的软件开发成本外,还包括销售成本、行政费用、税金、利润等,但我们在这里探讨的主要是项目开发成本,即工程成本。
在刘工的成本估算中,缺少了对工程量的估算,因此,对人力资源成本的估算也就缺少了依据。对工作量的估算,如M0l模块需要16“人周”,M02模块需要6“人周”,或以“人月”、“人年”为单位来估算工作量,各模块的工作量合起来,就可得到整个项目的工作量。当然,如果要把预算做得更准确,还需要估算各模块的代码量,以历史经验得到每个成员的工作效率来计算各模块所需的工作量,但这种做法目前在我国还没有多少成功的案例,很多IT公司均是靠经验来进行估算的。
【问题2】
对于大多数应用软件开发项目来说,工程成本的主要构成要素是人力资源使用成本。而为了合理有效地控制人力资源使用成本,在组建项目小组的时候,可以根据工程项目的进度情况,分阶段投入人力资源,要做好与其他工程项目协调使用人力资源。我们也可用人力资源成本来计算挣值,人力资源使用成本的实际值可向财务查询所支付的成本,挣值可以这样计算:
累积人力资源成本(挣值)=模块工作量i×完成率i×平均人力周成本
这种计算是在承建单位内部的成本控制。
本题的主要考点在于怎样在软件开发项目中合理、有效地进行挣值管理。要合理使用挣值管理方法,必须同时考虑到软件工程项目的特点。软件工程项目与建筑工程项目有很大的区别。软件工程项目更加类似于科研项目。如表4-10所示。
在建筑工程项目中,工程进度与成本之间的线性比例关系较好,而且进度容易测量。因此,挣值管理方法也使用得比较好。
但在软件工程项目中,要合理、合适地采用挣值分析方法是比较困难的。软件工程项目的成本控制的困难有以下原因。
(1)需求的不确定性:软件项目的范围、需求难以准确地定义,导致项目开发过程中存在大量的变更,从而影响进度和成本。
(2)规模和工作量的不确定性:软件项目的工作量预算难以估计准确。
(3)质量鉴定的不确定性:开发完成并投入运行的软件模块的质量难以鉴定,特别如某个模块完成了30%或80%的工作量,我们无法去鉴定,或用于鉴定的成本可能很高而使开发单位难以接受或不愿意去做这样的鉴定。
(4)把握需求的不确定性:已经编写完成的软件代码,可能隐藏着对需求理解的严重偏差,可能是废品,得全部返工。
(5)难易程度的不确定性:已经编写完成的软件代码可能是很简单的,未完成的可能很难,或反之。
(6)人员的不确定性:如果编写软件代码的人员不稳定,熟练员工中途流失将给项目进度、质量管理带来严重影响。新人中途接手未全面完成的、风格不良的软件代码,是一件很困难的工作。员工的敬业精神也难以衡量。
由于以上这些因素的影响,使得在软件工程项目中对工程进度和工程质量的测量变得很困难,因而,我们就不可能像在建筑项目中那样使用挣值管理方法了。
【问题3】
在软件项目的开发管理中采用挣值分析时,可以考察各模块的完成状态,全部完成并且集成测试成功,能够投入初步运行,这样,可以算本模块的工作量完成,可以获得本模块的全部挣值,否则,本模块的挣值计0。考虑到工程整体的集成还需要一定成本,因此,在计算各模块挣值时,还应当扣除一定比例的挣值,作为工程整体集成的工作量的挣值。
但我们在实际工作中,也有很多时候采用估算某模块完成百分之几的做法,但这种做法是粗放式的,项目管理人员可以将这信息作为对项目成本累积的参考,作为粗略估计项目进度的参考,但不是成本核算的依据,也不能作为申请工程进度款支付的依据,需知这种信息的可信度和可控性均较差。
4.4.3参考答案
【问题1】(6分)
应当先估算各模块的工程量,再以工程量来估算所需要的人力资源,如总工程量“××人周”或“××人月”或“××人年”等。刘工的项目小组的建设应分阶段进行人力资源投入,如设计阶段所用人力应较少,而详细设计完成后,编码阶段进入,则人力投入是高峰期。
人力资源成本的预算也应当核算一定比例的浮动成本。刘工所采用的是挣值管理方法。此方法应用到软件工程项目中,应注意软件开发挣值与投入的非线性比例关系特点。
【问题2】(10分)
软件开发人力资源成本挣值统计是能够做到比较准确的,衡量软件开发人力资源成本的计算公式: 累积人力资源成本=模块工作量i×完成率i×平均人力周成本
刘工所采取的方法应增加各模块工程量的估算,就能够进行人力资源成本控制。如表4-11所示。
实际消耗的人力资源成本可通过财务发放的工资统计得到。
【问题3】(9分)
刘工根据各工程师的进度报告(进度百分比)来计算挣值,在软件开发中是不可行的。
在软件开发中,各模块的进度百分比通常很难测量准确,而各工程师的汇报往往是很粗略的估计,这种估计只能提供给项目经理控制进度时做参考,但不能作为成本核算或申请工程进度款支付的依据。建议刘工以各模块全面完工来进行计算,即各模块要么计算0%,要么计算100%完工,但在进行工作分解的时候,分解的深度和各模块的粒度要合适,便于进行控制。
另外,在核算的时候,要扣除一定的比例,如20%~30%作为各模块集成所需要的工程量,待工程全面完工后进行核算。