从业余台球娱乐想到"敏捷开发"

细心的朋友,可能会发现,我最近一段时间比较热衷一些运动活动。台球虽然不是很耗体力,但小丁哥带给国人的振奋,不能不让人对台球的爱好也提高到了一定的程度。

近来和朋友们娱乐之余,总容易想到去台球室。说实话,台球室并不是一个我愿意去的地方。主要是台球室的环境大多比较简陋、卫生条件差、烟雾缭绕。打完球后,衣服一定发臭了!烟臭!

但不管怎么样,娱乐还是很快乐的。快乐的根源往往是我能赢上几盘。要再说根源,那就是我们几位都是很菜!大部分是靠运气来进球的。

当然了,在过程中也在琢磨如何进行瞄准,如何打各种旋转球。最近忙于项目的单元测试,突然想到台球。发现可以用台球来很好地解释敏捷开发的精义。

我们都是菜鸟。在这个前提下,我们进行台球娱乐。往往都是现场进行练习。对于准度、力度、角度都只是简单想到而已。往往是有心去练习,但对于其结果,却不能做很好的检验并对现有技术进行校正!

对!校正,这是很重要的。菜鸟对于台球的评价往往只是通过结果来评定。但是高手往往可以关注到细节上。而每一个细节的提高,也必然是通过反复地练习,并进行反复的校正来提高的。

我们做软件不也正是如此吗?简单的软件开发,往往是通过开发阶段完成之后的测试人员甚至客户验证的。当我们回头来总结我们软件开发的时候,就会联系到很多方面的原因,什么管理啊、什么时间啊、什么环境啊...

我并不是说软件开发不涉及那些因素,但是显然的是,对专项进行联系提高,显然比整体调整要简单地多了!

比如说练习台球,通过比赛进行练习,显然没有专项练习来的快速、有效!为什么呢?在于及时快速的反馈!我能很快知道我现在的方式是不是有效的,偏差多少。而对于修改也更容易呢。

软件开发也是这样,我们开发出来的功能模块,与其放到开发完成之后测试,还不如立即进行验证调试。单元测试的思路也正在这里。通过及时快速的测试反馈,让你可以及时快速地发现开发过程中存在的偏差,而修正过程,也会因为你刚刚开发完成,对于原有思路还很熟悉清晰,变得更加容易!

这一点我想大家都能理解,也都能想到。现在我们再反过来看,光是进行单独的练习,对于系统的开发也是不够的。因此应该意识到单元测试并不能解决所有问题!我们应该在单元测试之上,针对系统开发的不同阶段,制定不同的测试策略。

敏捷开发理论,提出了很多有明显特点的概念,包括“单元测试”,“结对开发”等等。各个团队在实践这些理论的时候,往往容易进入误区的就是,想用这些新理论解决所有问题。针对这点,我们应该真正认识到各种理论的适用范围。摆正想法,才容易真正掌握!

总结一下:

  1. 单元测试,重点在于提供了快速及时的反馈。
  2. 单元测试,并不能解决所有问题。系统级别的问题,需要系统级别的解决方案。 

posted on 2007-06-17 23:23  ohmyjava  阅读(109)  评论(0编辑  收藏  举报

导航