What is a Coding Dojo and what are its rules and principles?
The joint practice of software development
A Coding Dojo describes the joint training of techniques and methods of software development, as well as the learning of new development languages, platforms, frameworks and tools. The term dojo comes from Japanese and stands for training room in Japanese martial arts. In a dojo, katas – i.e. predefined sequences in a fight with imaginary opponents – are practiced repeatedly. Applied to software development, we speak of code katas and coding dojos.
A coding dojo – sometimes also called a coder dojo – is about learning with and from each other. Practice can take the form of multiple pair programming, public with all participants, a beamer and a discussion, or cyclical development. Cyclic development is usually very popular, because software developers often adopt the code of other developers in practice. In addition, the process is very simple: A couple develops a solution for a defined problem while thinking out loud about approaches and solutions. After every 8-10 minutes, a part of the pair is replaced by another member of the group. In this way, each participant becomes active and both the general and individual learning curves increase.
Rules and principles of Coding Dojos
The Coding Dojo follows some basic rules and principles:
- At the beginning the topic, the task, the procedure and the timebox should be discussed. This determines whether each participant can try out his own idea for solving the task or whether there is a common approach.
- Communication takes place at eye level. The aim is not the perfect solution, but the way and the findings on this way. Even experienced developers can learn something using this approach.
- Katas propagate alternative ways to a goal. The openness of the participants for unusual approaches is a prerequisite for this. Nevertheless, superfluous lines of code must be avoided.
- Practice makes perfect. The continuous repetition of the Katas and the Dojos perfects the execution. At the same time it also promotes cohesion in the development team.
- A moderator, e.g. a Scrum Master, is normally not needed. If there are problems, they can be addressed with the Scrum Master in a retrospective.
On the Internet you can easily find many examples of Katas. These exercises often address students or young professionals. Experienced developers in software development, for example, very rarely deal with prime factor decomposition or the representation of a fir tree. In real business practice, coding dojos therefore often revolve around new techniques, tools and frameworks and have a strongly explorative character.
Examples for Coding Dojos can be found here »