成本管理是软件项目管理的主要内容之一,分析了目前软件开发成本管理过程中存在的问题,提出了将进度和成本联系起来考虑,使工作量和实际成本匹配的方法。结合现有的估算方法,设计成本管理系统并将其应用于软件项目管理平台中,旨在改善软件开发中成本超支的现象,为企业提高效益。
关键词 软件项目管理平台 成本估算 成本控制
随着信息技术的飞速发展,软件产业在国民经济中扮演着越来越重要的角色。对软件开发实施有效的管理是决定软件产业发展的至关重要的因素。在软件项目的开发过程中,项目管理日益受到人们的关注。软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。成本管理是软件项目管理的一个主要内容,就目前发展来看,成本管理是软件项目管理中一个比较薄弱的方面,许多软件项目由于成本管理不善,造成了软件造价的成本上升,软件质量得不到保证。针对这些现象,文章提出了一种新的成本管理方法,并将其应用于正在研究中的课题--软件项目管理平台的开发当中,以便于开发有效的软件项目管理工具,为企业节约成本,提高经济效益。
1 成本管理概述
项目成本管理包括确保在批准的预算范围内完成项目所需的各个过程[1]。软件项目成本的管理基本上可以用估算和控制来概括,首先对软件的成本进行估算,然后形成成本管理计划,在软件项目开发过程中,对软件项目施加控制使其按照计划进行。成本管理计划是成本控制的标准,不合理的计划可能使项目失去控制,超出预算。因此成本估算是整个成本管理过程中的基础,成本控制是使项目的成本在开发过程中控制在预算范围之内。
1.1 成本管理的过程
软件项目成本管理就是根据企业的情况和项目的具体要求,利用公司既定的资源,在保证项目的进度、质量达到客户满意的情况下,对软件项目成本进行有效的组织、实施、控制、跟踪、分析和考核等一系列管理活动,最大限度地降低项目成本,提高项目利润。
成本管理的过程包括[1]:
1.2 软件开发成本管理过程中的主要问题
1) 项目成本预算和估算的准确度差。
由于客户的需求不断变化,使得工作内容和工作量不断变化。一旦发生变化,项目经理就追加项目预算,预算频频变更,等到项目结束时,实际成本和初始计划偏离很大。
此外,项目预算往往会走两个极端:过粗和过细。预算过粗会使项目费用的随意性较大,准确度降低;预算过细会使项目控制的内容过多,弹性差,变化不灵活,管理成本加大。
2) 缺乏对软件成本事先估计的有效控制。
在开发初期,对成本不够关心,忽略对成本的控制,只有在项目进行到后期,实际远离计划出现偏差的时候,才进行成本控制,这样往往导致项目超出预算。
3) 缺乏成本绩效的分析和跟踪。
传统的项目成本管理中,将预算和实际进行数值对比,但很少有将预算、实际成本和工作量进度联系起来,考虑实际成本和工作量是否匹配的问题。
1.3 成本管理方法的改进
目前常用的软件项目管理工具都侧重于某一方面的功能,如微软的 Project2000侧重管理、规划任务,并在项目执行过程中跟踪这些任务,偏向于进度安排与跟踪控制;RUP侧重于用户需求的描述;PVCS侧重于软件变更管理。这些软件项目管理工具都在不断的完善其功能,虽然也有成本管理的功能,但总的来说大多数都不能用来进行软件成本估计,缺乏事先成本控制,不能和估计数据自动化协调,不能自动化地利用历史数据库中的数据。当前的项目管理工具并不能满足成本管理的需要。
针对以上成本管理过程中出现的问题,以及目前软件项目管理工具的不足,文章提出了一种改进的管理方法,将进度和成本联系起来考虑使工作量和实际成本匹配的方法。并且结合已有的成本估算方法,同时将过程数据库引入到软件项目管理中,给出成本管理系统的原型设计。系统采用先进的估算方法解决了成本估算准确度差的问题,工作量和实际成本匹配的方法进行成本的绩效分析和跟踪使得项目成本能够控制在预算范围之内。
2 成本管理系统的设计
2.1系统总体设计
虽然目前已有不少项目管理软件,但一般只是管理软件进度和跟踪监督,和软件估算是项目独立的,而且目前还没有成型的软件项目成本管理软件,我们以 为指南,研究软件开发过程中的特殊性,结合现有的软件成本估算技术和一般行业的项目管理技术,以进度、人员、成本,变更为中心,提出了软件成本管理的具体实施方案。并以此为基础对系统的功能进行分析和设计。
2.2 系统功能设计
1)成本估算是项目成本管理的一个非常重要的部分,精确的软件成本估算是进行有效的软件管理的一个必不可少的组成部分。常用的软件估算方法有:算法模型法、专家判定法、类比估算法等,这些方法各有优缺点。本文采用文献[2]中提到的方法,即将各方法结合起来,互相取长补短,由层次分析法得到各种估算法的权重,再由权重合成法得到估算成本。它可以提高软件成本估算的精确度。
定义 设f1,f2,┅,fm为m个不同模型所得的估算值,wi(i=1,2,┅,m)为第i个模型的权重,则
f= 且
即为权重组合估算模型。
假设用COCOMO模型[3]估算成本为MM1,TDEV1,用Delphi技术估算成本为MM2,TDEV2,用类比估算法估算成本为MM3,TDEV3,则由权重组合估算得:
MM=w1MM1+w2MM2+w3MM3
TDEV=w1 TDEV1+w2 TDEV2+w3 TDEV3
这里MM是软件开发需要的人月数,TDEV是软件开发周期。
2)预算变更管理可以记录每一次资源和成本的变化,保持完整的有注释的历史记录。
3)成本基准计划是成本控制得标准。即使最好的项目经理采用最优的成本估算方法,也 不可能使预算和实际成本完全一致。因此,项目成本估算应该预留总成本的5%-10%作为不可预见的成本,用于应急项目成本,在成本估算和预算之上。成本控制的基准是项目管理人员根据项目的具体情况确定允许的偏差范围。在一个项目的进行中,成本基准计划并非一成不变的,而是随着用户的需求变化,项目的变更请求基准计划可能会得到不断的校正。
4)进度计划分为控制计划和执行计划,允许用户实时查询进度计划以及实际进度状态。成本估算通常与工作量联系起来考虑,成本的跟踪控制过程也是进度计划的执行与调整的过程。
5)成本控制是根据成本基准计划来控制项目预算的变化,成本控制过程的主要输出是修正的成本估算、更新预算、纠正行动、完工估算和取得的教训。成本绩效分析和跟踪将预算和实际进行数值对比,将预算成本、实际成本和工作量进度联系起来,考虑实际成本和工作量是否匹配。系统解决实际成本和工作量匹配的方案如图2。如果实际成本和实际进度不匹配则重新调整计划,采取必要的措施防止项目成本失去控制。
6)过程数据库存放项目的成本管理过程的历史数据,它由已完成项目的数据构成。这些数据可用于成本估算,成本计划,绩效分析等方面。它除了为进行新的项目成本计划提供依据,也可以为进行中的项目提供实时的过程数据。在项目初始基准计划制定时期,以过去类似项目的历史过程度量数据为经验,制定基准计划,执行计划。将本次项目开发执行过程的过程度量数据存入数据库,作为下一次开发计划制定的经验数据。这样,计划的制定越来越接近实际。
3 结论
该文讨论了目前已经有的一些软件项目管理系统的不足,不能把预算、工作量和实际进度联系起来考虑做到有效的成本管理,本文提出了改进的成本管理方法,可以对成本管理进行准确的估算、有效的控制,并且给出了系统的设计。但由于软件项目管理本身的复杂性,虽然本文所提出的方法有助于成本管理中估算与控制问题的解决,但仍然不可能做到非常好,如果能将成本和进度、质量联系起来取得三者之间的平衡,势必对软件企业的项目管理有很大的实用价值。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删