Code Kata’s / Code Dojo’s

In letzter Zeit bin ich viel am üben. Sprich, ich versuche das gelesene in die Tat umzusetzen. Ich habe aber immer Probleme mir Szenarien zum üben auszudenken (ja, wir Entwickler sind schrecklich Fantasielos, wenn es um solche Dinge geht).

Code Kata

Ich habe aber die Lösung für mein Problem gefunden. Sogenannte Code Kata’s. Code Kata’s sind vorgegebene Aufgaben, welche man lösen muss.

Was sind die Vorteile von Kata’s im Vergleich zu eigenen Aufgaben?

  • Relativ kurze Implementationszeit (30-60 Minuten)
  • Viele Schwierigkeitsgrade (für jede Stufe etwas)
  • Zahlreiche Aufgaben im Web vorhanden
  • Zahlreiche Lösungen im Web vorhanden (In Textform und in Videoform)
  • Ein Reviewer, der das Kata schon kennt, kann ein gelöstes Kata sehr schnell bewerten

Begriff Kata

Kata kommt aus der japanischen Kampfkunst und bedeutet in den meisten Fällen, dass man ganz bestimmte Abläufe so lange übt, bis sie in Fleisch und Blut übergegangen sind. Auf die Softwareentwicklung umgesetzt heisst dies, dass man mit einem Kata folgende Ziele verfolgen kann.

  1. Die Problemstellung grundsätzlich lösen
  2. Die Problemstellung immer und immer wieder lösen, so dass der Lösungsweg in Fleisch und Blut übergeht -> z.B.  Lösen eines Kata’s mit TDD
  3. Die Problemstellung mit verschiedenen Ansätzen umsetzen, um zu erkennen, welcher Lösungsweg der beste ist.

Coding Dojo

Sogenannte Coding Dojo’s sind Treffen, wo man Kata’s (oder auch eigens erstellte Szernarien) in einer Gruppe übt. Dabei gibt es 2 Formen.

Prepared Kata

Hier präsentiert ein Sprecher ein vorbereitetes Kata den Teilnehmern. Jeder Teilnehmer darf sich aber jederzeit einschalten und Fragen oder auch Tips geben. Der Sprecher darf immer nur dann zum nächsten Schritt übergehen, wenn alle Teilnehmer den letzten Schritt verstanden haben.

Randori Kata

Bei dieser Form der Übung sind alle Teilnehmer auch gleichzeitig Programmierer. Es programmieren immer 2 Personen (Programmierer und Überwacher). Nach ganz bestimmten Regeln, werden diese 2 Personen jeweils ausgetauscht (nach einer bestimmten Zeit, nach einem bestimmten Ereignis usw.).
Auch hier gilt: Die Programmierer erklären immer, warum sie was tun. Die Zuhörer stellen Fragen oder geben Tips

Fazit

Ich selber habe noch nie an so einem Coding Dojo teilgenommen. Aber es klingt für mich sehr lehrreich und spannend. Wenn viele Köpfe zusammensitzen und all ihre Erfahrungen einbringen, ist es wahrscheinlich sehr wertvoll investierte Zeit und alle beteiligten können interessante Erkenntnisse daraus ziehen.

Quellen

6 Responses

  1. Bis jetzt habe ich es hauptsächlich für tdd Übungen verwendet. Und ich finde, dort lohnt es sich absolut. Das coole ist halt, dass man auf der grünen Wiese anfängt und durch die einfach Aufgabenstellung nicht auf all zu viel achten muss.

    Kata’s kann ich definitiv empfehlen. Dojo’s würde ich gerne mal ausprobieren – dort verspreche ich mir sogar noch einen höheren Lerneffekt.

Leave a Reply

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