外包是发包方和接包方互相信任、高度协作的共同行为。为了顺利实施外包,对于发包方,要求企业具有一定的技术水平、项目管理水平、人力资源和沟通控制能力。对于接包方,要求企业具有一定的成本、质量控制能力,具有国际市场开拓能力(包括业务能力、交流能力、接包渠道和商业信誉等)。为了是外包服务形成产业化,还要求形成良好的政策环境和市场环境等。
下面以软件项目外包为例,从发包方和接包方的角度,讨论实施外包的关键因素。
1、项目需求
项目需求是项目规划和正确实施的根本,在外包项目实施过程中,如果客户经常改变需求或提出新需求,常常使项目延期或超出预算,对于合作双方都会受到商誉和经济上的损失。
通常发包方根据外包的项目特点,进行项目外包分析,提出项目需求报告。接包方在实施项目之前应该深入了解和挖掘客户需求,对某些不明确的需求与发包方讨论,对于项目实施过程中的需求变更,规定处理办法,并达成一致,形成项目的最终需求。
在需求分析阶段,接包方首先对发包方的需求认真分析,然后通过业务建模、会谈、问卷、需求会议等方式收集客户完整需求,形成文档,然后经过客户讨论、客户审查、文档修订等多次反复的过程。
2、项目计划
在项目实施之前,通常发包方提出项目实施计划的草稿。项目计划的内容应该完整、可行,对于项目流程、工作量、资源配置和项目里程碑等需要双方接受达成一致。
接包方要及时全面分析计划的内容,要详细地跟本企业的计划进行比对和审核,从而了解外包商对整个项目的流程、内容、估计的工作量和资源的安排是否与项目本身的要求吻合。明显的差异都需要及时澄清并建立共识。
发包方根据接包方对项目计划草稿的建议认真分析和深入讨论,进行必要的修改和补充,形成双方都接受的最终项目实施计划。
3、质量控制
软件外包的质量指软件产品满足用户需求的程度,包括功能需求、性能需求、稳定性、安全性和技术先进性需求、支持和服务需求等。达到客户的质量要求是外包业务的基本要求。
以软件开发项目为例,接包方质量控制的常用方法如下:
-
通过多次反复、多方参与的评审控制需求和设计的质量。
-
在编码之前,制定代码规范,并强制执行,以便保证代码的规范性。
-
通过严格的、完整的测试流程保证编码质量。
-
需求分析、方案、系统设计、测试计划、实施计划等必须进行内部评审,通过内部评审后指定双方人员共同审查。
-
必须制定全面的测试计划和质量保证实施过程并通过审查。
-
系统交付使用前,要经历单元测试、集成测试、系统测试和用户测试、验收测试等质量检验过程。
-
制定实施和维护计划以及实施和维护操作规程,记录操作过程,及时请发包方确认。
4、进度控制
进度影响双方的成本,可能影响发包方的业务,进度还可能影响产品质量。
接包方应该按照项目计划的进度实施项目,及时定期汇报实际实施的进度。对项目实施过程中影响进度的因素综合分析,及时与发包方交流,提出解决办法。发包方要对接包方的进度进行监控。
软件外包项目实施进度控制的常用方法如下:
-
通过科学估算,考虑资源配置情况,共同制定合理的双方认可的进度计划。
-
细分任务,制定更加精细的里程碑,并按里程碑进行验收和考核。
-
建立常规的进度报告制度,以便及时掌握项目进度。
-
采用严格的流程来控制需求变更。
-
进度计划中,将一些比较大的工作拆细,以便设立更多的里程碑。
5、风险控制
风险管理(Risk Management)是指经济单位对可能遇到的风险进行预测、识别、评估、分析并在此基础上有效地处置风险,以最低成本实现最大安全保障的科学管理方法。
发包方要根据外包项目的特点和要求,制定切实可行的计划,选择合适的接包方,并且密切监控项目的实施过程。
接包方一定要对整个项目足够了解,其中包括项目需求、工作范围、实现方法和预期经济利益的来源。对于已经完成的部分,要有一套合理的评估方法。
发包方可以通过下列方式来控制风险:
-
通过考察企业实力、资格认证和服务经验严格选择接包方。
-
通过严密的法律条款、严格的合同审核来保障知识产权和商业机密。
-
通过严格的过程的过程控制来控制外包业务的质量和进度。
-
接包方可以通过下列方式来控制风险:
-
进行严格的需求管理和控制,充分挖掘客户需求。
-
严格规范合同起草、谈判、审查和签署,在合同条文中明确规定外包服务过程的责、权、利、知识产权和商业机密保护。
-
执行规范的项目管理和控制,严格控制质量和进度。
-
通过有效的人力资源管理来稳定队伍、建立后备队伍和提升团队的技术能力和综合素质。
-
建立和保持畅通的沟通渠道。
6、交流与沟通
实施外包项目是发包方和接包方互相配合、共同合作的过程。要保障外包业务的顺利进行,必须建立有效的沟通渠道。
建立有效的沟通渠道包括以下内容:
-
确定可以采用哪些交流工具,以及什么情况下应该采用什么沟通工具(现场交流、电话交流、传真、电子邮件、在线交谈等)。
-
确定交流的时机和频率,包括接包方提交进度报告和双方召开项目实施交流会。
-
确定交流的格式(例如,规定周报的格式)。
-
确定交流的形式(现场交流、电话会议,双方项目联系人)。
[以上转载] http://developer.51cto.com/art/201104/253917.htm
-----------------------------------------------------------------------------------
结合本外部项目特点,提取各个事项应对方式,主要导图如下:
说明:本图中的重点判断是结合本项目而来,比如本项目中需求不明晰,需要对需求管理部分加强。对对方公司相对比较了解,所以风险部分比中减少,而进度和质量控制比中增加。沟通方面也是非常重要,所以在项目开始前,一定要确认好沟通方式和时间。
××外包项目
需求管理(★★★★★)
接包方一起见客户
共同制定项目需求文档
共同探讨项目需求变更,并提前做好应对措施
项目计划(★★★☆☆)
做好项目计划
项目计划要分出项目轻重缓急,优先难度高部分
项目计划中需要包括质量控制计划、发布计划
质量控制(★★★★☆)
设计上充分考虑变更和扩展性
要有代码规范,定期做代码检查
每一个模块开发前都要有相应设计文档(必须)
记录重要模块流程、网络结构等
交付前必须提前做好测试工作,特别功能测试、性能测试
进度控制(★★★★★)
制定关键点里程碑
按里程碑进行验收考核
对需要变更及时加入进度控制中
关键里程碑发布进度报告和可演示的程序包
风险控制(★★★☆☆)
接包方人员变更风险
接包方技术风险
接包方需求把握风险
交流与沟通(★★★★☆)
建立统一的代码管理体系
建立周期性会议,如里程碑有发布会,月会等
每周汇报进展情况,可通过Email形式
建立QQ群随时沟通,可每日大家汇报完成情况和遇到问题
定期给用户发布进展情况,或通过适当方式,将进行结果展示
收尾工作(★★★☆☆)
出具相应文档,如部署说明书、使用说明书
制定数据备份方案
准备验收材料