Freewind @ Thoughtworks scala java javascript dart 工具 编程实践 月结 math python english [comments admin] [feed]

(2014-11-01) 组内一场关于“测试、TDD、结对、做卡”的讨论会

广告: 云梯:翻墙vpn (省10元) 土行孙:科研用户翻墙http proxy (有优惠)

这段时间我有这样的一些感觉和疑惑:

  1. 我之前在做IdeaRemotePair插件的时候,其中有一些关于交互协议的部分是用TDD的方法来做的,有一些很好的感觉
  2. 我最近在做一些复杂的卡时(多项目,多语言),使用TDD的过程中,遇到了很多麻烦
  3. 我感觉大家在做卡的时候,经常以“项目时间紧”为理由,而采用“先把功能完成再补测试”或者“先做完功能,有空再做重构”的方式,这跟我司倡导的“TDD”等实践是违背的

我在回顾会议上提到了这些,大家让我准备一个session讲讲。但我在准备的过程中,觉得自己在这方面的知识和经验都不够,讲不出来什么,所以把它弄成了一个讨论会。于是预设了以下主题让大家投票:

主题 票数

按投票人数从上到下讨论,大约进行了2小时。

讨论很充分也很激烈,但是大家并没有得出很好的结论。大概总结起来:

  1. 大家对TDD的好处并明确,觉得只要想清楚了,先写还是后写都一样
  2. 大家觉得对常用测试框架的掌握,还不是特别熟练
  3. 如果是强制进行的workshop,应该放在工作时间;而由兴趣形成的,可以放在下班后,号召是你的事,参不参加是别人的事
  4. 下班后不应该加班,因为一你做的事情你的pair不知道,二会给客户错误的进度信息
  5. 下班后自己学习是自己的事,提倡但不强制
  6. 做卡时经常会浪费很多的时间在找人,以及反复确认需求上

后来问了一些同事,得到了一些反馈。比如:

  1. 我感觉大家讨论的时候都在想办法说服别人,没有真正在讨论同一件事。大家都在不同的项目,遇到的情况也不一样,讨论不到一起。如果这个讨论会的主题是,大家结合自己的项目情况介绍一下自己的做法、遇到的问题等,让别人帮忙分析,给出意见,可能更有用一些。在搞讨论会以前,最好多问问大家到底想讨论什么,有什么好建议

  2. 我觉得这些主题有点深,而参加讨论的人,很多对一些基本的概念都不清楚,大家都靠着自己想像中的理解在争论。比如关于TDD,大家平时都没有认真系统的看过这方面的书,在实践过程中也没有真正去思考,但现在却坐在一起讨论一些高层的问题,根本没法进行有效讨论。以前我们曾经有过这样的讨论,徐大师在旁边听了,只说“你们真正去做做TDD再过来讨论”

  3. 我觉得这种讨论会的形式还是不错的。觉得有些可惜的就是,没有及时要求给出"Action”。比如讨论到“测试框架不熟悉”的时候,大家觉得搞个workshop是有益的时候,我们应该提出做一个什么样的workshop,谁愿意来负责等等。不然讨论完了就完了,问题没有解决。

comments powered by Disqus