十九 我们忘记CoC了吗?

请问,我们忘记什么是CoC了吗?

还记得敏捷宣言里Customer collaboration over Contract negotiation吗?我无法理解的是,到底是用敏捷让客户与开发商之间达到CoC,还是在CoC之后才能适用敏捷?敏捷宣言到底是敏捷所达到的结果还是制约敏捷实施的准入条件?

如果CoC是敏捷希望达到的目标,那么合约关系对敏捷实践的推行有着强大的阻力。合约关系是目标驱动—合约范围里交付一定量的产品(代码),合作的另一方纯粹是供应商。

就像作为经营超市的业主,我所关心的是我的东西能不能在指定的时间,足量地被提供而已,而我不会去管供应商的生产、物流、配送、质量管理流程。而当供应商的任何一个环节出现问题的时候,都不会趋向于将消息告诉超市的业主,而是采取各种手段,包括赶工、减少质量保证环节、以次充好、虚抬价格等等手段保证在时间点内交付超市所需要的货品。

这便是合同关系的邪恶之处,任何交付过程中的问题都会被避免曝光给客户—合同过程中的任何问题都可能引起客户对交付物验收和进度要求更严格,最终导致合同作废。最后的结果是,问题和风险都被隐藏在那一纸合同里,当合同被签上客户的名字,这些问题和风险都被一笔勾销,而最后受损失的是客户—交付物的缺陷在付款之后才能被发现。

更可怕的是,从高端管理的角度来看,供货商甚至期待这种关系,因为这种“缺陷依赖”导致供货商和客户往往形成一种畸形的绑定,带来的是直接客观的经济利益。但是从长远来看,这种绑定关系,真正损害的是客户的长远利益—这种短视的经济行为使得那些缺陷最终被传递到普通消费者的时候,慢慢成为一种病态的积攒,等待某天真正成为破坏客户整个组织的重大危机,而当这种危机出现的时候,谁也不会知道问题出在这条漫长供应链的何时何处。

而真正理想的合作关系在于供货商从供货职能到服务提供的转变—供货商到服务商。作为超市的业主,我的服务商不但需要向我提供我需要的货品,而且在货品提供出现问题的时候及时告知我,使得我有机会调整我的经营策略,重新布置货架,及时对可能出现的缺货情况作出应对;我也会帮助我的服务商努力解决供货方面出现的问题,对于这种风险暴露的行为给予肯定和鼓励。

这样的关系意味着客户和服务商(供货商)存在于整个一条的价值流中。在精益中我们把任何阻碍价值流流动的东西当做产生浪费的源头,损害的是整个价值流上的每位参与者,而合同关系,让价值流上的参与者分隔开来,不愿意暴露那些阻止价值流流动的东西,最终损害的其实是整条价值流上的参与者。

实际上,敏捷在某种情况下被两种力量阻碍着,一种来自外部,那些不会审视价值流的客户,用合同胁迫作为开发商的我们,对于开发过程中提前发生的问题并不采用合作解决的态度,而是利用合同施加更大的压力;

另一种来自内部,有些管理者,帮助客户胁迫开发团队,不愿意为团队提供可能的一切帮助,下意识地认为一句“你们要做得又快又好”可以转化为额外交付能力,期待保证有天合同被客户签下名字,完成业绩。

敏捷来自于精益思想,精益的核心在于保证核心价值流不停流动,敏捷的作用在于及时发现那些阻碍价值流流动的东西。而合同关系让价值流的参与者不去关心整个价值流动的情况,刻意隐藏坏消息,没有合作,只有“做不完便不给你钱”的胁迫,最后损害的永远是最终消费者,而最终消费者力量有天会瞬间摧毁这些短视的经营者,那一天,我们又在哪里?