A concept borrowed from the Japanese martial arts world, katas are exercises which help practitioners hone their skills through practice and repetition. Over the past decade, katas has been adopted as part of the wider Software Craftsmanship movement, seeing katas introduced as part of leading Software Development and Software Architecture courses around the world. Organisations and software teams that embrace this practice has increasingly prioritised time for software practitioners to work on katas together, at a regular cadence. This provides a safe space for teams to experiment new practices, hone new skills, challenge assumptions and work with team members they do not usually interact with.
What happens during a Code Kata Session
Code Katas usually last between 2 – 4 hours, and are conducted in spaces with minimal interruptions. While it is ideal to have these sessions in a meeting or conference room, team-spaces can work too.
These sessions (code katas) are usually facilitated by someone with practical experience – for the practice/skill the group is trying to hone, and has done the kata more than once. During the course of the Kata, collaboration techniques such as pair-programming and mob-programming can also be introduced.
It is always useful to work on Katas that focus on just one (never more than three) practice, on a tool and language that team members are already familiar with. This minimizes context switching and reduces frustrations on toolchain setup. If familiarization of the tool and/or language is in question, it always pays to organize a hand-on lab session prior, to onboard (installation plus training) team members onto the tools.
It is highly valuable to conclude each Kata with a retrospective. This gives team members the opportunity to recap what they have learnt, give feedback on how the Kata can be improved, and most importantly, how they are plan to exercise these new skills in their work.
What happens after the session?
If the practice is something new to the team en-mass, it always helps to repeat the same Kata a couple more times to help team members get familiar with the practice.
To accelerate a team’s learning of the practice, it will also be useful to invite someone – who has substantial experience with the practice, to “mob” on a real world user story with the team. This person can be from the same organization, an external organization that the company has a trusted relationship with, a local community leader, or an external consultant.
This helps the team:
- localize the practice to make it practical for the team,
- see that this new practice can actually work in real world production work, and
- opens up the opportunity for feedback on how the team might be able to improve their ways of working.
Frequently Asked Questions (FAQ)
Duration – How long should a Kata be?
Usually 120 minutes (2 hours) to 240 minutes (4 hours). 90 minutes might work in some situations where the team is already familiar with Katas and has some basic understanding (not necessarily practical) of the practice.
Ideal Size – How many participants can a Code Kata session accommodate?
4 to 10 participants per facilitator is the recommended ratio. It is generally discouraged for sessions to go beyond 40 participants as coordination becomes very difficult.
The Setup – What resources are required to run a Code Kata session?
- Ideally a Conference / Meeting Room. Team area can work too.
- Table and chairs
- 1 computer (laptop /pc) for every 2 persons
- Projection (Computer Projector / TV Screen)
- Sticky Notes
- Printouts of the Katas (1 per participant)
Format – How does a Code Kata agenda or session plan look like?
|10 Minutes||Introduction Covering health & safely briefs, evacuation procedures, kata pre-requisites, and other general matters.|
|20 Minutes||Presentation on Concepts and Techniques Introduction to concepts and practices that will be exercised within the Kata (e.g. TDD).|
|80 Minutes||Interactive Kata Session Participants are formed into groups (e.g. pairs) to work on the katas. Various collaboration techniques can be introduced, in addition to the kata. It is recommended to perform a pulse check once every 20 minutes – this is a good time to swap pairs.|
|10 Minutes||Retrospect on Activity Talk through with participants on what they have learnt from the session, what it might be improved and how might they apply how they learnt into their ways of working.|