外包是企业利用外部专业资源为已服务,从而达到降低成本、提高效率,充分发挥自身核心竞争力,乃至增强自身应变能力的一种管理模式,同时也是现代社会非常重要的一种商业模式。但外包也有一定风险:外包质量不易保证,外包管理需花费更多资源,企业信息泄露,系统灵活性降低等。由于外包商本能地趋向于控制成本以提高自身的利润,所以需要委托方和承包方对外包管理规范达成共识,才可能有效地管理整个外包过程,使得双方共同获益,在这种情况下才有可能使得收益最大化。
    在立项阶段,产品负责人应当进行"Make or Buy决策”,确定待开发产品的哪些部分应当“采购”、“外包开发”或者“自主研发”。非核心业务尽量外包,核心业务自己做,因为核心业务决定产品质量,并且具有一定保密性,外包风险较大。
    选择外包商时,并不能单以服务价格来做最终决定,企业应根据自身对软件质量的要求来决定服务的代价。对外包商应从其技术能力、领域知识深度、企业文化、以前是否开发过相类似系统、开发平台和环境等方面评估,评估时还必须提供对外包中所可能产生风险的警觉,以及有效管理风险的办法。
    外包分两种:部分外包和整体外包。前者管理方法和企业内部软件开发管理方法差不多,风险也比较小;后者企业需要了解自身是否可以提供优质的规格说明,是否能够提供外包商所需的质量标准和测试数据,外包商是否有类似企业本身的开发平台和环境,以及外包商的技术资源水平是否与企业内部开发时所需的技术指数相符等,风险比较大。确定适合自己企业的外包业务模式,是避免风险,实施项目外包的先决条件。
    选择外包时,企业要充分了解自己的项目,其中包括项目需求、实现方法和预期经济利益来源。
    选择外包商时,采用分而治之的办法,把一个大的外包项目分给若干厂商,而不是一个厂商来完成。这样每个厂商就可以发挥自己的特长,承接适合自己的外包项目,减少风险。同时,多个厂商分而治之的方法也可以造成各个厂商之间相互制衡,避免外包项目拖延。
    签订外包合同时,企业应该提供完整的软件系统规格说明,建立好质量指标和测试流程,争取建立良好的合作模式,能否建立这种合作模式往往决定外包的成败。在合同签订和项目启动前,双方应就项目的工作范围达到明确的一致意见,否则项目实施时会有很多不清楚的地方,验收时将会出现由于项目范围理解不一致而带来的很多麻烦。合同签订时外包中各个里程碑的确认评审时间应该有一定的柔性,否则经过几个延期的确认评审,项目实际进度已经和原来合同规定的要求大相径庭。
    项目外包期间,应该建立风险管理机制,包括制定风险管理计划,识别可能发现的风险,分析风险产生的原因并制定相应的应对措施,制定完善的风险监督和控制机制,从而降低风险的副作用,化风险为机会,争取收益最大化。
    项目外包期间,还应该建立合同管理小组。供应商的合同和服务经理,以及本企业的合同经理都应该参与其中,形成一个拱形的控制团队。该部门具有一定独立性,监督项目是否按照合同要求实施,提出项目实施中的缺陷和改正方案。该小组可以作为企业和外包商的沟通桥梁,消除理解的不一致性。