Code-Katas und Coding-Dojos

Wer fernöstlichen Kampfsport wie Karate betreibt, trainiert eine Fähigkeiten in einem Trainingsraum, dem Dojo. Dort übt er unter anderem Katas ein - vorgegebene Bewegungsabläufe im Kampf mit imaginären Gegnern. Durch die Wiederholung ein- und derselben Kata immer und immer wieder geht dem Kämpfer die Bewegungsmuster in Fleisch und Blut über und er lernt, diese Muster während eines tatsächlichen Kampfes instinktiv abzurufen.

Sowohl das Konzept der Kata wie auch das des Dojos sind erfolgreich auf Programmiertätigkeiten übertragen worden. Eine Code-Kata ist eine vorgegebene Programmieraufgabe mit überschaubarem Umfang, die der Entwickler viele Male hintereinander löst. Er versucht dabei, bei jedem Durchlauf einen besseren Weg zu finden. Wie bei der Karate-Kata geht es nicht um die am Ende stehende Lösung. Es geht darum, den Weg dorthin zu perfektionieren. Und ähnlich wie bei der Karate-Kata gehen dem Entwickler durch die Wiederholung der Code-Kata bestimmte Bewegungsmuster in Fleisch und Blut über. Man wird ein besserer Entwickler!

Beispiele für Code-Katas sind die Primfaktorzerlegung, die Umrechnung von römische in arabische Zahlen oder die Punktezählung beim Bowling.

In einem Coding-Dojo finden mehrere Entwickler zusammen, um eine Code-Kata gemeinsam durchzuführen und so voneinander zu lernen. Es arbeiten zwei Entwickler im Paar an einem Rechner an der Aufgabe. Die restlichen Teilnehmer verfolgen des Geschehen über den Beamer. In einem festen Rythmus (z.B. alle 8 Minuten) rotiert ein Entwickler aus dem Programmier-Paar heraus und ein anderer Teilnehmer nimmt seinen Platz ein.