【IT168 技术文章】
一、 基本概念和背景
项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ]。
对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft 公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。
二、 软件项目外包采购管理的意义
许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。
以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的 Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。
就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%。预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。
三、软件外包采购管理存在的问题
虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。
软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。
这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。
软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。
四、 目前软件外包采购管理情况
美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。
五、 基于“双赢”策略的软件外包采购思想
本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW-CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。
“双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。
传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。
六、 软件项目外包采购管理过程
为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。
对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。
软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。
在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称 “用户需求”。对于业主来说,系统总体分配给软件的系统需求通称 “分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5。
然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。
分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。
业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。
分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。
分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。
由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以发布的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。
当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。
软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。
最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。
七、 结束语:
作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。