One night, while going down a reading-rabbit hole, I came across an unfamiliar term: ‘Agile Kata’.
My thoughts strayed, and I found myself transported back to 2002, to the film “Equilibrium.”
Equilibrium (directed by Kurt Wimmer) is a dystopian action film, starring Christian Bale. The film contains some fantastic action moments, but it was sadly a box-office disappointment.
The film features John Preston (Christian Bale), a law enforcement officer in a future when feelings are illegal and humans use drugs to suppress these. Preston begins to experience emotions after inadvertently missing a dosage, which causes him to doubt his morals. Ultimately, he assists a resistance organization employing sophisticated martial arts called ‘gun kata’, a form of ‘gun fu‘.
Is this reference to a 21-year-old film related to this article? Not exactly, but it shows how my mind operates. 🤓
Agile Kata is a practice or routine that teams do to enhance their abilities and performance when working in an agile manner. It is based on the martial arts idea of Kata, in which practitioners continually perform a precise series of moves to learn a skill.
Agile Kata in the context of Agile software development is identifying a specific problem or task and then frequently performing the actions required to solve it. The idea is to automate and streamline the problem-solving process.
How is Agile Kata used?
The team decides on a specific task or problem to work on. It might be a difficulty with coding, testing, refining, or collaboration. Kata sessions are typically time-boxed, with a set duration, such as 30 minutes or an hour. This allows the team to concentrate and keeps the practice from becoming too time-consuming.
During a Kata session, team members collaborate to address a specific task utilizing a set of practices or procedures. They repeat this procedure on a regular basis, hoping to get better with each iteration. The team reflects on what they learned, what worked well, and what may be improved after each practice session. They alter their strategy based on the comments and attempt again in the following session. The team steadily develops their skills and problem-solving abilities via frequent practice and reflection. Agile Kata fosters a culture of ongoing growth and learning.
Crafting an efficient Kata
Firstly, the team states the goal that the Kata is intended to address. It should preferably be SMART (specific, measurable, attainable, relevant, and time-bound). This sets the tone for the session and provides the team with a clear goal to strive for.
The duration of the Kata session is determined. This time-boxing technique helps the team focus, minimizes over-commitment, and assures consistent practice. Depending on the complexity of the challenge and the preferences of the team, common time-boxes are 15 minutes, 30 minutes, or 1 hour.
A defined set of procedures, methods, or strategies that the team should follow throughout the Kata session should be established. These phases should be relevant to the problem at hand and should encourage the team to collaborate and work productively.
The team should be encouraged to reflect on their performance, what they learnt, what went well, and what can be improved after each Kata session. Sincere feedback is critical for identifying areas for improvement and making required modifications.
An example: improving refinement
Consider an Agile Kata session in which a development team tries to enhance their backlog refining process. In Scrum, backlog refinement is an important process in which the team evaluates and prepares user stories and tasks for subsequent Sprints. The team realizes that their backlog refining process is taking too long, is unclear, and frequently leads in incomplete or poorly defined user stories. The Agile Kata for this session is:
“Improve backlog refinement process to make it more efficient, clearer, and ensure well-defined user stories.”
The team chooses to spend 30 minutes each week on backlog refining Agile Kata. During this phase, the team adheres to a certain set of procedures in order to optimize their backlog refining process:
- They begin by analyzing the top user stories in the backlog and prioritizing them based on value and dependencies.
- They divide the user stories into smaller, more manageable tasks, while making sure that each task is well-defined and has clear acceptance criteria.
- They discuss the criteria together and ask clarifying questions.
- Using approaches such as Planning Poker, the team assesses the work necessary for each activity and updates the backlog with the updated user stories and tasks.
The team comments on the improvements achieved and addresses the issues faced at the end of each 30-minute Agile Kata session. They ask themselves questions such as:
- Did we make the refinement process more efficient?
- Did we identify and address any unclear user stories?
- Were there any bottlenecks or issues during the session, and how can we overcome them in the future?
The team agrees to practice this Agile Kata once a week. They utilize the comments from each session to enhance their backlog refining process over time. As they gain experience, they may experiment with alternative approaches and tailor the process to the needs of their team.
The team improves their backlog refining skills over time. They may rapidly and fully improve the backlog, resulting in better-defined user stories and a more efficient Sprint Planning process. This results in more efficient sprint execution, better team productivity, and, ultimately, higher-quality increment delivery.
Conclusion
Teams may improve their agility, cooperation, and problem-solving skills by implementing Agile Kata. It promotes a culture of learning, experimentation, and iterative improvement, which is consistent with Agile methodology concepts.