reports

Code Katas und Coding Dojos: Auch Software-Entwickler üben

von Stefan Scheidt & Ansgar Himmel
29.10.2019

In den asiatischen Kampfkünsten ist eine Kata eine genau festgelegte Abfolge von Bewegungen und eine klassische Übungsform im Kampftraining. Mit ihr sollen Bewegungsabfolgen im Muskelgedächtnis abgelegt werden, damit sie dann in Kampfsituationen ohne Zeitverlust abgerufen werden können. Das Trainieren der Abfolgen ohne realen Gegner hat der Zweck, sich auf das korrekte Ausführen der Bewegungen konzentrieren zu können und nicht von der Interaktion mit einem realen Partner oder Gegner abgelenkt zu werden.

Eine ähnliche Idee verfolgt das Konzept der Code Kata. Eine Code Kata ist eine gezielt ausgewählte Programmier-Übung, in der man bestimmte Programmier-Praktiken wie beispielsweise testgetriebene Entwicklung und kontinuierliches Refactoring einübt. Der Begriff wurde 2007 von Dave Thomas geprägt und hat seitdem vor allem bei Anhängern der Software Craftsmanship Bewegung Freunde gefunden.

Struktur einer Code Kata

Eine Code Kata ist eine überschaubare Programmieraufgabe und bei der ersten Bearbeitung geht es zunächst darum, das Problem zu verstehen und eine Lösung zu finden. Beim nächsten Durchlauf der Kata wird man sich schon darauf konzentrieren können, eine qualitativ zufriedenstellende Lösung zu entwickeln. Danach kann man sein Augenmerk auf den Weg legen, den man beschreitet, um zu dieser Lösung zu kommen. Ab diesem Zeitpunkt kann beispielsweise geübt werden, die Lösung testgetrieben zu entwickeln, bestimmte Einschränkungen wie etwa die Object Calisthenics oder die Functional Calisthenics einzuhalten, oder nur die Tastatur und Keyboard Shortcuts seiner IDE zu nutzen.

Eine beliebte Variante ist die Refactoring Kata, z.B. die Gilded Rose Kata. Dabei beginnt man nicht bei Null, sondern muss bereits existierenden Code unter Test nehmen und dann überarbeiten, bevor am Ende neue Anforderungen umgesetzt werden können.

Coding Dojos

Code Katas kann man sehr gut alleine machen, aber auch das gemeinsame Üben mit anderen hat seinen Reiz. Dafür trifft man sich zu einem Coding Dojo und kann beispielsweise unterschiedliche Formen des Pair Programming üben, sich in einer größeren Gruppe am Mob Programming versuchen oder eine Randori Kata probieren. Der Abschluss eines Coding Dojo sollte immer eine kurze Retrospektive sein, in der man sich über das austauscht, was man ausprobiert und dabei gelernt hat.

Schaut einfach einmal, ob es in eurer Region eine lokale Softwerkskammer User Group gibt. Dort werden immer wieder Coding Dojos organisiert, an denen man in der Regel einfach teilnehmen kann. Und wer mehr über dieses Format der gemeinsamen Programmier-Übung lernen möchte, dem sei das “Coding Dojo Handbook” von Emily Bache empfohlen.

Auch bei REWE digital trifft sich eine kleine Gruppe von Entwicklerinnen und Entwicklern jeden zweiten Freitag vormittags für zwei Stunden zu einem Coding Dojo. Wir üben Pair- oder Mob-Programming, praktizieren unterschiedlichen Methoden der testgetriebenen Entwicklung und tauschen uns am Ende über das aus, was wir an diesem Tag gelernt haben. Oder wir machen Experimente mit uns wenig bekannten Programmiersprachen, Libraries oder Frameworks. Und manchmal haben wir auch “nur” gemeinsam Spaß am Programmieren mit ein paar Coding Games.

“Extended Practice”

Wenn man nicht genug bekommen kann von Code Katas und Coding Dojos, dann sollte man ein Code Retreat besuchen. Dabei wiederholt man im Laufe eines Tages sechs mal die Game Of Life Kata. Es wird stets im Pair programmiert und spätestens ab der zweiten Wiederholung auch testgetrieben entwickelt. Jeder Durchlauf dauert 45 Minuten und endet damit, dass man sein Ergebnis löscht und sich zu einer kurzen Retrospektive trifft. Nach einer kurzen Pause beginnt das Spiel von neuem - mit neuem Pairing Partner und neuen Constraints. Auch hier gibt es Varianten wie etwa das Legacy Code Retreat.

Einmal im Jahr findet der Global Day of Coderetreat statt, an dem weltweit Code Retreats abgehalten werden. Dieses Jahr am Samstag, den 16.11. - auch zwei mal in Köln: in Ossendorf bei der lise GmbH und in Mülheim bei der innovex GmbH

Für die Software-Entwicklung und das Programmieren gilt wie für vieles: Übung macht den Meister! Und hierfür sind Code Katas, Coding Dojos und Code Retreats eine hervorragende Möglichkeit. Probiert es einfach einmal aus!

In diesem Sinne: Happy Coding!

Suche hier nach Stories, Jobs und Themen…

question mark
Hoppla!
Leider konnten wir unter dem von Dir gewünschten Suchbegriff keine Ergebnisse finden.