After posting about coding dojos a year ago, I have one started at work. We wrapped up our fifth session today on the bowling game kata by Uncle Bob Martin.
Overall, the experience has been wonderful. I’ve gotten a number of encouraging comments each week, and we have a number of regulars who attend. The survey I sent today affirmed my anecdotal evidence – very positive feedback. Also, I’ve gotten to know a few programmers in different departments that I normally wouldn’t interact with.
I have learned a few lessons I wanted to share, for those of you who are considering starting their own:
When I was first learning the kata, it took a long time to produce it. I wanted to be able to do it from memory before I did it in front of the group the first time. While that was good from a presentation standpoint, it was not from an audience point of view. I introduced a number of keyboard shortcuts which I later found out left people lost. And, although I don’t feel like I type fast, I apparently type faster than I should when leading a class. It took me a few sessions to understand that I needed to slow down some.
It’s taken a few sessions for people to feel comfortable sharing that they had questions about a certain piece, that they were falling behind, that they didn’t get it, or even to show off a neat new approach to the problem. I hope to continue to foster a collaborative atmosphere, but I have additional work to do to make participants feel comfortable contributing.
I run my dojo Tuesday mornings. I got the company to sponsor breakfast the first two sessions, but since then, we’ve been foregoing breakfast. While attendance is still about 8-12 people a week, we lost a few people. And, I find that breaking bread with your fellow man helps break down barriers and make the group more cohesive. So, spring for bagels sometimes.
Repetition is the Key
The format I’ve used is to demonstrate the basic kata for the first half hour, then show a variant the second half hour. Last week, I did the kata as a paired programming exercise. This week, I got people to talk about the variations they came up with. This way, people who attend frequently get something new out of it each time.
By repeating the kata at the start each time, it allowed us experienced folk to warm up and the new people to join right in. I encourage newcomers to pair with people who know the kata, although our company doesn’t have a strong pairing culture – something I’m hoping to foster in the dojo.
Please share your experiences in the comments, and contact me with questions or if I can help you start your own coding dojo.