background image

                                                                                            

项目外包软件项目管理之我见

 项目外包有很多优点,但最主要的一点也许并不是为了降低开发成本,而是为了解决企
业内部人力资源的限制,使得企业不用招聘新员工就可以上马大型项目。本文作者在项目管
理方面有十多年的实践经验,他将为我们举例说明曾经面临的困境,接着条分缕析找到原
因并指出解决方法。 
 一次失败的经历 

 在亚洲四小龙经济全盛时期,笔者在某公司亚太区总部负责该区的软件开发。为了应付业
务迅速增长所带来的需求,公司在各地都需要进行一些大型项目,包括主机的转换与安装、
应用系统开发等项目。总公司要求我们把部分开发工作外包,这样一来可以降低开发成本,
同时也为了能在这一段时间内保证有足够人力来完成项目。最后,我们决定利用公司本身的
资源在区内各计算机中心内进行软件核心功能模块的开发,周边功能模块则实行外包。 

 我们选择了菲律宾和泰国这两地的软件企业来协助开发部分应用软件,因为这两个地区
有大批新兴的软件企业,所需的开发费用只是项目基线的四分之一而已。首先,我们对两地
一些有规模的软件企业进行严格审核,包括对这些企业的技术人员数量、技术水平、财务状
况、可靠性等各方面进行深入的评估,然后在每地选择一家从事外包。我们制定了有关程序
的规格说明,然后把这些说明交给对方进行编程和模块测试。 

 当接到第一批交回的程序时,我们从测试报告中已经发现结果跟我们的期待有很多不同
之处。我们在进行测试过程中发现有些程序不能跟核心模块连接,更有些程序不能在主机上
运行。我们除了对交回程序的质量感觉失望之外,更知道这会全面影响整个项目的进度。 

 建立良好合作模式 

 外包开发的软件不能达到企业的质量要求,我们往往会在第一时间把罪过推给外包商。但
实际经验告诉我们,很多失败的原因是企业本身没有提供一套完整的软件系统规格说明、没
有跟进开发的进度、没有定期与外包商沟通与协调、没有在开始时建立好质量指标和测试流
程或者没有做出适当的技术和开发环境的评估。但最重要的一点,是没有在决定软件外包时
处理好双方合作模式与关系的建立 
 千万不要认为软件外包可以减少企业的管理时间。相反,外包项目有时需要双倍的管理时
间。在我们决定外包软件开发的时候,我们首要决定是整个应用系统的开发由外包商承包,
还是只有部分应用模块的程序交由外包商编写。前者需要管理整个外包项目的生命周期,跟
企业内部软件开发的管理没有差异,只是开发的地点、环境和资源比较陌生而已;后者则需
要了解企业本身是否能提供优质的规格说明、是否能够提供外包商所需的质量标准和测试数
据、外包商是否有类似企业本身的开发平台和环境,以及外包商的技术资源水平是否与企业
内部开发时所需的技术指数相符。明确自身所需和服务要求,是决定外包项目的先决条件。 

 选择适合的外包商,并不能单以服务价格来做最终决定。优质的服务需要付出较高的代价。
企业应根据自身对软件质量的要求来决定服务的代价。按照国际企业的衡量指标,外包投入
比本身开发的净投资(以各技术员工的基本薪资为标准,并不包括企业对员工所提供的福
利、假期和奖励计划等开支)多付 15%~20%。也就是说,如果企业本身开发需要 30 万元的
话,那么合理的外包服务价格大概是 34 万元到 36 万元。 

 既然外包不能立竿见影地带来经济利益,为什么还要外包呢?最主要的原因是企业在项
目完成后不需要继续照顾这批开发人员,不需要为这些开发人员提供福利条件。外包费用是
一次性的营运开支,不像雇员薪资这样成为企业的长期营运成本。假如企业有些一次性的大
型项目需要马上启动,但缺乏足够的资源,或者企业本身没有相应的技术人员来执行的时
候,外包不失为一个可行的解决办法。 

 如何进行外包项目的管理 

 一些项目经理往往认为外包开发项目与企业内部开发项目的管理没有多大分别,唯一不
同是外包项目需要更多时间去沟通、协调、跟进和监控。总体来说,这种想法是对的,但事实
上外包项目的管理比企业内部开发项目的管理更复杂,担负更大的风险,需要更紧密的进
度和质量监控。(相关文章:如何控制信息技术外包的风险?)