Software Testing

Evolution of Coding Kata – A well-trodden path

After my first post on coding kata, I discovered like with most thoughts I’ve had in my life, that others have walked this path before me. Quite a few people reached out and shared their kata experiences with me. It looks like there are many out there who use kata for deliberate practice and a bunch of folk who want to get involved in new efforts.

I picked up a copy of Emily Bache’s Coding Dojo Handbook and read about how she and others have been practicing and teaching kata as a way of continued and deliberate practice for many years.

I’ve been a fan of Laurent Bossavit for a while now and I’ve very much enjoyed the few conversations I’ve had with him at conferences here and there. He is of course well known for his excellent book Leprechauns of Software Engineering, but I discovered I was completely ignorant of how fundamental he’s been to the coding dojo scene.

I had a chat with Josh Lewis who told me that deliberate practice and repetition is how he’d always practiced and taught kata and was surprised when I suggested he might be in the minority. I’d be pleased to find out he was right and I’m wrong. If you’ve been using kata for deliberate practice, drop me a line on twitter and let me know.

If anything, I now have a renewed sense of enthusiasm for my current efforts. Where I think kata need to go now are to have an accepted solution to go with the problem statement. There is no shortage of kata out there and there are plenty of talented folks out there who can teach. What I think would be helpful now is a set of solutions to these kata that can be repeatably practiced over and over again. It would also be helpful if these solutions put a range of different skills into contextually correct practice. The small group I’m working with at eBay is taking a look at creating some kata that can do just that. I’ll post more on that when we have something to share.

Leave a Reply

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