外包商管理 <?xml:namespace prefix = o />

用一个咨询案例对比 CMMI 《供应合同管理》的要求

 

 

最近一个组织邀请我提供有关外包商管理的简单咨询。我们对于外包商管理,总有一个心结。大部分的 CMMI 评估,都豁免了《供应合同管理》这个过程域。这是非常可惜的,因为一方面如果我们其他的项目管理领域做的踏实的话,这个领域其实不难,因为项目管理与外包管理其实分别不大。二来因为这也是一个高效管理理念的应用,如果实施起来,也会对了解高效过程管理的精神方面有很大的磨炼与帮助。外包商管理与项目管理的理念与方法都是非常一致的,只是外包商管理在管理者与管理对象之间的关系上没有项目管理那么直接与密彻而已。

 

组织对于外包商的要求,主要就是希望能够按时接收到满足要求的产品或服务。因为我们不能直接控制外包商的行为,我们觉得没有把握保证外包商的交付日期与产品质量。

 

外包商的选择

 

组织对于外包商的选择已经有一套方法。因为与外包商过去的互动,对于外包商的能力,也有一定的了解,并且建立了一定程度的业务关系。这个是重要的,否则就需要留意如何明确外包地目标与制定选择外包商的准则,选择一个或是多个能够满足目标的外包商。

 

我只希望多说一句:选择外包商最好的依据,就是外包商以往的表现。所以访谈他的客户,检查他们的纪录,是非常重要的。

 

适合使用外包商的情况

 

其实在国外有很多外包活动。有一些理论认为外包商是一个控制成本的有效方法。其实外包不能滥用,它的管理需要一定的能力,否则造成破坏的风险很大。基本上,外包有以下的使用:

 

<!--[if !supportLists]--> ·         <!--[endif]--> 外包到低成本的地点,降低成本。

 

最明显的案例,就是美国的软件项目,把部分任务外包到印度去。印度的员工薪酬远远比美国的低,而且技术水平与管理文化差不多。这样的外包,可以节省很多的成本。前提就是外包商具备一定的能力水平,能够满足质量要求。

 

这个很重要,如果中国需要发展外包业务,就需要能让客户相信自己的质量是能够满足客户的需要。这就需要了解客户的管理理念,知道他们需要什么,尤其是过程效能的证据。当前我们的外包竞争力不如印度,原因就是客户对我们的思路、关注重点、语言等等还不习惯,客户还不能对我们的管理能力建立信心,而不是技术水平不够。这点我们需要留意。

 

这是一种合理有利的外包商使用。

 

<!--[if !supportLists]--> ·         <!--[endif]--> 利用外包获取特殊技术。

 

比如我们的大飞机,开始的时候,只能利用外包商获取发动机的技术。如果我们不具备所需的技术,这是不可避免的情况。其他开发项目也是一样。有时候市场需要新技术,如从 GSM 演变为 3G ,或是一个新芯片,一个新平台等等,培训、学习可能费时。只有找有经验的外包商完成这个任务。

 

这时一个不错的短期方案。同时也需要配合长远的策划与发展。如果不能克服这个问题,我们就会受制于人,不是一个长远的途径。

 

<!--[if !supportLists]--> ·         <!--[endif]--> 利用外包解决临时或是短期的任务。

 

如果组织忽然市场扩展的很快,来不及配备人员,或是任务不是常规任务,只会短期存在,不会重复,不应该扩展体制来解决,利用外包解决问题就比较适合。这种外包,可以是一个外包项目,让外包商完成部分的产品开发任务;也可以是外包人员,由外包商提供人员支持项目的活动。

 

重点在于短期。如果将来短期变成长期,就需要考虑是否扩展体制,增加员工数量,因为外包牵涉更多的组织或是企业,各自有利润的要求,所以一定会增加成本,或是降低质量,两害之间必须承担其一。这样不是一个长远的安排。

 

<!--[if !supportLists]--> ·         <!--[endif]--> 利用外包避免复杂的管理。

 

很多美国的各层政府,希望精简机构,都把很多政府的服务功能外包出去。比如收集垃圾、汽车的常规检查、薪酬发放等。在国外,因为政府员工的福利比较好,而且岗位很有保障,不轻易被裁退,所以工作的积极性不高。很多服务通过外包来节省低效管理造成的浪费。

 

如果外包商与客户的效率相等,同样的服务或是产品,外包一定造成更高的成本。这样的外包利用,其实是一个病态。根本的解决办法,应该是把管理体系优化,提高管理效能,而不是利用外包逃避问题。

 

<!--[if !supportLists]--> ·         <!--[endif]--> 其他的战略考虑

 

如果有一个巨型项目,需要多个企业的合作才能完成,其中就自然会有外包的情况。这个我们这里暂时不涉及。

 

外包商的需求与合同

 

当我们选定需要利用外包的情况,并且选定外包商之后,我们必须清楚需要完成的产品与服务,以及如何完成这些产品与服务,这就是外包的需求。并与外包商建立一个明确、一致的对外包需求的理解。这些必须在合同里明确。我们必须在签署合同之前,不断地重复、询问、考查外包商对合同的条款与需求的了解是否正确。我们要不厌其烦,尤其是在中国,直到满意为止,否则将来的风险非常大。

 

合同里最好也明确组织将会如何保证外包项目与产品的质量,并且要求外包商配合这些活动的承诺。对外包商的质量保证活动,就好像项目的质量保证活动一样,包括过程活动与工件的质量。这些可以在合同里明确识别,也可以要求一定数量的审核次数,但不在合同里明确审核对象。其中非常重要的,是明确要求一些进度评审。这些活动需要外包商配合,所以需要在合同里明确。次数按外包范围而定,最低限度要求一个。

 

产品验收

 

在合同里要明确产品与服务的接收条件。产品的验收,一定需要争取在发货之前外包商的设施里实现。只有产品满足要求,才能容许发货,否则将来的争议可能很费时费事。接受的标准,也需要明确。标准一定要包括外包需求里的所有条款。外包商也需要提供验收的方便。一个合理的安排,就是要求参与外包商的“系统测试”(交付前的最终验证)的策划与执行。参与策划,使保证验证的覆盖,参与执行时保证执行的充分性与正确性。

 

对外包商的监控

 

上面两点,是使用外包的组织需要做的。如果要保证交付日期与产品 / 服务的质量,也需要对外包商进行监控与审核外包商的关键过程与中间工件。这些活动其实与项目的 QA 活动非常一致。组织如果有这样的资源(时间与能力),就可以识别一些关键的过程与工件作为审核对象。

 

审核关键工件

 

方案与计划。这些工件的重要性在于保证外包商活动是否能够满足需要。从方案之中,应该可以清楚需求能否得到有效实现。计划应该可以一方面了解是否覆盖方案里的每一个细节,从而满足需求,另一方面从计划里的工作量估算与人员配备安排,可以知道交付日期是否合理。从这些工件,可以识别可能的风险,作为外包活动中需要关注的重点,制定检查审核计划。要求与外包商一起评审方案与计划,是一个很好的做法。

 

关于这两个工件的过程,我认为员工的承诺过程是很重要的。方案的制定过程虽然也重要,但是我觉得如果审核方案的文件,已经可以有相当的保证了。但是承诺的过程,可以帮助我们判断计划的合理程度与可以实现的机会。这样对保证交付日期很有帮助。

 

质量策划也是一个重要的环节。上面已经提到系统测试与接收活动的联系,这里要保证的,还有其他的质量保证策划,包括自测试、集成过程与验证、评审、等等。其中要留意覆盖的全面性与充分性。全面,就是包括所有需求。充分,就是每一个需求环节的测试用例,是否包含所有可能的实际情况,包括正常的与非正常的,尤其是非正常的。

 

审核关键过程活动

 

以上是三个需要审核的关键工件。在保证产品质量方面,还可以审核外包商员工在开发过程中显示的质量意识。比如,查看他们对自测试的严谨程度与测试环境。当然越严谨的态度与越规范越精密的测试环境对产品质量越有利。

 

组织需要定期审核外包商的进度,并且每当 QA 被分派到外包商的现场进行审核时,也需要系统地检查进度。进度方面需要关注三个因素:工作量、缺陷、与产品完成状态。

 

工作量与缺陷,都可以从项目项目计划中提升出来。它们都体现为“ S ”曲线。就是工作量与缺陷的发现策划的进展。项目开展之后,就不断把实际的数据填补上去,对比策划的数据,就可以清楚知道项目在这两个关键因素的进展情况,从而可以判断它们的风险,以及如何调整项目的活动来尽可能达到项目目标。

 

产品完成状态最好时通过方案的产品框架里的模块来表达。比如可以把每一个模块的状态,定义为:设计完成、实现完成、验证完成、集成完成、等等。把每一个模块的状态用直观的方法标示在一个图上,一眼就可以看清楚产品的完成状态了。这应该是配置状态报告的一部分。

 

这些在内部项目都很自然。我们都应该可以拿到这些数据。外包项目就比较困难。这是管理外包项目与管理内部项目最大的分别。我们不能从外包项目拿到同样详细的数据。不过只要我们知道需要那些数据,虽然数据收集频率不能很高,但也应该可以拿到足够的数据提供有用的、外包项目的可视性。

 

记住:这个世界不是完美的。我们不能依赖完整的数据才作判断。依据完整的数据判断风险比较少,不完整的数据导致比较大的风险。但是我们还是要尽量地找到可能找到的数据,作最好的判断。但是我们需要留意不完整数据的局限性,从而在风险管理方面下功夫,应对可能的不利情况。

 

主持进度评审

 

在合同里,建议包含最低限度一个进度评审。通过以上的审核工件、活动等举措,组织应该对外包活动的策划与风险有一定的掌握。这些风险,可以在进度评审里更详细地与外包商协商处理。

 

一般的组织,资源都很紧张。但是最少一次的进度评审是非常必要的,对于外包项目的成功有很大的意义。这一次的进度评审,建议定在方案与计划制定之后,开发活动进行了大概三分之一的时候(一定要在大概一半之前)进行。太早了,观察不出问题,太晚了,又不利调整。评审的内容,包括查看活动与计划的符合程度,以及相关的与已经发现的风险。这个会议,一定要项目经理或是更高层亲自参与。这样会传递一个信号,这个外包项目非常受重视。只有受重视的项目,人家才会在意。这是非常重要的。管理理念之中的一个大问题,就是高层指派的任务太细( micro-manage )而不参与。最有效的管理,是高层提供目标而不是实施细节,然后参与监控的活动。

 

结语

 

首先,我希望大家可以对比文章内容与 CMMI 《供应合同管理》过程与里的目标与实践。如果大家觉得文章内容从管理的角度是合理的话,大家应该可以更了解 CMMI 的含义与要求。

 

第二,成功监控外包商,保证外包产品的交付日期与质量的关键,在于有能力的,能明查秋毫的 QA 工程师。

 

我们的问题不是大家不知道做什么,只是大家没有信心能够把事情做好,得到期待的效果。所以我在咨询的过程中,强调 QA 能力的重要性。我们需要找到有敏锐的观察力,对管理有经验,能够识别风险,对过程后果作出正确判断的 QA 人员,分派到外包商现场审核,才有意义。否则随便找一些人员操作操作,一定不会得到期待的效果。所以我们不能姑息。对 QA 的岗位,一定需要有明确的技能要求。有趣的是,当我查看组织的咨询会议纪要的时候,这个意见居然没有被纪录。可惜!可叹!

 

第三,监控外包商与监控组织内部的项目是非常相似的。方法与思路其实是一致的。虽然我们对外包项目的检查密度可能没有内部项目那么频繁直接,数据没有这么多。这个分别就可以有这样大的分别么?我们对外包商的控制,明显比不上对内部项目的控制。从成熟的管理理念的角度分析,这个不应该造成太大的风险,否则世界上就不会有这么多的成功外包活动。但是这个“控制”的欲望,才是我们“不安心”的真正原因。这是我们的心理,是我们的文化与发展阶段的表现。

 

我们的领导,其实是把“安心”放在“控制”上。但是我们控制的,又只是行为、一些单维的数据与非常表面的因素。这就是中国管理低效的原因。我发现领导们其实对基层的真正情况不了解。对谁是有能力的 QA 也分不出来。这回造成效能提升得困难。我要请问:

 

如果我们对监控外包商没有信心,为什么我们的领导觉得他们能了解项目的真正状况呢?