最近几年随着创业风气的发起,已经涌起创业项目外包公司的兴起,将软件项目中的全部或部分工作发包给提供外包服务的企业完成的软件需求活动,已经不仅仅局限为了降低成本,更多的是为了解决自己雇佣技术人员或者无法管理技术人员的难题。
大体上,我将软件外包的形式分成三种。第一种形式是外资企业在华等低成本国家成立新的研发中心。研发中心虽然名誉上是总部的分枝机构,但所从事的研发工作通常不会是高精尖的内容。很显然,由于所设置的分支机构在公司制度和企业文化上完全采用总部的,因而这种外包形式在软件的质量控制上能与总公司的完全匹配。可以想象,这种外包形式的成本相当的高昂。
第二种软件外包形式是人员外包。即外包公司出人参与到合同公司(即雇用外包公司的公司)的项目中,除了外包人员的薪资由外包公司承担外,外包人员在软件项目的参与形式与合同公司的正式员工没有任何的区别。从合同公司的角度来看,这种形式的质量控制与前面提到的第一种形式没有差别,能与总公司的质量控制水准保持一致。合同公司采用这种外包形式的好处是,一旦公司要裁员的话,可以选择与外包公司终止合同,不需额外地支付裁员费用。从外包公司的角度来看,这种形式的好处是对于人员的管理相对简单,但显式利润比后面的第三种形式却要低。
第三种软件外包形式是项目外包。即合同公司将某个软件项目完全交由外包公司去开发,这种外包形式在质量控制上是最容易出现问题的。在这种外包形式中,合同公司所支付的费用并不象形式二那样,以人为单位进行计算,而是逐个按项目所需的开发时间加以计酬。因此,这种方式所面临的第一个问题,是如何合理地估算项目开发时间。出于利益的考虑,外包公司会倾向于将工作量估高,而合同公司则设法压缩。
这种形式由于项目的质量控制完全由外包公司承担,在合同公司不大力从技术和管理上进行约束的话,很难获得高质量的软件产品,在运作的过程中也相对容易出现扯皮现象,从而影响开发效率。从外包公司的角度来看,这种形式的显式利润更高,但由于对项目管理需要付出不小的成本,我怀疑这种形式的最终利润还不如第二种外包形式。
基于软件的特殊性,我想一个企业不会将一个软件项目分开分别发包给几个软件公司各自来开发的,如果直接从发包的企业外包软件的话,应当可以总包的。从大量的报道来看,我们国家的软件公司基本是从其他软件企业分包而来的业务,这也就使国人产生了软件外包就是从软件企业分包业务的错觉。
做软件分包,为国外大型软件企业提供软件外包服务,就像民工为包工头做工一样,只是在做软件外包最底层部分的编码工作。如果一直做软件外包中的分包,对产品不能拥有任何知识产权,也始终没有任何技术竞争力。从软件外包的内容看,凡是被分包出去的,都是软件系统非核心的内容。核心内容和技术都被总包的大型软件开发商牢牢控制着。