Gelesen habe ich über das Thema Code Kata in dem Buch von Roman Pilcher “Agile Entwicklungspraktiken mit Scrum“, welches einen guten Überblick über den agilen Alltag und dessen Tücken bietet. Verschiedene Themen werden dabei von verschiedenen Autoren aufgegriffen. Der Abschnitt von Stefan Roock und Bernd Schiffer über das Thema Dojos und Katas hat mir dabei am besten gefallen und mich diesem Post inspiriert. Das Buch ist mit etwas agilem Backgroundwissen gut zu lesen und durchaus einen Blick wert.

Kata ist ein Begriff, der aus der japanischen Kampfkunst kommt. Er bezeichnet, in der Kampfsportart Karate, eine Übungsform, welche einen genauen Ablauf hat, aber nur gegen imaginäre Gegner geführt wird. (siehe http://de.wikipedia.org/wiki/Kata_%28Karate%29 ). Ziel ist es, den Bewegungsablauf perfekt zu beherrschen.

Was heißt Kata jetzt für den aufgeschlossenen, ambitionierten Geek von heute?

Eine Code Kata hat das Ziel die Fähigkeiten eines Entwicklers zu stärken und bestimmte Abläufe und Rutinen zu verinnerlichen. Sie besteht aus einer kleinen Programmieraufgabe, minimal Konfiguration eines Servers oder ähnlichem. Wichtig ist, das sie sich in überschaubarer Zeit lösen lässt. Überschaubare Zeit deshalb, da man diese Aufgabe nicht einmal, sondern regelmäßig lösen soll. Denn auch für das Thema Software Entwicklung gilt, Übung macht den Meister. Durch dieses Vorgehen sollen Lösung und Lösungsweg verinnerlicht werden und s0 von Zeit zu Zeit in Fleisch und Blut übergehen. Es gibt verschiedene Katas die immer wieder genannt werden. Dazu zählen kleine mathematische Probleme

  • Primfaktorzerlegung
  • Fibonacci-Folge

oder einfache Dinge des Alltags

  • Objekt serialisieren
  • Listen sortieren

In dem Buch wird noch zwischen explorativen und einübenden Katas unterschieden. Wie der Name schon sagt, geht es bei dem einem ums entdecken und dem anderen das schon beschriebene Einüben. Unter entdecken kann man vieles verstehen, sei es ein alternativer Lösungsweg, eine andere Programmiersprache oder was einem auch immer einfällt. Ich denke wichtig ist, sich mit diesen Aufgaben immer wieder selbst zu prüfen und herauszufordern.

Ich habe mir fest vorgenommen in der nächsten Zeit das Thema aktiv selber anzugehen und werde auch (ich lehn mich hier schon sehr weit aus dem Fenster merke ich gerade) einige Katas posten. Zu finden sein wird das Ganze im Hauptmenü unter Coding Kata verfolgen.

Wer morgens 10 bis 15 Minuten seiner kostbaren Zeit opfern kann, oder diese Zeit seinem Team sogar spendieren kann, sollte das Thema Code Kata mal genauer unter die Lupe nehmen.

PS: Auftragen … Polieren (Wax on … Wax off)

Tagged with:
 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

About The Author

andreas