周庆瑜
这几年,企业将软件开发外包俨然成为一种潮流。不过,根据我的观察,大部分IT负责人还是停留在外包服务到底能否给企业带来效益这个门槛上,一旦突破了这个门槛,后续如何选择好的IT外包厂商就马上成为又一个需要考虑的问题。相对于硬件外包比较容易制定SLA(Service-Level Agreement,服务等级协议),软件开发外包则可能更容易让CIO感到困惑。 目前,跟我们公司合作过的IT外包厂商中,大部分都是大型软件公司,如微软、IBM等。对于这些服务商,理论上而言,CIO无须担心——“很多大企业的项目,它们都能吃下来,何况是我们的外包项目呢”。这个推论看似很合理,但是根据我的经验,恰好在这样的情况下,规模不算大的外包项目会存在潜在的风险。 首先,由于这些IT厂商的主要客户是大企业,所以一旦它们的主要客户有临时或紧急需求,就商业角度上看,他们抽调重点人力支持主要客户,是再合理不过的事情了。 再者,开发软件产品与开发企业内部的IT应用系统之间有一个很大的不同点,就是功能需求的变化上。一般而言,企业内部应用系统的需求变动是推进项目过程中,最容易出现问题的环节之一。而那些习惯了接受相对稳定需求的IT大型厂商在面对这些变化的时候,是否拥有足够的弹性以配合企业内部的这些需求变化,显得很关键。最后,CIO和你的团队目前的整体水平是否能达到大型IT厂商的高度也是影响项目成败的关键因素。一份撰写良好的需求文档当然会让大家在合作过程中,能使出现的争议点降到最低。但是。什么是“撰写良好”?这个标准就很难界定。对此,我所认识的一些CIO的做法是自己去过CMMI,通过认证的方式来确保内部人员的素质,这样将来甲乙双方对接时,问题也许能少出些。我个人比较喜好的做法则是,先按照企业内部的规范操作,外包商同时也能成为我的稽核人员,以帮助我找出团队中需要增强的能力点。在这样的前提下,我还要观察这些大技术商的人是否能适应我们的“打法”。只有双方能互相匹配,项目才能顺利进行下去。 那么,到底CIO该选择什么样的外包服务商呢?我从经验中总结出了一些判断点: 1.要考察外包服务商的综合实力,看它除了满足你的外包服务要求外,是否还能给企业带来其他方面的加分,如行业知识或IT系统架构方面的经验。我一向认为,甲乙双方之间是可以存在互相学习的关系的。 2.CIO要考察外包商的项目管理能力,考察重点在于:外包商使用的方法论是否完整;是否经历过大量项目的检验;是否运用数字化的管理工具;是否有明确的KPI;是否取得了国际级认证,如CMMI等。对这部分的考察,有些CIO难免存有疑问——“即使外包商这些工具都有了,好象也不能保证项目的圆满结束。类似CMMI认证,在国内似乎没听说过谁真的过不去,毕竟通过认证对培训机构来说,也是一种商品化后的服务项目。”对这样的疑问,我的回复一向是“过了总比没过好,终归是多加了一份保障”。 3.CIO要考察外包商是否取得了国际级IT技术商的认可及相关资质。如果你的软件开发项目是与这些IT巨头的产品紧密挂钩的,如Oracle原版软件的客户化定制项目,这就是一个很有必要的考核点了。 4.考察外包商后续服务的保障性,这包括厂商的规模、其永续经营的决心、服务制度的规范程度。通常而言,如果外包商规模太小,可能会突然有一天消失了,CIO再重新找外包商以及试运行项目,一定会是一个不太愉快的过程,更不要说以前项目的维护工作可能没法得到保障。 5.CIO在考察外包商的报价时,一定要有总体成本(Totalcost)的概念,将项目的整体成本、后续维护人员的成本、是否提供技术和行业领域的增值服务等“打包”在一起,进行全盘考核。 最初进行开发外包时,我们在与服务商议价时,更多考虑的是每个人天的单价。在合作过几家服务商之后,我发现如果从总体开发成本的角度看,其实外包服务商之间的价格差别并不多,那些单价低的可能项目周期会比较长,或是项目质量不如单价高的厂商。 依照我的经验,CIO对外包服务伙伴越了解,就越容易培养默契,在项目合作上也越容易体现出弹性。当然,如果外包服务商连企业文化也能跟我们比较接近,是最好不过了,因为不管乙方老板答应你什么,真正干活的还是下面这批人。 (本文作者的博客http://blog.sina.com.cn/dennisqyzhou)