基于软件研发项目层面的作业成本分析体系的构建
2015-10-11马丽萍
钟 瑾,马丽萍
(中国海洋大学 管理学院,山东 青岛 266100)
基于软件研发项目层面的作业成本分析体系的构建
钟 瑾,马丽萍
(中国海洋大学 管理学院,山东 青岛 266100)
本文分析了作业成本法难以在软开发行业实施推广的关键因素,提出了实现软件开发的财务管理与项目管理相结合的思路构想,把作业成本法引入软件开发项目的全生命周期管理中,建立起基于项目层面的作业成本分析体系。
软件;项目管理;作业成本法;工作分解结构;里程碑
0 前言
软件研发行业与制造业等行业不同,具有专业化、系统复杂性程度较高的特征。在软件开发过程中,人是软件产品质量与产品成本的决定性因素,而以人力资源为主的相关资源的投入并不是在开发过程中一次性或连续均匀的投入,不同层次的人力资源在研发过程中的每一个阶段的投入量水平都有着差异,而且为满足开发过程中的各种需求,人力资源成本也在不断整合配置并充分发挥其个体优势。这一过程所产出的软件作为纯知识产品,其开发进度和质量很难估计和度量,成本投入与生产效率也难以预测。这导致软件项目开发具有较大风险和不确定性。成本管理与控制贯穿软件研发过程的始终,是软件项目能否顺利实施的关键,对于该行业至关重要。目前软件研发行业成本管理往往具有滞后性,还没有完全做到动态监控和实时控制,因而这一过程中的预算松弛、预算失控等成本控制问题较为突出。
1 作业成本法在软件研发行业的应用空缺与必要性
作为现代企业成本管理控制的核心方法之一的作业成本法。自20世纪80年代后期由卡普兰和库珀推广到全世界之后,在学术研究领域一直都受到人们的关注。作业成本法最显著的特点是它把管理控制深入到了组织运营的最基础的 “细胞”层面——作业层面,不仅关注影响成本产生的决定性因素,更关注引导这些动因产生的机理,即作业的划分与作业动因的选择。其目的就是识别增值与非增值作业,并消除非增值作业,实现成本的最小化。这也是它区别于其他管理工具的最大优势。
在现实工作环境中,作业成本法被广泛应用食品生产、加工制造、服务行业。在加强成本的前馈控制和实时控制、细化预算分析体系等方面都取得了显著成效(以青岛啤酒为代表)。然而其他行业,特别是以软件研发为代表的高科技行业中却几乎没有应用。虽然在学术研究方面,有的学者论证了它在软件开发实际应用领域中的必要性并提出了合理构想。但也只是在研发团队基础上进行的表层作业分析,没有深入到每一个软件项目层面,作业成本法没有发挥其真正的作用,缺乏实用性。
2 实现软件开发的财务管理与项目管理相结合的思路构想
作业成本法要求财务人员对生产过程中的每一个环节都有深入了解和分析。然而由于专业能力水平限制,复杂的研发设计流程对于财务人员来说无异黑箱一样。黑箱的输入端,是内化在技术人员头脑之中的知识技能等无形资源以及辅助性的实物资源。黑箱的输出端,却仅仅是一个产品——软件系统。加之与大规模生产流水线完全不同,每一个软件系统的生产流程,即研发计划,是依据特殊顾客需求和自身研发实力而制定的,都是有差异的。在这种情况下,财务人员游离于组织核心活动之外,财务活动无法渗透到软件生产过程中。然而,对于软件研发流程最为了解的莫过于每一个研发项目的项目经理,研发团队中的项目经理由参与研发的高级技术人员担任。除了控制开发成本,项目经理更加关注软件的质量与开发进度,适度的预算超支往往得到项目经理的默认。
从上面的分析可以看出,软件项目管理与财务管理的脱节是作业成本法难以在软件研发行业推进的主要原因。只有解决以上问题,才能把作业成本法引入软件项目的全生命周期管理中,建立起基于软件项目层面的作业成本分析体系。因此,如何把作业成本法的管理思想真正融入软件项目的全生命周期管理过程中,正是本文的关键所在。
如上所述,鉴于软件开发行业生产过程的特殊性、复杂性,本文拟把项目管理中的项目识别方法工作分解结构(WBS)应用到作业成本法中的流程与作业的识别中,同时借助于软件项目开发进程中的里程碑(Mile Stone)概念,把该软件系统总成本划分为各个成本中心,即后文“项目子产品”,进行成本分配。
美国能源部的文件这样定义WBS:“WBS是一种数字化和图形化的表达方式,它通过链接所有项目工作单元和终端产品实现项目的完整定义。”WBS由项目经理建立,其目的是要把产品或可交付成果分解成一个个独立单元,并理清它们与终端产品间的关系(Budd C.I.,2008)。 从中可以看出,WBS 的主要作用就是分配管理职责与技术职责。不同的软件系统所采用的软件开发模型是不同的,这使软件开发的作业流程呈现多样化,导致作业识别的多样化。但是WBS涵盖了构成整个流程的全部关键项目要素,由WBS提供的独立的单元节点完全符合作业成本法中对作业的界定。用WBS可以解决财务人员对于软件研发这一专业流程的作业划分的难题。里程碑(Mile Stone)用于项目进度管理和跟踪,以方便监控项目进展和健康状态。在达到里程碑的时候,项目经理一般需要检查项目状态,并出详细的项目状态报告,该报告记录了终端产品的阶段性成果。软件项目管理中的里程碑只是出现在开发过程中的文档记录。笔者把这一概念拓展到了软件研发项目的整个生命周期中,即从项目的接洽-需求分析-项目的研发-项目的后续维护,以反映软件系统在整个研发过程中的全部成本耗费,并按照研发过程的时序先后划分成本中心并进行成本归集,反映出单一终端产品在其特定生产流程的不同阶段中的资源投入情况,便于对软件系统进行成本形态分析,也为后续进行实时成本监控奠定了基础。
此外,为了改进生产流行、提高自身的研发能力并实现软件项目管理与国际接轨,多数软件开发企业都通过了CMMI等级认证。CMMI强调过程的文档记录,对每一过程进行了详细的说明和阐释。作业成本法实施过程中的资料收集和基于流程管理的作业动因分析等环节都可以从CMMI的文档记录中获取所需的数据。
3 实际应用分析
本文通过案例研究具体展现基于软件项目层面的作业成本分析体系建立的全过程。案例企业为一家中型软件研发公司,规模约400人,技术开发人员占总员工的85%,在软件研发行业具有一定代表性。笔者通过采用访谈方法,通过与该公司的研发与营销总监、财务总监、主管会计和2位项目经理进行交流沟通,同时对该公司的一个中型软件项目的研发团队的工作流程进行为期两周的实地调查以全面掌握该公司的运营情况,并收集相关技术、财务数据。
3.1 流程分析
通过实地调查访谈,笔者了解到该公司在软件开发过程中主要使用瀑布模型与螺旋模型。瀑布模型,是最传统的模型。开发过程中的各个阶段不连续、不交叉,是相互独立的直线流程。上一环节的开发结果或开发产品为下一环节的起始点,是下一环节的基础材料。在实际使用中都不是严格意义上的瀑布模型,各阶段存在重叠,而且每个阶段也非纯直线串行,存在着并行。螺旋模型(迭代式)中,整个开发工作被组织为一系列小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。虽然每个项目应用开发模型不同,但是软件开发的流程是稳定的,且以线性、重叠式或迭代式呈现在模型中。通过该公司实际软件开发流程所包含的各个作业进行梳理,整个流程被分成5各阶段:启动与需求(业务洽谈、招投标、入场调研、需求分析作业);设计(概要设计、详细设计);编码测试(编码、集成、单元与组装测试、系统测试作业);安装(试运行、正式上线);支持(维护、升级)。
3.2 资源的归集
资源是在作业执行过程中发生的代价,其涵盖了企业所有价值载体。如果说企业是始于外部供应、终于客户销售的资源不断投入和成果不断产出的循环往复的运作系统,那么资源就是支持作业执行的必须的经济要素。
软件开发项目资源主要由以下4部分构成:①软件开发资源耗用:最主要的是项目组开发人员的人工成本;②硬件资源耗用:主要包括实施软件项目所需要的所有硬件设备、系统软件、数据资源的购置、运输、仓储等费用,还包含软件开发整个阶段中使用相关的设备(电脑等)、房屋的折旧、水电费用等耗用的办公资源开支。③差旅及培训费用:包括软件开发人员和用户的培训费用。④项目管理费用:用于项目组织、管理和控制的费用支出。
3.3 依据WBS界定项目作业
WBS把整个项目被层层分解,最底层的项目的末端点已被细化为最简单的模块,例如:设计—概要设计—模块A与模块B。底层每一个项目最末端点都有着清晰的任务完成责任人。软件开发的流程由项目经理、技术主管、企业管理人员、前期销售人员等多方面力量的共同参与。
3.4 资源分配与作业成本的归集
图1 项目的作业动因、作业中心与成本中心
每一个软件开发项目执行的终端产品都是一个根据客户需求而开发出的软件系统,相关财务信息都是以整个项目为单位进行归集列示的。为了体现项目质量、工期、价格、管理水平、人力资源成本的影响,同时监控整个项目流程关键部分的执行情况与相关成本耗费,笔者把项目研发与项目管理的各个阶段所形成的各个项目里程碑(关键功能模块的实现)与管理性的书面文档,定义为该项目生产的子产品,每一个项目一般会有5种重要的子产品:①需求分析报告;②软件设计计划规格说明书;③模块功能的实现;④管理与进展报告;⑤服务与维护报告。
在进行成本分摊时,没有直接归入最终的软件系统,而是借鉴典型瀑布模型的思路,即每一开发环节相互独立进行,每一环节都相应产生本环节的成果,即项目子产品,并形成记录在案的文档。目的是为了体现项目中的关键环节如需求分析、质量管理及具体功能模块的详细成本信息,利于项目在各个阶段实现相关成本的重点控制分析。
在实际开发过程中,每一环节的作业虽然有先后顺序,但并非按照瀑布模型呈现严格的串行,而是在同一时点重叠并行(如在编写代码的同时已经在进行测试阶段的规划设计);有的作业环节如质量管理是由项目经理全程跟进的。对这5个项目子产品的成本发生情况在整个项目周期中进行实时追踪记录。可以反映出项目的真实进度情况,及现阶段成本耗费的重点环节,为管理和监督提供实时信息,以实现资源在各个时点的优化配置。
3.5 成本分摊
表1为包含5个项目子产品的终端产品的成本分摊结果。由WBS划分的项目作业、以此整合的作业中心与项目里程碑所拆分的项目子产品在研发流程上具有时间上的同步关系,所以启动中心、执行中心、质量监控中心和维护中心内的作业都可以作为各个项目子产品的专属作业直接归集。只有支持中心各个作业成本需要按各个项目子产品生产耗时与整体项目周期的耗时比进行分配。
4 结束语
基于软件开发项目层面建立起的作业成本分析体系,使财务追踪和成本控制活动真正融入到了整个项目开发生命周期的日常管理活动中,也为全面预算管理体系的建立提供了条件。
表1 项目终端产品的实际成本构成
[1][美]Budd C I, Budd C S.挣值项目管理实践指南[M].广联达软件股份有限公司,译.北京:电子工业出版社,2008.
[2][美]维索茨基,贝克,克兰,等.有效的项目管理[M].李盛萍,译.北京:电子工业出版社,2002.
[3]郝波.作业成本法与软件开发项目造价管理[J].科学学与科学技术管理,2006,27(7):165-166.
[4]曹阳.作业成本管理在软件服务业的应用[D].天津:天津大学,2010.
[5]宁亚平.作业成本法适用条件调查研究[J].财政研究,2012(3):79-80.
10.3969/j.issn.1673-0194.2015.15.004
F275.3
A
1673-0194(2015)15-0012-04
2015-06-08