软件项目成本管理论文
软件项目管理是软件项目开发中进行规范化管理、保证软件项目质量和进行成本控制的最重要的问题之一,成本管理是软件项目管理中的一个核心组成部分。下面是学习啦小编为大家整理的软件项目成本管理论文,供大家参考。
软件项目成本管理论文范文一:浅析软件企业项目成本管理
摘要:软件企业是我国高新技术产业的重要组成部分,随着软件企业的竞争的加剧,软件企业项目成本管理显得尤为重要。本文通过对软件企业项目成本管理中存在问题的分析,结合作者的工作实际,有针对性地提出了加强软件企业项目成本管理和控制的建议。
关键词:软件企业;项目成本;管理;建议
一、软件企业项目成本管理概述
软件企业项目管理过程包括可行性评审、项目评估、立项和计划以及项目监控及结项。其项目成本主要有三部分组成:(1)人工成本,包括项目组成员的工资和社保费用、外包人员的工资费用、加班及其他补贴等;(2)资产类成本,即资产购置成本,如计算机软硬件、外部设备、网络设施以及安装工具的购置费用等;(3)管理费用,包括房屋租赁费,办公费、差旅费、加班餐费等。
完善的软件项目成本管理能够确保企业在预算内按时、按质、按量完成项目目标,加强项目成本管理是企业增加利润增长点、提高核心竞争力,求得生存和发展的关键,因此对项目管理进行成本全过程控制尤为重要。
二、软件企业项目成本管理中存在的问题
1.成本预算流于形式
(1)立项环节的成本预算流于形式。虽然成本预算不可能完全精确,但要做到对成本支出方向和金额范围有所约束,然而在很多企业中预算管理未能有效实施,原因在于成本预算的不科学、不合理,与实际存在很大的出入。由于成本预算对单位的所有人员都具有约束力,在一定程度上直接影响项目组人员的收入水平和公司的利润,从而编制的预算在一定程度上存在着人为控制因素。
(2)尽管成本预算审核和批准是减少人为影响的重要手段,但目前企业成本预算的审批流于形式,一般是项目经理编制成本预算后,主管项目经理、财务经理、总经理出于种种原因很少会提出异议,因此预算的审核和审批只是在走流程。预算是全年成本支出的指导,缺乏与实际相吻合的预算,成本管理和控制的效果可想而知。
2.绩效考核制度有待加强
人工预算的准确性和绩效考核在项目成本管理中具有非常重要的作用。一般的,在软件项目成本中人工成本要占项目总成本的60%左右。人工成本主要取决于开发人员的水平、公司的薪酬体系等因素,同时也取决于项目的进展情况。目前,绩效考核比重在人工成本中仅占15%,占比偏低,这就不能更好的激励项目组成员工作的积极性。
3.资金成本和风险成本管理执行和控制环节有待细化
资金成本是指公司使用资金所产生的相关费用。由于一般项目所需资金都由公司统一提供,因此在软件项目实施过程中必然忽视现金使用状况,更不会考虑项目投入会给公司带来什么样的资金压力和项目效益状况。在以项目为主的软件公司中,项目收入是公司主要资金来源,项目支出是主要的资金流出,公司资金流是所有项目资金流扣除期间费用后的余额。所以每个项目的资金流都对公司资金状况产生影响。现金流是所有公司的血脉,特别是对于中小软件公司,如果不加强项目资金流管理,可能造成公司资金周转困难,最终会影响公司的良好运转,严重的甚至会倒闭。
风险成本是指项目实施过程中由于一些不确定因素的影响而可能付出的代价,在项目成本管理过程中,项目风险和风险成本不太受关注,但风险一旦出现,就会给项目效益带来很大影响。
4.项目过程管理有待细化
项目过程管理包括项目立项、计划、监控三个过程,项目立项过程指当产品部门策划或已承接某项研发、实施、维护任务,并对该任务有时间、成本、资源上的初步计划时,必须以立项的方式及时通知事业部,获得资源及管理上的支撑。项目计划过程指收到立项通知书后15个工作日内,必须完成项目计划及预算的制定并提交审批;项目计划是项目考核的基准。项目监控过程指跟踪了解项目计划的各项参数如进度、工作量、费用、资源、工作成果等,及时了解项目的实际进展情况,当项目执行效能严重偏离项目计划时,及时分析原因,采取适当的纠正措施。目前项目过程管理比较全面,但需要细化,比如预算管理包括工程预算和研发预算,但项目考核只对工程预算部分进行考核,不能有效避免人为调节,最终造成项目组考核都是满分,成为虚设,项目管理就失去了意义。
5.项目组人员综合素质有待提高
在软件项目成本管理中,人是核心,制度和工具都围绕人发生作用。但软件项目的参与者基本上都是以专业技术人员为主,财务管理人员只占很少比例,尤其是项目的管理者大多数是专业技术部门出身,本身缺乏系统的财务管理理论知识和实践工作经验.在软件项目成本管理过程中,仅局限于项目进度、范围、人员工资和差旅费用等方面的管理,对于项目成本预算、成本管理和控制、成本指标分析等就显得力不从心了,使得成本管理工作难以取得实效。
三、加强软件企业成本管理的建议
针对成本管理容易出现的问题,加强软件企业成本管理和控制势在必行。
1.加强项目成本管理制度建设,严格执行项目成本预算管理
建立完善的项目成本管理制度,加强事前、事中和事后的管理和控制。成立项目管理领导小组,建立成本预算、成本控制、成本考核内部管理制度,加强项目执行过程中的管理和控制。保证管理的科学合理,执行的真实有效。
针对成本预算流于形式的问题,必须切实做好审批环节,建议根据不同人员的业务水平和综合能力,审批相关的内容,对项目成本预算进行严格的审批。为解决审批人员的业务水平不够而出现预算审批走过场的问题,应将审批内容与审批人员的年度考核相挂钩,从而防范审批人员不负责任、随意审批的现象。
在软件项目管理全过程中,成本预算是关键,必须对预算成本进行正确的认识。合理的成本预算是成本管理的起点,在项目未实施前对成本进行准确估计是相当困难的,很多管理者认为项目成本预算无法做到准确,对项目管理失去信心。成本预算便于管理者在项目实施之前对其可能的成本及利润水平进行事前评价,以判断即将实施的项目能否给公司带来利润,以及带来多大的利润和利润率,项目完成后将实际成本与预算成本进行比较,以判断项目的实际利润水平以及实际利润水平与预计利润之间的差异。评价成本的超支和节约情况,并且根据成本考核结果进行奖惩,鼓励节约,惩罚超支。 2.要进行合理的绩效考核
要结合公司的实际,适当借鉴其他公司的成功做法,建立考核机制,制定绩效考核的相关指标,尽量以可量化的指标,加强对公司全员的考核。将成本控制情况与个人待遇相挂钩,对于节约成本的给予控制效益一定比例的奖励。要实施项目奖励制度,制定出具有可操作性和实用性的奖惩措施,在实际工作中能有章可循,便于操作,体现出公平性、合理性,从而激发员工参与成本管理和控制的积极性,更有利于为公司创造更多的效益。如在进行薪酬方案设置时,可将员工收入的较小部分(如30 %) 作为基本工资,每月按时发放,较大部分( 如70 %)作为绩效,根据考核评价发放。采用这种低工资+高绩效的方式,能有效促使员工发挥主观能动性,强化成本意识和节约意识,严格进行成本管理和控制,从而提高项目的经济效益,最终实现增强公司盈利能力和参与市场竞争能力的目标。同时,在项目实施过程中要严格控制人工成本,尽快从项目中释放出高级管理人员,在不影响项目进度和质量的前提下,适当减少或调整其用工时长。
3.加强项目过程管理和监控,进行有效的成本估算和预算
项目预算是项目资源分配的依据,也是成本管理和控制的电影票,在成本管理中具有重要作用。成本估算和预算是对完成项目所需的资源的合理估算。预算管理应包括全预算管理,实行项目组成员全预算成本考核,而不是部分成本考核。在实际工作中成本估算方法就显得尤为重要,通常有三种成本估算的方法:一是Delphi方法:是PERT与Delphi的结合方法(只有1名估算成员时为纯粹的PERT方法)。可以用来估计软件的规模、工作量或者成本等可量化的内容。1-6名有相关经验的估算成员分别按最佳的、可能的、悲观的三种情况给出估计值,分别记作a、m、b,则估计结果按如下的公式计算:E=(a+4m+b)/6,E为得出的估算值。二是FP功能点法:是一种对软件功能、大小进行间接的、量化的度量方法,基于外部应用接口和内部应用复杂性的主观判断以及全局性能特点综合考虑。功能点从用户的角度体现了一个应用的大小。它通过对主要的外部数据录入,输出,文件类型等相关的信息处理功能的数量来度量软件应用。功能点分析是一种具有清晰商业意义的度量方法。它量化了软件中包括的对软件使用者有意义的功能。这种度量直接与软件的商业需求有关,可广泛应用于各种开发环境,并贯穿于整个开发周期。功能点度量本身也是由多个阶段产生的。通过一系列标准化的基本准则,每个商业功能根据其类型和复杂度都是一个数字指数。这些指数合起来给出了对规模的最初度量,然后与一些软件相关因素结合,规范为一个整体。最终结果是一个数值,称为功能点指数,用来度量软件产品的规模和复杂度。三是基于规模的工作量估算:在软件或工作规模有了明确估算后,在规模基础上计算工作量的方法上述三种方法可根据公司具体情况进行选择,也可同时使用。在实际工作中再有经验的专家也不可能使预算和实际成本完全一致,因此项目应该预留5%- 10%的不可预见成本作为应急项目成本。
4.树立整体经营意识,建立规范的成本管理体制
软件企业必须加大对全体员工的经营理念教育, 强化全员的经营意识。根据实际情况,制定有针对性的成本管理办法。要将责任落实到人、采取切实可行和具有较强操作性的措施,并激励全员参与,才能严格控制项目成本。不同的项目有不同的成本控制目标,项目经理是项目成本管理的第一责任人,加强项目成本管理要形成以项目经理为核心的成本管理体系,并采取一定的激励机制,使个人的收入、职务升降和项目的效益挂钩,从而充分调动职工的积极性和主动性,共同为项目的成本管理献计献策,彻底打破干好干坏一个样,干多干少一个样的格局。
5.提高项目组人员综合素质
提高项目组人整体素质,既是新形势下的客观需要,也是软件企业发展对项目组人员的新要求。提高项目组人员整体素质,必须加大对项目组人员培训的力度,建立良好的培训体系。不仅要提高本专业素质,还需加强财务管理理念。顺应信息时代节奏,必须熟谙此道,懂得此理,自觉地把加强学习、更新知识作为第一要务。勤“充电”,加足“油”,应对挑战胜一筹。项目组人员综合素质的提高,是软件企业制胜的法宝。
基于成本管理的各个阶段,强化成本的动态控制,软件项目成本管理就要根据公司实际情况和项目具体要求,利用公司的既有资源,在保证项目进度、质量达到客户满意的情况下,对项目进行有效的成本组织、实施、控制、跟踪,分析和考核等管理活动,最大限度的降低项目成本,提高项目利润。
参考文献:
[1]刘 萍:项目成本管理[M]. 哈尔滨工业大学出版社,2011.
[2]贾经董:软件项目管理[M]. 高等教育出版社, 2012.
[3]任永昌:软件项目管理[M].清华大学出版社.2012.
[4]蔡学兵:软件项目成本管理的问题和对策研究[Z].广东工业大学经济管理学院.2008.
软件项目成本管理论文范文二:软件项目成本估算研究
摘要:软件项目成本估算是软件项目成本管理的基础,也是整个软件项目管理中的一个难点。对软件项目成本估算步骤以及常用方法进行了初步探究,并着重介绍了IFPUG和COCOMO这两个参数模型的应用方法。
关键词:软件项目成本估算;软件估算;IFPUG;COCOMO
中图分类号:TP301 文献标识码:A 文章编号文章编号:16727800(2014)001002003
作者简介作者简介:龚银锋(1983-),男,硕士,宁波数字电视有限公司项目经理,研究方向为软件项目管理、业务运营支撑系统。
0 引言
项目的成本管理,是指在规定时间内,为确保项目目标的实现,对项目实际发生的成本支出采取的各种控制措施和控制过程。其管理活动包括:资源需求预测、成本估算、成本预算和成本控制[3]。成本估算是后续成本管理活动的前提,也是成本管理中的重点与难点。
软件项目的成本估算,并非传统资金意义上的估算。由于人的脑力劳动是软件开发的主体活动,因此软件开发的主要投入在于支付开发人员脑力劳动的报酬。不同软件开发单位的薪资水平存在很大差别,所以从普适性考虑,软件项目成本估算研究的主要范围是软件项目的工作量和工作进度[6]。因此,衡量软件成本的常用单位有人天、人月、人年等形式,并且有转换系数可在不同单位间进行换算。在估算出软件开发所需的人力成本之后,再根据开发单位的实际情况和项目内的其它费用即可估算出相应的成本[4]。
1 软件项目成本估算阶段
软件项目的成本估算,一般需要经过以下3个阶段:
(1)规模估算阶段。规模估算是指对软件的大小进行量化衡量,它是后续工作量估算的前提。估算软件大小有两种基本方式:估算软件所解决问题的大小和数量,比如功能点,因此也称功能规模的度量;估算解决方案的大小即技术规模的度量,比如代码行数。一般在项目初期主要以估算问题大小为主,随着项目的开展逐步采用以估算解决方案大小的方式。
(2)工作量和进度估算阶段。工作量估算是对软件开发所需人力的估算,这是软件项目的主要成本。进度估算将估算项目各任务单元可支配的时间,并制定里程碑计划。工作量估算和进度估算共同决定了项目团队的规模和结构[4]。
(3)估算反馈阶段。包括对成本估算方法本身的反馈,以及估算实践中的阶段性结果反馈[6]。在初期对项目掌握的情况较少并且仍有较多不确定性,随着项目开展可了解到更多的信息以及既成事实后的情况。因此,通过不断地进行阶段性估算结果反馈,有利于调整估算方法相关数据,从而提高估算结果的精确性。
2 软件成本估算方法
软件成本估算方法主要有以下4种:类比估算法、项目分解法、专家估算法和参数模型法。
(1)类比估算法。类比估算法也称基于案例的推理[2],即从已完成的类似项目的实际成本来估算新项目的成本。估算过程中,需确定项目之间的各项差异,并确定各项修正系数,对各项数据加以运算调整。
(2)项目分解法。需要对项目进行分解,根据分解的先后顺序不同,可分为自上而下估算法和自下而上估算法。自上而下估算法的思想是从项目整体进行推算,将已估算出的项目整体工作量,按比例分摊至项目的各项活动中去。该方法比较适合在项目初期的总体设计中运用[8]。自下而上估算法与自上而下估算法正好相反,这种方法是将项目逐层分解成足够基本明确工作量的子任务,在测算各子任务成本后,将它们累计起来就是整个软件项目的成本。这种方法更适用于项目后期或分解后的子项目成本估算。
(3)专家估算法。邀请对软件应用领域或开发环境有丰富知识的专家对该软件项目进行工作量估算,当遇到一个与已有软件项目类似的新项目时,可邀请熟悉原软件项目的人员作为专家。
为了避免单个专家主观因素的偏向性,该方法大都采取邀请多个专家进行估算,并对多个估算结果进行综合。其中由美国兰德公司(RAND Corporation)推广的Delphi法正是汇集多个专家意见的技术,其步骤大致如下[10]:①组织者向各专家提供软件规格说明书和估算表格供他们进行研究。估算表中应包括软件成本估算的最小值(ai)、最有可能值(mi)、最大值(bi)以及简要说明和填表时间;②在专家研究软件规格说明后,组织者召集他们召开讨论会议。会上专家可向组织者提问,组织者也可向专家介绍类似软件的有关情况,专家之间也可展开讨论;③专家填写估算表格,并匿名提交;④组织者对表格数据进行汇总和分类摘要,并将结果反馈给各专家。Delphi法中的估算值汇总可用三点估计法,设各专家的估算期望值为Ei,最终估算期望中值为E,则有Ei=(ai+4mi+bi)/6,E=sum(Ei)/n;⑤组织者召集专家开会,对估算结果进行讨论;⑥各专家研究估算结果,重新提交一份估算表格。重复④至⑥步骤,直至获得一个大多数专家认可的估算值。
Delphi法可以避免集体讨论盲目屈从权威或多数的缺陷,消除相互间的影响,能让专家充分表达各自见解,集思广益。然而该方法实施过程繁琐,并且非常耗时。
(4)参数模型法,即通过采用一个或多个数学公式得出估算值的方法。这些数学公式一般是在搜集大量历史软件项目数据的基础上,进行数学建模得出经验公式,使用起来比较方便快捷。但一般都需要经过一定的校准之后才具有实际参考意义。
3 IFPUG
在规模估算阶段,比较流行的参数模型有IFPUG(International Function Point Users Group,国际功能点用户协会)功能点分析法。该方法最初是由IBM公司的工程师Allan Albrecht所设计的自顶向下法,后被IFPUG所采用、发展和推广,并出版了多个版本的功能点计算实践手册[7]。该方法是目前应用最广泛的软件规模度量技术,在我国的软件行业软件工程定额标准(2009版)中也参考了该方法。该方法的基本步骤如下: (1)把软件系统分解为如表1所示的5类功能点,并估算各类功能点的数量(FPi)[1]。
(2)给各功能点分配复杂度权重(Wi),如表2所示[2]。
在给各功能点分配权重时,有定量的判断规则。判断ILF和EIF的复杂度依据的是其中所包含的数据元素类型数(data element type,DET)和记录元素类型数(record element type,RET)。它们的判断表格如表3所示[5]。
而对EI、EO和EQ复杂度的判断,除了DET外还需要依据所涉及的文件类型数(file type referenced,FTR),并且有所不同。EI的复杂度判断表格如表4所示[5],EO和EQ复杂度判断表格如表5所示[5]。
(3)计算出一个未修正的功能点数(Unadjusted Function Point Count,UFPC)[9]:
UFPC=sum(FPi×Wi)。
(4)计算调整后的功能点数。仅从功能点数和其本身的复杂度,不能全面地反映系统规模,为此IFPUG还引入了14个系统特性(general system characteristic)对UFPC进行修正:数据通信、分布式数据处理、性能、可配置性、事务效率、实时数据输入、终端用户易用性、在线升级、复杂运算、代码复用性、安装简易程度、操作方便性、多场合适应性、易于调整变更[1]。将该系统特性(Fi)按对系统规模的影响程度划分为6个级别,从无影响到最大影响分别用数字0~5表示,这样最终的功能点数FP可由以下公式计算得出:
FP= UFPC×(0.65+0.01×sum(Fi))
上式中的0.65和0.01均为经验常量。
4 COCOMO
在工作量估算阶段,常用的参数模型有COCOMO(Constructive Cost Model, 结构化成本模型)。该模型是由Barry Boehm在1981提出的(因此也称为COCOMO81模型),是他研究了美国TRW公司的大量软件项目后,推导出的一个成本估算模型[7]。该模型按详细程度,分成基本型、中等型和详细型。基本型按以下公式构建[10]:
E=a×Sb。
其中,E表示工作量,是按人月度量的;S是指规模,是按千行源代码为单位的;a、b是常量,常量的选择与软件项目的类型有关,Boehm把系统类型分为3种,如表6所示[10]。
中等型模型的计算公式最终调整为:
E=a×Sb×EAF ,其中EAF=∏15[]i=1Fi
详细模型是对中等模型的进一步扩展,其基本公式与中等模型的公式相同。它把系统划分为系统层、子系统层、模块层,按这3层提供不同的成本驱动因素表,供不同层次估算使用。同时还将模型常量按开发阶段的不同进行一定的调整。
COCOMO81推出后,在软件业得到了广泛应用,也取得了良好效果。但软件工程技术突飞猛进,新的软件过程模型不断涌现,COCOMO81的应用渐渐遇到了更多的困难。为了适应新的需要,Boehm与其合作者对COCOMO进行了不断改进,在1996年正式发布了第一个版本的COCOMOⅡ[6],在COCOMOⅡ中对COCOMO81做了较大变更,比如划分为应用组装模型、早期设计模型、后构架模型。早期设计模型和后架构模型的计算公式均为[6]:
PM=A×SE×∏n[]i=1EMi
其中,PM为工作量,单位为人月,A为常量3.13(CO COMOⅡ2003版),S是指规模(按千行源代码为单位),EMi为工作量系数,类似于COCOMO81中的工作量因素,在早期设计模型中概括为7个(式中n=7),而在后架构模型中扩展为17个(式中n=17)。E由以下公式计算所得[6]:
E=B+0.01×∑5[]i=1SFj
其中,B为常量0.93(COCOMOⅡ2003版)[6], SFj为:有先例、开发灵活性、架构/风险解决方案、团队凝聚力、过程成熟这5个特性各按6个等级取值而来的比例因子[6]。
5 结语
软件项目估算的目的不是预测项目实施的结果,而是帮助确定项目目标,使其在合理范围内,从而能让项目在可控状态下达成项目目标[11]。软件的估算离不开历史数据的支撑,虽然有行业数据参考,但其准确度非常低,不同开发组织的生产率水平相差非常大,因此需要尽早积累开发组织自身的历史数据。可从一组少量的数据开始,例如:每人每月完成的代码行数、交付一个用户故事的平均时长、BUG出现的概率以及修复时长等。
参考文献参考文献:
[1] IFPUG.Function point counting practices manual[M].Westerville:IFPUG,1999.
[2] BOB HUGHES,MIKE COTTERELL.软件项目管理[M].第5版.北京:机械工业出版社,2010.
[3] 池仁勇.项目管理[M].第2版.北京:清华大学出版社,2009.
[4] 房东.软件项目估算模型研究与实践[D].济南:山东大学,2006.
[5] 胡云龙.软件规模度量方法介绍[J].计算机时代,2006(7):1721.
[6] 蒋敏迪.软件成本估算模型及其实现[D].广州:中山大学,2004.
[7] 李莉.基于功能点的COCOMOⅡ估算模型研究和应用[D].厦门:厦门大学,2008.
[8] 刘瑞河,陈志成.软件项目管理中的成本估算[J].江西理工大学学报,2007,28(1):3639.
[9] 舒小仙.软件项目管理的成本估算[J].中国水运,2008,8(12):8081.
[10] 郑人杰,殷人昆,陶永雷.实用软件工程[M].第2版.北京:清华大学出版社,1997.
软件项目成本管理论文相关文章: