t2informatik » Wissen kompakt » Code-Kata

Code-Kata

Übung und Wiederholung machen den Meister

Eine Code-Kata ist eine Übungsaufgabe in der Softwareentwicklung, bei der nicht die Lösung einer Aufgabe oder eines gestellten Problems, sondern das Erlernen neuer Fertigkeiten und die Entwicklung von erfolgreichen Routinen im Mittelpunkt stehen. Für jede Code-Kata gilt es mehrere Lösungen zu finden, um so aus Fehlern zu lernen, Erfahrungen zu sammeln und noch bessere Lösungen zu entwickeln.

Ursprünglich stammt der Begriff Kata aus dem Japanischen und wird u.a. in der Kampfkunst verwendet. Manchmal wird Kata auch im Zuge von kontinuierlichen Verbesserungsprozessen (KVP), KAIZEN oder Lean-Ansätzen erwähnt. Doch im Gegensatz zu diesen Ansätzen gilt es nicht konkrete Ziele oder definierte Meilensteine zu erreichen; der Weg ist quasi das Ziel. Die Perfektionierung durch Wiederholung von Formen, Haltungen, Abläufen und Mustern steht im Fokus einer Kata. Übertragen auf eine Code-Kata ist die Lösung einer Aufgabe nicht das Ende, sondern der Anfang. Oder in anderen Worten: Übung und Wiederholung machen den Meister (der Softwareentwicklung).

Das Rekapitulieren von Methoden und Techniken ist ein wichtiges Element bei einer Kata. Auch wenn der Begriff häufig im Kontext von Coding Dojos verwendet wird, eignen sich die Übungsaufgaben auch sehr gut für individuelle Herausforderungen. Eine Code-Kata ist eine Spielwiese, ein Ort ohne Termindruck und Konsequenzen. Zur Lösung einer Übung könnte bspw. eine Sprache verwendet werden, die man sonst nicht nutzen würde. Auch das Schreiben möglichst weniger Codezeilen, das Auskommentieren von Code, das Experimentieren mit Frameworks oder die Nutzung von Sprachfeatures lassen sich erlernen. Mit einer Code-Kata

  • lassen sich Übungen zu Funktionen, Klassen und Bibliotheken durchführen.
  • können ganze Applikationen entwickelt werden.
  • lässt sich der Entwurf von Architekturen optimieren.
  • lässt sich eine inkrementelle, iterative Entwicklung erlernen.
  • lässt sich die Verwendung von modellgetriebener Softwareentwicklung (MDD) oder testgetriebener Softwareentwicklung (TDD) etc. üben.

 

“Das Fachwissen zu Softwarearchitekturen, die Expertise in der Softwareentwicklung und die sehr flexible Arbeitsweise waren ideal für uns.“

„Ich brauche Freiheit und Vertrauen. Und ich möchte Verantwortung übernehmen und dabei Spaß haben!“

Pin It on Pinterest

Share This