Test-Driven Development (TDD) & Katas

February 23, 2010

I was in a discussion with some other Scrum & Test-Driven Development (TDD) practitioners over the last few days and was just introduced to the idea of a “kata”.

According to Wikipedia, “Kata is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.”  Bob Martin says, “A kata is meant to be memorized.  Students of a kata study it as a form, not as a conclusion.  It is not the conclusion of the kata that matters, it’s the steps that lead to the conclusion.”

Now what does this have to do with TDD?  Well, as someone who does a lot of training and mentoring work in software, it’s always a challenge to get developers to truly understand the process that I go through when trying to design and develop an application using TDD.  Sure, I can tell you the steps and walk you through the process with hands-on labs but how do I know that you really understand?  Well, I think that learning TDD katas are something in between knowing the steps of doing TDD and being led step-by-step through doing TDD.  Looking at a kata that Roy Osherove has on his site, it tells you what you should do in each step but it doesn’t tell you how to do it.

This looks like a great way to communicate how I would break down a development task so that I can then tackle it using TDD.  I think I’ll be adding this to my classes soon.

-Ben

Tags: tdd