Software Katas - Practice in Public Makes Perfect
Many thought leaders in the agile community have started talking more about software katas - a way of practicing specific exercises until one has them memorized. Over the past several weeks, there has been an increase in blog posts and sites devoted to katas, including weekly screencasts at softwarecraftsmanship.org. Robert Martin has gone as far as calling them "performance art". Should you add katas to your software toolkit?
Nearly 2 years ago, InfoQ ran an interview with "Pragmatic" Dave Thomas on a wide-range of topics - including Katas. Katas are a focused form of practice that are meant to be memorized. Each Kata tackles the solution to a specific problem. For example: Keeping track of the scores in a bowling game, Converting Numbers to LCD format, and Finding Prime Factors.
Early last week, Uncle Bob blogged about katas in a post entitled What's all this nonsense about Katas?. And in mid-October Corey Haines and others in the Software Craftsmanship community launched katas.softwarecraftsmanship.org a site where they are posting Screencasts of various katas each week.
Taking it one step further, Uncle Bob has posted his latest Kata in which he builds a solution to finding Prime Factors, set to a set of songs called the Flower Duet. In his article, he likens Programming to performance art, saying:
Indeed, it is a beautiful thing to watch a skilled and well practiced martial artist peform a kata. And that started me thinking. Why would a martial artist practice these forms so intensely that they could be performed as an art?
Later he goes on to say:
When you watch a skilled martial artist perform, you know you don’t want to fight him. The performance is a demonstration, and a realization, of mastery.
And yet ... no martial artist practices his art so that they can perform on stage. A martial artist practices to achieve personal perfection in the art of self defense. The fact that the practice can be performed is a (pleasant) side effect.
In what ways do you practice your coding skills? Have you created Katas or other Screencasts detailing the way you work? Do you have favorite sites or katas you use? Let us know with a comment below!
(Thanks to Cory Foy for filling in with this item during Deborah Preuss' European XPDays tour)
I enjoyed this post
by
Chou Harry
Along with Kata's...
by
Mark Levison
Cheers
Mark
The Agile Consortium
interesting angle...
by
Stephan Behn
- I just put my own try on katas (codingkata.org) online.
While it's still under heavy construction (I don't even have 1 kata yet ;-) I hope it will be a great place for other programmers to improve their programming skills. -The things I want to do differently are a) give the student immediate feedback by providing a complete kata setup via maven, b) building some katas with graphical illustration of the problems to increase the fun factor and c) sharing the various solutions online for others to read, learn and criticize. But that's still a long way to go :-)
Anyway, thanks a lot for pointing out the current discussion around katas - so I can keep that in mind while building up my site. The concept with constant practicing of one kata is quite interesting!
Re: interesting angle...
by
Deborah Hartmann
The concept with constant practicing of one kata is quite interesting!<blockuote></blockuote>
I believe this is the most essential concept in "kata". Continual repetition: each time similar, but different because you are now different :-)
Re: interesting angle...
by
Deborah Hartmann
The concept with constant practicing of one kata is quite interesting!
I believe this is the most essential concept in "kata". Continual repetition: each time similar, but different because you are now different :-)
(that's better , lol)
Re: interesting angle...
by
Mark Levison
Cheers
Mark Levison
The Agile Consortium
Educational Content
Concurrency in Clojure
Stuart Halloway May 17, 2013
Confessions of an Agile Addict
Ole Friis Østergaard May 16, 2013
Web Development: You're Doing It Wrong
Stefan Tilkov May 16, 2013
Programming The Feynman Way
Ben Evans May 15, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think