为什么中国不能接受TDD?

最近看到一些Bloggers在质疑TDD存在的价值,认为只是理论上先进而不能实际应用,我可以直接了当的告诉这些质疑者,是你们的技术能力不行,导致不能实际把TDD应用起来!

以下是我收集到的一些普遍质疑TDD的说法:

  1. TDD只在输入输出确定的条件下才可以有效地应用。
  2. 我们的项目依赖于外界软硬件,比如数据库,第三方的Web服务器,这些我们都不能控制,怎么TDD啊?
  3. 我们的业务逻辑很复杂,没时间TDD,再说TDD会让原本的复杂度增加,还会浪费掉很多时间,不能TDD。
  4. 我们有专职的QA人员,让我来做测试,让他们做什么?又不多给我钱,为什么要我做,不做!

以上不是所有的质疑,还有很多很多。这些归根结底都是因为不了解TDD真正的精髓而造成的误解。可以这样比喻,这就好像不同文化之间的人都不愿意去 了解对方的文化一样,总是以嘲笑或朝拜的态度去对待。XP之所以不能普遍在中国流行,就是因为这样的一句话:“我已经好不容易对重量级的软件过程论有了还 算深入的了解,现在又让我去了解什么完全风马牛不相及的轻量级过程论,简直胡闹一样,我觉得RUP如果实践的好的话完全可以胜任任何软件研发!”简单地 说,这位仁兄归根结底还是“懒得”去学,没有任何深入了解就仓促定论,而且还大肆传播“谣言”。类似的话在任何技术领域都存在着,TDD也不例外,有一些 人是忠实的TDD维护者,以身作则,为能够实现TDD开发出了许多新理论与工具(见Kent Beck, Eric Gamma, JUnit),这些忠实维护者曾经report过采用TDD相对传统模式得出的极低的bug数;另外一些人则是冷嘲热讽者,想尽一切可能来辩说TDD在某 某情况下是绝对不可行的,但又没说出有什么好的其他方法,只是简单的把事情给忽略掉了,其用意就是针对TDD。我觉得前者是positive & constructive,这样的人能够真正带来业界的革命,而后者则是negative & destructive,不能够给任何人带来任何好处而相反会带来消极与衰落。

所以我决定携手其他志同道合者为TDD与敏捷开发辩解,陆续的我会给大家讲解如何分清与排除阻挠TDD的一些问题(或非问题)。如果你是一名TDD爱好者并以身作则的话请支持我,与我一同辩解!^_^

敬请关注!

posted @ 2005-08-13 09:19  Cavingdeep  阅读(1623)  评论(16编辑  收藏  举报