(2)什么是外延间接成本?
伴随着开发进度的进行,涉及的产品质量、工期进度等必然会产生一系列成本,这些置于开发直接成本之外的成本,一般称为外延间接成本。管理好这些外延的成本,对开发效益起到至关重要的作用。
①质量控制成本:是指在开发期间除了发生直接开发成本外,在质量上还会产生一系列的外延成本。它们包括质量预防成本、质量测试和鉴定成本、内部与外部质量保障成本和内部质量故障成本。可以说,是否有效管理质量外延成本对增加经济效益是非常重要的,质量成本管理的目标是使这四类质量成本的综合达到最低值。因此,对软件开发成本效益而言,质量并非越高越好,超过合理水平时,属于质量过剩。无论是质量不足或过剩,都会造成质量成本的增加,开发团队都必须要通过质量成本管理与控制加以调整。
②工期损失成本:在软件开发中,如何处理工期与成本的关系是成本管理的一个重要课题。它主要表现在:一是项目经理为了使工期提前而采取的费用,包括为缩短工期而必须增加的额外费用。例如,为缩短工期的加班费、奖金等人工费用等。二是发生软件开发延期而增加的费用。因为延期会导致人员工资、补助,和相应的水电费、办公费等其他费用增加,更严重的还会因为延期造成应收流动资金运转积滞。三是如果工期拖延从而导致客户索赔成本。出现这种情况,不光是经济上受到直接损失,而且在信誉上也要受损失,而这种无形资产的损失往往比经济上的损失更严重。以上这些引起的工期费用,可统称其为工期损失。
避免外延成本泛滥成灾的思路与对策
成本管理是纵向贯穿软件开发、测试活动的全过程,横向涉及项目经理、技术、财务等职能部门。笔者结合软件开发成本管理的经验,在这里提出避免外延间接成本管理漏洞的思路与对策。
(1)建立项目成本责任制
项目经理的成本责任,不同于工作责任。有时工作责任已经完成,甚至还完成得相当出色,但成本责任却没有完成。因此,实行项目成本负责制,就是要求项目经理对项目进度、质量、成本等全面负责。
在软件开发过程中以项目经理为责任人,按照不同的成本要求将目标成本进行细分,纵向分解到各技术人员(开发和测试人员),横向分解到各职能部门,形成全员、全方位、全过程的项目成本管理格局,并把个人利益与成本指标密切挂钩,项目经理依据细化和分解的成本责任,与各责任人签订合同,明确成本考核指标,努力降低外延间接成本,如工期损失和质量控制成本,做到奖罚分明。
(2)成本管理由事后审计改为动态控制
在传统成本管理模式中,成本管理部门虽然在项目初期会给开发团队制订一个简单的项目预算成本目标,但是由于不能有效地根据项目实际情况对项目预算进行动态调整,从而不能使预算成本符合开发环境的变化。由于没有及时的成本信息支持,就不能及时了解项目实际成本,就难以和预算成本进行对比分析,当然也就不能对实际目成本进行有效的管控。
因此,在传统管理模式下,成本管理是在项目结束后对实际发生的成本进行审计。但既不可能改变项目盈亏的事实,又不能分析项目盈亏是成本控制不严还是由于环境变化所导致的。因此,传统模式下的成本管理并不能真正有效的控制项目成本,只是项目结束后审查项目盈亏状况而已。因此,需要改为按开发进展分解成本指标,对成本进行动态控制和管理。
(3)从质量管理上要成本效益
质量成本管理可分为四种类型,分别是质量预防成本、质量测试和鉴定成本、内部与外部质量保障成本和内部质量故障成本。一般来说,质量预防费用往往较低,虽然随着质量要求的提高逐渐会增加,但该项成本往往能发挥最大效益。而质量测试和鉴定成本一般是随着软件开发内容和范围的增加而有一定程度的增长,但这项是必要的测试成本支出。
但质量损失成本则不然,主要是因为软件开发质量较差造成大量的BUG需要修正,这类成本损失的花费往往是最大的,也是最值得我们关注的一项外延间接成本损失。因此,要想从质量管理上获得成本效益,必须做到四者交叉结合,找出一个质量损失成本最低的理想点。
(4)控制工期损失,获得最大成本效益
如何处理工期与成本的关系,核心在于寻找出两者结合的平衡点。即工期成本的管理与控制对软件开发和项目经理来说,并不是越短越好,更不能随时延期。而是需要通过对工期的合理调整来寻求非常好的工期成本点,把工期损失成本控制在最低点,工期损失成本最低点往往就是成本效益的最大产生点。
总之,一个软件开发项目的成功与否,最终是要反映到成本管理的效益上。只按功能需求和按质量完成的软件开发,如果缺乏成本效益,并不能算是成功的开发项目管理。