误事的外包

时间: 2008/10/19 0:00:00          

几周前,我在美国访问了一家州政府。他们将自己全新的企业软件外包给了一家基于美国的国际软件公司,我们姑且称这家公司为Smarty,合同总价达到数百万美金。合同中包括下面这些条款:

1、Smarty要在三年中开发这套企业软件,然后要负责安装、并维护18个月。Smarty负责提供流程、架构、开发语言、开发工具,以及其他将来会被州政府接管的东西。









州政府同意:只要Smarty将完成分析和收集的需求递交过来,他们就会审核并签字。这似乎听上去不错,但却是大错特错。为单一的一个产品签字保证不再修改需求,这实际上都已超越了人的能力所及范围。要想为一整套企业系统达到这个效果,根本就是不可能完成的任务!没人能从一开始就知道详细的需求到底会是什么样子!也没有人可以仅从纸面上明白需求到底是怎么一回事!业务人员、用户、其他的干系人,他们或多或少对于想要什么样的东西有点感觉,可我们都知道,只要他们得到一点可以用的功能,他们的详细需求是一定会发生变化的。而且,客户有一个非常重要的需求,就是这个系统必须能够维护和扩展足够长的时间,可能他们以为会是永远吧。可不管怎么说,Smarty算是有了不破金身了。

交付一套可供签字的需求、设计图、代码,这在项目中没什么困难的,因为你交过去的不过是一堆文档而已。交付文档是没有必要延迟的,少写一点无关紧要的细节就好了。而且略带讽刺的是,从Smarty的角度来看,文档是没有办法验证或测试的,这可是件好事,因为这就意味着不会出错。在集成测试和验收测试之前,一切看起来正常无比。可是,在这个案例中,这些测试移交给州政府了。地狱之门由此打开。

当然,首先来看,要想让软件按规格说明中的方式运行是非常困难的,很多项目因此而延迟。不过最重要的是,如果不能验证软件的行为符合业务和用户的期望和要求,事情就会变得非常困难了。这样的方式,在整个项目没有到达截止日期之时,州政府是不知道自己会得到什么的。可Smarty有护身符:“我们已¾¬做了我们承诺要做的事情。”而且,可维护性和可扩展性不会得到测试,因为没法测试。州政府只有接手了软件,才会知道有很多需要改进之处,不过Smarty早已扬长而去了。

我举的这个案例并非特例。很多与外包厂商签订合同的公司都有被欺Ƭ的感觉。他们相信外包厂商知道如何让客户成功,厂商也相信自己能够做到这一点。一旦达成协议,就无路可退了。客户会重构公司,引入数百甚至更多的人员为他们工作,而这是厂商建议的。即使合同完成得不好,客户也不愿意对外公布。而且,由于同样的事情不断发生,所以客户已经习惯了泰然处之,他们会说:我们只要下次做得更好就可以了。

然而,如果生意能够以更明智的方式达成,这些倒霉的事情本都不该发