dojo, kata or randori?

What flavour of session shall we have today?

In the agile community we like to share ideas and learn from each others sessions. In addition we borrow ideas from other communities. These three names (dojo, kata & randori) are borrowed from the martial arts world in an attempt to encourage programmers to practice.

The idea of practicing coding it quite unusual in the traditional sense, not least if programming is considered to be a solitary activity. People tend to think of years of experience as being all important. These types of sessions are intended to develop a group learning dynamic where all members leave the session having learnt something.

The dojo is the place we go to practice, for examples see the dojos run by AgileFinland, Laurent Bossavit’s monthly Coding Dojo in Paris, and my own local AgileNorth dojo in the UK.

Dojo sessions can be run in one of a number of ways.

  • Choreographed session with leaders talking through decisions.
  • Interactive sessions, a pair start to solve a problem, every 5 to 10 minutes one member of the pair is exchanged. Sometimes known as randori.

I am not a big fan of choreographed sessions. While there is value in demonstration I prefer this as an introduction to the session rather that a session in itself. I have felt somewhat detached from the decisions being made in the past.

The agile north sessions that I have been involved in have been in the randori style. We used the dojo to allow people to try TDD. To enhance the involvement of the audience they were asked to supplement the role of the second member of the pair by suggesting tests. The rational behind which test to do next was (for me) the most important output from the session.

Dave Thomas has been instrumental in publicising the benefits of coding katas. A kata is a small task that can be used by an individual to practice his craft. Through repetition one can achieve new insights even with a well known problem. My personal favourite is implementing the model behind Conway’s game of life.

Of course a kata is a good candidate for use in either type of session. However, for me there is an important extra aspect that shouldn’t be forgotten. After a kata, be it group or individual time must be set aside for reflection. During this retrospective we must take time to think about

  • What did we do well?
  • What did we learn?
  • What would we do differently next time?
  • What still puzzles us?

3 Responses to dojo, kata or randori?

  1. Everton says:

    Hi Dave , thanks for the article, it’s simple and clear.

    In yout opinion what’s a good number of people for an dojo session ?

    • dave says:

      I’ve seen these sessions work well with quite a variety of sizes from a demonstration style with 1 coder, 1 narrator and ~30 observers to a more interactive model with 10-20 participants and rotating roles.

      Hope this helps.
      Regards

      Dave.

  2. [...] so that the tests will run successfully and show green. The approach will also work perfectly as a coding dojo kata. Repeat it regularly and track your progress. [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Where am I?

 

September 2012
M T W T F S S
« Jan    
 12
3456789
10111213141516
17181920212223
24252627282930