推行测试驱动开发 (TDD) 有这么难吗?

推行 TDD 成效不彰,充斥着似是而非的言论;TDD 造成额外工作量,TDD 没有效益,ROI 太低……
为何会如此?我的观察是……

大家都把开发人员当贼看……认为只要是代码有缺陷,架构腐败,都认为是开发人员搞的,都认为是开发人员没有质量意识,千错万错都是开发人员的错。

大家试着同理心去想想,当大家都将开发人员当贼看时,我们又怎能会有一个合理的说法,去说服开发人员做 TDD?我们又怎能会有一个激情的动机,去驱动开发人员做 TDD
另外一方面,TDD 最大的限制在于: TDD 只能反馈,由开发人员所认知的需求是通过或没通过测试。然而,在许多失败的项目中,我们往往会发现,开发人员所认知的需求与使用者所认知的需求,存在着相当大的差距的。也就是说,由于在需求上所存在的认知上的差距,而导致项目的失败,是无法用 TDD 来弥补的。


所以,TDD 要推行成功很简单,不外乎……
1. 用同理心去对待,去尊重开发人员。
2. 誏真正的领域专家(能从使用者的角度,将需求以领域知识的方式体现)与开发人员协同合作。
3. 将只会写代码,而不会测试的开发人员,归类为 资料写作人员;即使他(她)的技术再牛逼。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...