大体上,我将软件外包的形式分成三种。第一种形式是外资企业在华等低成本国家成立新的研发中心。研发中心虽然名誉上是总部的分枝机构,但所从事的研发工作通常不会是高精尖的内容。很显然,由于所设置的分支机构在公司制度和企业文化上完全采用总部的,因而这种外包形式在软件的质量控制上能与总公司的完全匹配。可以想象,这种外包形式的成本相当的高昂。

第二种软件外包形式是人员外包。即外包公司出人参与到合同公司(即雇用外包公司的公司)的项目中,除了外包人员的薪资由外包公司承担外,外包人员在软件项目的参与形式与合同公司的正式员工没有任何的区别。从合同公司的角度来看,这种形式的质量控制与前面提到的第一种形式没有差别,能与总公司的质量控制水准保持一致。合同公司采用这种外包形式的好处是,一旦公司要裁员的话,可以选择与外包公司终止合同,不需额外地支付裁员费用。从外包公司的角度来看,这种形式的好处是对于人员的管理相对简单,但显式利润比后面的第三种形式却要低。

第三种软件外包形式是项目外包。即合同公司将某个软件项目完全交由外包公司去开发,这种外包形式在质量控制上是最容易出现问题的。在这种外包形式中,合同公司所支付的费用并不象形式二那样,以人为单位进行计算,而是逐个按项目所需的开发时间加以计酬。因此,这种方式所面临的第一个问题,是如何合理地估算项目开发时间。出于利益的考虑,外包公司会倾向于将工作量估高,而合同公司则设法压缩。这种形式由于项目的质量控制完全由外包公司承担,在合同公司不大力从技术和管理上进行约束的话,很难获得高质量的软件产品,在运作的过程中也相对容易出现扯皮现象,从而影响开发效率。从外包公司的角度来看,这种形式的显式利润更高,但由于对项目管理需要付出不小的成本,我怀疑这种形式的最终利润还不如第二种外包形式。

应当说,我在Motorola工作期间经历了这三种外包形式。也见证了在某大型项目上的十多个外包项目(第三种形式)最后全部以失败告终,且承包商是通过CMM5的印度知名企业。与之形成鲜明对比的是,第二种外包形式在Motorola却运作得非常成功。
软件外包的形式与质量控制_软件外包