推行 TDD 成效不彰,充斥着似是而非的言论;TDD 造成额外工作量,TDD 没有效益,ROI 太低……
为何会如此?我的观察是……
“大家都把开发人员当贼看……认为只要是代码有缺陷,架构腐败,都认为是开发人员搞的,都认为是开发人员没有质量意识,千错万错都是开发人员的错。”
大家试着同理心去想想,当大家都将开发人员当贼看时,我们又怎能会有一个合理的说法,去说服开发人员做 TDD?我们又怎能会有一个激情的动机,去驱动开发人员做 TDD?
另外一方面,TDD 最大的限制在于: TDD 只能反馈,由开发人员所认知的需求是通过或没通过测试。然而,在许多失败的项目中,我们往往会发现,开发人员所认知的需求与使用者所认知的需求,存在着相当大的差距的。也就是说,由于在需求上所存在的认知上的差距,而导致项目的失败,是无法用 TDD 来弥补的。
所以,TDD 要推行成功很简单,不外乎……
1. 用同理心去对待,去尊重开发人员。
2. 誏真正的领域专家(能从使用者的角度,将需求以领域知识的方式体现)与开发人员协同合作。
3. 将只会写代码,而不会测试的开发人员,归类为 “资料写作人员”;即使他(她)的技术再牛逼。