What is a Code Kata?
Smartpedia: A code kata is an exercise in software development where the focus is not on solving a problem, but on learning new skills.
Code kata – practice and repetition make perfect
A code kata is a software development exercise in which the focus is not on solving a task or problem, but on learning new skills and developing successful routines. For each code kata, several solutions have to be found in order to learn from mistakes, gain experience and develop even better solutions.
Originally the term Kata comes from the Japanese and is used among other things in the martial art. Sometimes Kata is also mentioned in the course of continuous improvement processes, KAIZEN or lean approaches. But in contrast to these approaches it is not necessary to reach concrete goals or defined milestones; the way is the goal. Perfection through repetition of forms, attitudes, processes and patterns is the focus of a Kata. Transferred to a code kata, the solution of a task is not the end, but the beginning. Or in other words: With practice and repetition you become the master (of software development).
Areas of application for code katas
The recapitulation of methods and techniques is an important element in a kata. Although the term is often used in the context of coding dojos, the exercises are also very suitable for individual challenges. A code kata is a playground, a place without deadline pressure and consequences. To solve an exercise, for example, a language could be used that would otherwise not be used. You can also learn how to write as few lines of code as possible, comment code, experiment with frameworks or use language features. With a code kata
- exercises on functions, classes and libraries can be carried out.
- whole applications can be developed.
- the design of architectures can be optimised.
- it is possible to learn incremental, iterative development.
- the use of model-driven software development (MDD) or test-driven software development (TDD) etc. can be practiced.
Notes:
Here you will find additional information from our Smartpedia section: