Kolumne: Quality Time

Von Karate und Code-Qualität
Kommentare

Wer Karate oder eine andere Kampfsportart erlernen möchte, geht in das nächstgelegene Dojo und trainiert gezielt einzelne Bewegungsabläufe und Kombinationen, bis sie in Fleisch und Blut übergehen. Eine Lernmethode, die sich auch als Programmierer anwenden lässt. Doch meistens bieten die nahende Deadline und der tägliche Kampf mit Legacy-Code nicht die Freiheit, neue Techniken so in Ruhe auszuprobieren und einzuüben.

Aus diesem Grund erfreuen sich Coding-Katas und Coding-Dojos immer größerer Beliebtheit. Dabei ist das Prinzip hinter den Konzepten ziemlich simpel: Bei einem Coding-Dojo treffen sich Entwickler, um, außerhalb der täglichen Arbeit, gemeinsam ihre Fähigkeiten zu trainieren. Eine entspannte, kreative Atmosphäre ist hier entscheidend – die Teilnehmer sollen die Möglichkeit erhalten, Neues auszuprobieren und Lösungswege zu verfolgen ohne Fehlschläge fürchten zu müssen. Im Gegenteil, denn Fehler zu machen, Probleme zu erkennen und sie zu reflektieren ist geradezu erwünscht.

Typisch aber nicht notwendig ist es, bei einem Coding-Dojo ein so genanntes Kata zu lösen, eine vorgegebene, abgeschlossene Übungsaufgabe. Beispiele für solche Katas sind der String-Calculator, bei dem Zahlen aus einem String unter verschiedenen, erschwerenden Bedingungen addiert werden sollen – oder der Supermarket-Checkout – die Emulation einer Supermarktkasse mit Rabattsystem und ähnlichen Erweiterungen. Beide Katas eignen sich sehr gut, um Test-driven-Development (TDD) zu üben, was bei nahezu allen Dojos ein fester Bestandteil ist. Die Teilnehmer eines Dojos einigen sich üblicherweise auf ein Kata, das dann in Paaren entwickelt wird. Ein Zeitlimit von 45 bis 90 Minuten ist hierbei angemessen. Das Ziel ist jedoch nicht unbedingt, das Kata in dieser Zeit zu beenden, es dient lediglich als Basis für Experimente. Eine Google-Suche fördert schnell eine Vielzahl solcher Miniszenarien zu Tage, für jeden Geschmack etwas.

Eine weitere wichtige Zutat eines Dojos ist die Reflektion. Die Teilnehmer tauschen ihre Erfahrungen aus, präsentieren Lösungswege und wägen ab, was bei der Implementierung gut und was schlecht gelaufen ist. Darauf folgt eine weitere Programmierrunde, in der entsprechend der Reflektion neue Wege ausprobiert werden können.

Wie genau das Programmieren organisiert wird, ist nicht festgelegt. Beispielsweise ist es möglich, dass sich Teilnehmer mit Erfahrung in einem bestimmten Themengebiet zur Verfügung stellen, um am Beamer zu programmieren und dabei die Lösung mit den anderen Teilnehmern zu diskutieren. Oft werden hierfür auch Experten eingeladen. Bei anderen Varianten des Dojos rotieren die teilnehmenden Paare an der Beamerposition oder ein Trainer leitet die Gruppe an und gibt Hilfestellung.

Die in Dojos oft verwendeten Katas eignen sich aber nicht nur zur Gruppenübung. Engagierte Programmierer nehmen sich gerne ein Kata vor und lösen dieses im wöchentlichen Rhythmus immer wieder. Die häufige Wiederholung erlaubt es, an einem bekannten Problem unterschiedliche Techniken auszuprobieren und sich in verschiedenste Richtungen leiten zu lassen, um neue Wege zu Erkunden und bewährte Methoden, genau wie beim Karate, in Fleisch und Blut übergehen zu lassen.

Eine wichtige Erkenntnis, die mit Coding-Dojos und -Katas den Mainstream erreicht, ist, dass Entwickler sich nicht ausschließlich durch die tägliche Arbeit weiterentwickeln sollten. Zeit zum Ausprobieren und Einüben von neuen Techniken ist wichtig und Coding-Dojos bieten hierfür einen guten Ansatz.

Wer so etwas in Aktion erleben möchte, sollte einen Blick auf die Kata Keynote der International PHP Conference 2012 werfen – inklusive Kampfsport-Beispiel!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -