Coding Kata - Üben, aber bitte mit Ziel!

Coding Kata - Üben, aber bitte mit Ziel!

Von Jan Suchotzki

Im Rahmen der Verbesserung von professioneller Softwareentwicklung, haben in den letzten Jahren die Begriffe Coding Dojo und Coding Kata schon fast einen Hype ausgelöst.

Dabei bezeichnet eine Coding Kata oder Code Kata eine (kleine) Programmieraufgabe, die wieder und wieder von dir ausgeführt werden sollte. Das Ziel ist es, dass dir Abläufe, Methoden, Syntax, … in Fleisch und Blut übergehen. Das Üben, also die Perfektionierung des Lösungsweges, liegt im Zentrum deiner Anstrengungen beim Umsetzen einer Code Kata.

Als Coding Dojo wird das Durchführen einer Code Kata mit mehreren Entwicklern bezeichnet. Die konkrete Umsetzung eines Coding Dojos kann unterschiedlich sein, aber üblicherweise geht es darum, dass 2 Entwickler gemeinsam an einem Rechner die Aufgabe lösen oder einen Teil davon. Solch ein Coding Dojo ist also perfekt für Entwickler-Teams z.B. in Firmen geeignet. Es gibt aber auch im Bereich von User Groups häufig das Angebot, dass du dich an einem Coding Dojo beteiligen kannst.

Es geht um gezieltes Üben

Wenn du so eine Code Kata mal ausprobieren möchtest, dann kann ich dir die Code Katas der Clean Code Developer School empfehlen.

Ralf Westphal und Stefan Lieser haben dort mit viel Mühe ganz verschiedene Code Katas zusammen getragen und in verschiedene Kategorien unterteilt. So gibt es recht einfache, bzw. solche die du in kurzer Zeit erledigen kannst. Dazu gehören z.B. Function Katas oder auch Class Katas. Dabei gilt es in verschiedenen Aufgaben eine Methode oder eine Klasse zu realisieren. Es gibt jedoch auch umfangreichere Code Katas wie die Architecture Katas bei denen nicht der Code im Vordergrund steht, sondern der Architekturentwurf.

Genau diese Unterteilung zeigt einen in meinen Augen wichtigen Aspekt von Code Katas. Es geht immer um gezieltes üben. Einerseits ist es wichtig, dass du den Lösungsweg perfektionierst, und andererseits kannst du auch immer wieder verschiedene Schwerpunkte legen.

Nehmen wir zum Beispiel die Function Kata “CSV tabellieren”. Dabei kannst du nun erstmal einfach die eigentliche Aufgabe machen. Wenn du das geübt hast, kannst du beispielsweise die gleiche Aufgabe machen aber mit TDD (Test-Driven-Development), Clean Code oder du versuchst die “schnellste” (bezogen auf Performance) Realisierung zu finden. Eine weitere Alternative wäre zu versuchen die Abarbeitung zu parallelisieren bzw. asynchron zu machen.

Eine weitere spannende Möglichkeit ist der Einsatz von Werkzeugen. So kannst du zum Beispiel sagen, dass du den Einsatz von Git mithilfe einer Function Kata üben willst. Dann geht es darum, dass du passende Stellen findest an denen du einen Commit machst und übst aussagekräftige Commit-Messages zu schreiben.

Du siehst, es gibt auch zu den einfachen Code Katas viele Varianten. Wichtig ist also, dass du dir vor dem Start überlegst welches Themengebiet du üben möchtest und dann auch tatsächlich dabei bleibst.

Eine Coding Kata wird auch Grundlage meiner Herausforderung an C# Entwickler (und solche die es noch werden wollen) sein: ??? C# Challenge. Magst du mitmachen?

Viel Spaß beim gezielten Üben

Jan