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