I have the good fortune to from time to time give courses in TDD. I organize these events in two parts; one theoretical background part and then a practical part. During the practical part I found great use of Code Katas in general and the Bowling Ball Kata in specific.
I really like the way that a kata helps you to focus on the thing you trying to learn and in the case of the bowling ball take you through the principles step-by-step.
However, lately I’ve also sheen that the very practice of gathering your team in a room and go through a coding exercise on a screen together, taking turns at the keyboard, has yet another great benefit. You start to talk about your code.
In this case you can together create a shared understanding, shared principles and code standard and finally build the team in a great way.
Yesterday we did this in my current team, and not before long we started to get into discussions about the coding standards, the conventions we’re using and how to design the system.
Also it’s a great learning experience on a low level; keyboard shortcuts, new ways of doing stuff, Resharper commands etc. I’ve never been in a this kind of session without learning a lots.
So I will sure take time to do this. We’re aiming on two hours each week in my current team.
- Code your way through a user story or a test, or a walking skeleton.
- Do it together to get shared understanding and spread the principles and ways of your team.
- Do it often to keep your standards up to date