针对软件成本管理的现代理念,提出了一种适用于软件公司的全过程软件成本管理模式,包括经营决策阶段,需求整理分析阶段,规划阶段,开发阶段,需求变更阶段,测试阶段等,并就每个阶段的成本产生和控制做了详细的阐述,具有较强的操作性和参考性。
传统的成本管理是以企业是否节约为依据,片面地从降低成本乃至力求避免某些费用的发生入手。强调节约和节省。传统软件成本管理的目的可简单地归纳为减少支出、降低成本。这就是成本论成本的狭隘观念。在传统的计划经济下,产品实行统购统销,企业的产出等于企业的 收入。因此,降低产品成本就意味着增加企业的收益,企业必然将软件成本管理的重点放在降低产品成本上,而陷入单纯的为降低成本而管理成本的滞后状态,不能为决策提供所需要的正确信息。
随着市场经济的发展,卖方市场逐渐向买方市场转变,企业不能再将软件成本管理简单地等同于降低成本。因为,企业不仅要关注产品的生产成本,而且要关注其产品能在市场上实现的效益。在市场经济的环境下,适应瞬息万变的环境,获得经济效益取得持续性的竞争优势,始终是现代企业管理必须考虑的首要问题。企业软件成本管理工作中也应该树立成本效益观念,实现由传统的“节约、节省”观念向现代效益观念转变。特别是在我国市场经济体制逐步完善的今天,企业管理应以市场需求为导向,通过向市场提供质量尽可能高、功能尽可能完善的产品和服务,力求使企业获取尽可能多的利润。与企业管理的这一基本要求相适应,企业软件成本管理也就应与企业的整体经济效益直接联系起来,以一种新的认识观——成本效益观念看待成本及其控制问题。企业的一切软件成本管理活动应以成本效益观念作为支配思想,从“投入”与“产出”的对比分析来看待“投入”(成本)的必要性、合理性,即努力以尽可能少的成本付出,创造尽可能多的使用价值,为企业获取更多的经济效益。这里,值得注意的是:“尽可能少的成本付出”与“减少支出,降低成本”的概念是有区别的。“尽可能少的成本付出”,不就是节省或减少成本支出。它是运用成本效益观念来指导新产品的设计及老产品的改进工作。如在对市场需求进行调查分析的基础上,认识到如在产品的原有功能基础上新增某一功能,会使产品的市场占有率大幅度提升,那么,尽管为实现产品的新增功能会相应地增加一部分成本。
只要这部分成本的增加能提升企业产品在市场的竞争力,最终为企业带来更大的经济效益,这种成本增加就是符合成本效益观念的。又比如,企业推广合理化建议,虽然要增加一定的费用开支,但能使企业获取更好的收益,引进新设备要增加开支,但因此可节省设备维修费用和提升设备效率,从而提升企业的综合效益;为减少废次品数量而开发的检验费及改进产品质量等有关费用,虽然会使企业的近期成本有所增加,但企业的市场竞争能力和生产效益会因此而逐步提升;为充分论证决策备选方案的可行性及先进合理性而发生的费用开支,可保证决策的正确性,使企业获取最大的效益或避免可能发生的损失。这些支出都是不能不花的,这种成本观念就是体现了“花钱是为了省钱”的思想,即为了长期的大量的减支(相当于现时的机会收入或未来的真实收入)应该支出某些看来似乎高昂的费用,这都是成本效益观念的体现。
1、经营决策阶段的软件成本管理及其控制
经营决策阶段成本是指公司经营方向的选择,这是软件成本管理的第一个也是最为核心的环节。不过对于大多数IT软件业公司而言,这个阶段往往是最大的问题之所在,有时经常凭一个觉得是灵感的想法或者对市场初步的直观层面的调研就进行的决策。而这样的结果是往往没有摸透市场的真实情况,轻率上马项目,造成方向性错误,以至于导致企业的危机。
该阶段的成本控制,关键在于经营决策前科学而深入的市场调研及准确分析,目前很多中小型IT软件企业,其经营部的职员大多都并不是社会调查专业的,因而他们做市场调查的过程中所采用的方法不太科学,如在样本选取及抽样过程不合理,没有按照严格的社会调查方法进行调查和数据分析,甚至问卷设计都存在倾向性导致调查数据信度偏低。此外,大量的公司自我宣传的各种形式的软文和竞争对手有意的攻击性文章夹杂在其中,并不是很容易的进行分辨,更何况数据的随意性,来源的不可追溯性各种情况,所以只能作为参考。
2、需求整理及分析确认阶段的软件成本管理及其控制
需求整理指市场经营人员根据高管对于市场方向的决策,而提出的具体的产品或者项目的原始需求,需求分析是指技术员对市场部门的需求进行分析,评估其可实现性以及实现难度,大致工时等,提交相关需求分析报告,最后市场经营部门进行确认这个阶段。
该阶段的成本控制,首先需要搞清这种沟通过程中产生偏差的原因,最为主要的往往并不是技术语言和市场语言的差异,或者市场人员和技术人员之间的思维定势的差异,而在于两者缺乏确定的科学的流程和在交流之前的准备以及相关概念约定俗成的定义造成的问题,同时还由于沟通和确认环节由于其特殊性,经常难以被有效的纳入进度管理程序流程当中。而提升该阶段的成本控制效率,必须逐一针对性的解决以上问题,首先要清晰的确定并严格执行市场和技术沟通的流程,尤其是要明确每个环节的控制点,也就是双方交付给对方的关键交付物,一定要有清晰的共同确认的模板,同时每次沟通前必须对于一些概念有着清晰的界定,然后公布这些信息,并在沟通前做好充足的准备,明确每次沟通前要沟通什么,要解决哪些问题,沟通结束后要交付哪些文档让双方进行确认等,同时一定要通过线上或者线下的管理模式,讲所有沟通环节全盘把握,并纳入进度管理。项目管理培训
3、规划阶段软件成本管理及其控制
规划阶段成本是指在需求已经得到确认后,进入技术规划阶段的相关成本控制,该阶段有些软件开发公司常常出现的问题是对于规划予以过度的期望和过于沉重的内涵,在实际项目操作过程中,这个规划实际上包含着技术规划和非技术规划两个部分,因为对这两个部分的混淆,导致一些技术层面和市场层面的东西不必要的纠缠在一起,并且直接导致项目进度的拖欠,而且会导致由于非技术规划的不清晰,直接影响技术规划层面的实施。
该阶段的成本控制,必须清晰的区分非技术规划和技术规划,尤其在公司内部技术部门和市场经营部门之间的职责,需要设立一个在提出需求到技术规划之间过渡的位置,即对于需求具体细节的整理,要对于交付物有着清晰的确定,尤其是在不同时期交付不同的关键文档,如除了上面说的那六个文档外,技术部项目组长在需求分析的时候,还应该明确提交功能模块分析,开发代价,功能流程图,功能关联性图,可维护性及可拓展性分析等六个文档,此外在项目开发规划阶段,还要对于控制点的一些要素进行详细的规划用来提交给市场部门,如详细页面元素,页面元素价值度分析,表现形式,页面结构,页面效果等。
4、开发阶段的软件成本管理及其控制
开发阶段的成本指需求确定并且规划清晰后的具体开发过程的软件成本管理问题,该阶段相对其他阶段来说比较清晰,但这里笔者认为需要关注的是,如何使得人力资源得到最大程度的利用,它是指公司第一线技术人员的能力最大程度发挥的状态,包含几个层次,(1)全部时间利用,(2)最大效率利用,(3)最大潜力激励利用,这三步需要逐步递进实现。这个需要一种完善的内部管理制度,以及公平公正的价值认定模式和绩效制度,从而一方面促进员工本身的发展,一方面增加对人才的吸引力。 该阶段的成本控制,可以引入最大可控制成本的概念,这里是指人力资源最大程度发挥后所能控制的成本,是公司在一定投入前提下,最大的可能的减少因管理导致人力发挥不足够而造成的成本,该成本为人力资源的极致成本,无法再进一步降低,此成本状态下的仍然出现效益不佳情况,则可说明在经营定位和经营方向上的问题,而非内部问题。促使人力资源得到最大利用度和发挥度,在此基础上的成本,为最大可控制成本,以上可以通过内部的管理系统来很好的实现。
5、需求变更软件成本管理及其控制
需求变更成本指在开发过程中,由于市场部门的需求改变导致的成本增加而实施的控制,对于项目开发的过程中,需求的频繁变更就成本控制而言是致命的,很多项目由于需求的变更而导致破产。
该阶段的成本控制,最关键的是要对于需求变更过程进行严格的管理,要从需求变更的开始,对于整个变更的每个具体的步骤进行跟踪,并且严格核算每次变更所需要的工作时,从而做好评估。同时,务必要明晰需求变更的必要性和风险性,以及所带来的实际成本的增加,所以需求要尽量经过详细的论证。
6、测试软件成本管理及其控制
测试成本指项目开发完成阶段,在交付验收前进行的测试过程中导致的成本及其控制,测试阶段对于一个项目的最终交付具有重大的意义,往往在测试阶段要才是使得项目真正完善的阶段,很多细节的修补都在测试阶段完成,正是测试使得一个项目成为一个可以交付,可以应用,可以产生效益的产品。但对于一些中小型软件开发公司而言,往往缺乏真正建制齐全的测试部门和专业测试人员,经常是技术人员进行兼任,这种方式相当普遍。但同时也导致了一些问题,主要是对于测试缺乏经验积累管理,或者说是错误管理,经常上次测试完出现的问题,过段时间又会出现,或者是开发下个项目的过程中又再次出现,增加不必要的成本。项目经理人联盟文章
该阶段的成本控制,笔者认为最关键的是对测试进行错误管理模式,采取“有错必改,凡错必究,错不再犯,预错于先”的管理办法,尽量在项目开发之前,就能整理出之前开发中出现过的所有问题,并用列表的方式进行技术会议,让所有开发人员进行错误共享,尽量把测试中可能出现的问题消灭再开发阶段,另外需要把测试过程化、即时化,每周甚至每天都要求每个开发人员在交付自己的子模块的之前就暗中预先准备的测试手册进行测试,通过后再提交,同时定时抽查某些核心功能模块,进行某个点的测试,这样全过程的控制,会最大程度的减少测试成本,同时要加快反应速度,一发现开发中,或者测试过程中的相关问题,必须跟进彻底解决,并纳入绩效考核中,杜绝再犯。