全文:3357字9图
阅读时间:9分钟
这是一份迟到的小结,去年底组织完Global Code Retreat后,有些新的感受想要分享。结果一路拖延下来,又多了两次道场活动的收获。分别是3月份与亚光一起组织的上海敏捷社区道场,和4月底哈罗单车的内部活动。再次印证了当初的想法。
Coding Dojo
最初组织Coding Dojo的想法
一开始我是在公司内部组织的。主要原因是那时候刚刚通过个人练习,在掌握TDD上有所突破。因此非常兴奋,想要通过一起练习的方式把我学到的东西传达给其他人。
基于这个出发点,活动的形式大概是这样的:
最初内部Dojo的次序
1. 首先进行了一次内部分享,来讲解TDD相关的概念,和具体的做法。
2. 为了让参与者有直观的感受,第二次活动是展示形式的。由我演示用TDD一步步完成一个题目。
3. 后面几次的活动是用MOB形式,一台连接投影仪的电脑,大家轮流上来写几分钟。旁边的人一起讨论分析。这样既可以保证整个过程采用了TDD的方式,又给了每个体验思考的机会。
4. 在大家对TDD都比较熟悉之后,尝试了结对分组形式,每两人一组用一台电脑,同时写一道题目。然后留一段时间轮流review代码。
MOB Programming
面临的挑战
看起来是费了一些心思逐步推进吧?活动的实际效果也确实不错。不过,让更多人掌握TDD这个目标,却没有达到预期效果。
那么面临的挑战是什么呢?
1. 首先TDD是需要付诸实践的技能,所以单纯的宣讲作用是不大的。只讲红,绿,重构循环的话,几句话就说完了。讲得更深的话,没有实践也很难体会到。
2. 现场演示呢,实话说压力还是很大的。众目睽睽之下脑子很容易短路。为了效果和面子不免要做充分练习,但是这样又有一些副作用。
◆ 太熟练了容易讲得太快,听众跟不上。
◆ 太熟练也会让人觉得只是这道题目的这种解法练习的次数多,所以才这么遛。对于方法本身还是持怀疑态度。
3. 然后是轮流MOB的形式。每对轮换上来的人面临的心理压力和单独演示是一样的,还要理解前面一组的思路。所以往往有手忙脚乱,焦头烂额的情况。此外各组也可能思路有差异,无法有步骤的分解解决问题。这时
◆ 如果努力引导,把思路带回引导者自认为“正确”的路上。一来影响了每个人的参与度,也会让人觉得是不是仅仅因为你做过一遍知道答案了而已。二来,也不一定就能引导回来不是。