How Not to Kata

Jun 17 2016

Coming into my apprenticeship, I knew that katas would play a significant role. As my start date approached, I started doing the popular katas. Katas such as prime factors, string calculator, change maker, and roman numerals. Optimistically, I tried to do one everyday, but realistically I did one once or twice a week.

When I met with my mentors at the beginning of this week, one of my assignments was to perform the prime factors kata for the two of them at some point during the week, so I spent the rest of my week practicing the kata and preparing for the performance.

Some Background

Up until this point I was familiar with a few of the concepts I have mentioned.

Here is what I didn’t know

Enlightenment

The problem was that I was doing it wrong. I was only doing a kata once.

I might do the change maker once on Monday and then do the roman numeral kata on Thursday. Naturally, I would end up forgetting how to implement it, and would spend about an hour trying to figure the subtleties of the problem at hand.

The thing is, doing a kata is not about solving the problem. This is what I was really missing. It is about practicing your process.

What my experience from performing the prime factors kata has taught me is that repetition is the key to unlocking the potential of the Kata.

Initially, I had to remember how to implement the prime factorizer, and it took a me a couple of times of doing the kata to fully retain it. But after I no longer had to worry about the code that would take me to the end, I was free to begin focusing on the process that would take me there.

Reflection

So after spending a week repeatedly executing the prime factors kata, and performing it for audience, here is what have I discovered about my own process.

  1. My TDD skills are twofold better than they were a week ago.
  2. My typing speed and accuracy needs some work.
  3. I was vaguely familiar the Transformation Priority Premise, but after this week practicing, I am starting to internalize the transformations and recognize opportunities for transformations in real code.
tags:kata

Recent Articles