The first time I have heard the word kata I was a child and I was watching a Jackie Chan film. The fighters were doing karate kata in order to practice and improve their skills and technique. My second encounter with this word was last year at I T.A.K.E. Unconference. There was a big poster on the wall and a lot of people in that area. Some were sitting down with their notebook in front of them, some were standing and discussing. I knew one of the guys who were sitting and I approached him. Then I saw that he was coding, he was doing a coding kata for the Kata Lounge Track.
From Kata to Kata Lounge
Today, after a year, I can say I have joined different types of coding katas. And each time I have left as a winner. I was not the only winner. A kata is
An exercise in programming which helps a programmer improve their skills through practice and repetition. One of the most popular lists for code katas is the Coding Dojo Wiki.
Like in martial arts, programmers come and fight with their weapons: clean code, good design, unit tests, TDD. So, we can do katas for:
And the list does not stop here. Basicaly, we can do katas for any type of skills we want to learn and master. Recently I have started my series of Grails katas in order to be able to increase my speed in implementing a project with this framework. Now that we know very well what a kata is, we can talk about the Kata Lounge. There are many katas organized around the world, but no Kata Lounge. I can’t see why. It is a simple and fun activity. We add an event, a place, tables for coding, a round table, a box with problem descriptions on the table and software developers. Therefore, during this year edition of I T.A.K.E. Unconference we have a special track for those who want to practice and become better at coding. At any time, any attendee can ask to write a program on some requirements. The requirements will contain: the problem, a timebox after which the attendee needs to stop even if the problem is not solved completely, and a person that will review the code. The reviewer will discuss the code with the programmer and give improvement ideas.
Simple and Easy
All that you need is a notebook, a bit of courage to start with unknown requirements and the desire to practice and share with others what you have done.
Everyone is a winner
Because there is a timebox involved, the Kata Lounge has a contest flavour. But, in comparison with a normal contest, there is no stress and pressure and all the participants will be winners. Everyone will receive feedback regarding their coding skills and they will see how others code. All of this while having fun pairing with software craftsmen.
During the unconference there was a talk about a programming technique that you liked so much that you really want to do it yourself? There is no problem. The Kata Lounge is the right place for this. Even more, you can ask feedback or you can pair with the speaker of that talk. In this way, you will know for sure that you have done it well. You want to practice something else? You can choose from Unit Testing, TDD, Refactoring, SOLID Principles, ATDD, BDD and so on. The proposed problems to be solved are perfect for all these technical areas.
Kata and Lounge. The formula that combines practice with leisure. The place for measuring and improving your coding skills. The place for fighting with programming weapons side by side with international software craftsmen. You will have fun fighting with them, stealing their secret weapons and techniques. All you have to do is to be there.