Die Code-Kata
Die Katas kommen aus den Karate, Aikido und andere Kampfkünste. Eine Kata eine Übung, in der eine Abfolge von Bewegungen gegen einen „unsichtbaren“ Gegner ausgeführt wird. Katas werden oft wiederholt und geübt, damit diese Bewegungen in Fleisch und Blut übergehen und während eines Kampfes abgerufen werden können, ohne darüber nachzudenken. Hier schließen wir zur Softwareentwicklung auf.
Eine Code Kata ist nichts anderes als eine kleine Aufgabe, die wir wiederholt ausüben und uns dazu helfen soll, unser Handwerk besser zu beherrschen.
Übung macht den Meister
Als Softwareentwickler werden wir meistens ins kalte Wasser hineingeworfen. Code schreiben, Code schreiben, Code schreiben. Da und da muss fertig sein.
All die Fertigkeiten, Techniken und Methoden, die wir kennen, kommen nach Bedarf zum Einsatz. Falls wir noch wissen, wie sie funktionieren und sie wohl in der Hitze des Gefechtes nicht vergessen. Wir üben nicht, außer vielleicht am lebenden Objekt. Kein Wunder, dass manchmal die Qualität zu wünschen übriglässt.
Vergleichen wir es mit MusikerInnen. Sie haben gelernt, wie ein Instrument zu spielen ist. Wenn wir sie jetzt wie Softwareentwickler behandeln wurden, wäre die Erwartungshaltung, dass ohne jegliche Übung sie in der Lage wären eine beliebige Symphonie live zu spielen. Haltet ihr das für realistisch? Ich nicht. Es bedarf viele Stunden der Übung um eine Symphonie zu spielen.
SoftwareentwicklerInnen brauchen auch die Möglichkeit Fertigkeiten, Techniken und Methoden zu üben.
Wie läuft es ab?
Man nimmt ein kleines Problem und versucht, es zu lösen. Ziel ist bei jeder Wiederholung weiter zu kommen; andere Ansätze zur Lösung auszuprobieren; zu entdecken, welche Techniken für eine bestimmte Problemsorte am besten geeignet sind und sich mit den unterschiedlichen Lösungsmöglichkeiten vertraut zu machen.
Und wozu sollte das Gut sein? Dadurch werden wir in unser Können gefestigt und können in „echten Leben“ qualitativ bessere Software erstellen.
Üblicherweise nehme ich mir 30 bis 45 Minuten Zeit, um an eine Kata zu arbeiten. Manche Katas sind Programmieraufgaben, bei anderen geht es darum sich Strategien und Methoden zur Lösung des Problems zu überlegen.
Eine der wichtigsten Punkte, der beachtet werden muss, ist regelmäßig und wiederholt zur üben, nur so lernen wir, besser zu werden. Wie oft muss man das üben? Nun das ist eben unterschiedlich und jeder sollte sich sein eigener Plan erstellen. Manche Menschen üben einmal am Tag, andere ein paar Mal in der Woche. Wie viel und wie oft ist eure eigene Entscheidung. Wenn ihr oft genug mit einer bestimmten Kata geübt habt, wechsle zu eine anderen. Es gibt viele unterschiedliche Katas und ihr könnt auch euer eigene erfinden. Am Ende dieses Artikels sind ein paar Links auf Seiten, welche Kata-Kataloge unterhalten.
Gefahren bei einer Code Kata?
Meine Meinung nach sind Coding Katas ein effektives Medium um sich zu verbessern, aber das geschieht nicht durch Magie. Wer sich immer wieder die gleiche Kata vornimmt und sie auf die gleiche Art und Weise löst, lernt nichts dazu. Es geht darum, neue Ideen zu entwickeln, neue Wege zu entdecken. Nur dadurch entwickeln uns weiter.