3 Konzepte aus den Martial Arts in der Softwareentwicklung

Die Softwareentwicklung hat schon länger erkannt, dass wir uns von den traditionellen asiatischen Kampfkünsten (z.B. Karate) einige Praktiken und Tugenden abschauen können um unsere Fähigkeiten als Entwickler zu steigern. Disziplin, Fokus, ständige Verbesserung durch Lernen, ein gesunder Geist, Professionalität, Meisterlichkeit, usw. sind Schlagworte, die man heute mehr als je zuvor im Zusammenhang mit “Software Crafmanship” hört.

Source: http://best-selfdefense.blogspot.co.at/

Kata

Die Kata bezeichnet im Karate eine abgeschlossene Übung, bei der exakt definierte Bewegungsabfolgen durch häufige Wiederholung bis zur Perfektion trainiert werden. Selbes Prinzip findet sich in der Softwareentwicklung als Code Kata wieder, wo Entwickler-Skills wie Clean Code, Test Driven Development (TDD) oder Pair Programming anhand von einfachen Code Beispielen trainiert werden. Die Regeln einer KATA müssen dabei genau beachetet werden. Der Weg zur Lösung erfolgt bewusst in “Baby-Steps” die auftretenden Probleme und die einzelnen Lösungsschritte die notwendig sind bewusst zu machen. Die Lösung ist dabei nicht im Fokus der Code Kata sondern der Weg zur Lösung steht im Vordergrund der Übung. In agilen Unternehmen werden Katas regelmässig zur Weiterbildung der Entwickler durchgeführt. Eine Liste von populären Code Katas findet ihr hier: http://ccd-school.de/coding-dojo/

Dojo

Als Dojo wird im Karate der Übungsraum bezeichnet, in dem Katas durchgeführt werden. Das Prinzip der Coding Dojo bezeichnet demnach das Zusammenkommen mehrerer Entwickler in einem Raum um eine Code Kata gemeinsam durchzuführen. Es gibt unterschiedliche Durchführungsarten einer Coding Dojo. Die Teilnehmer können in wechselnden Paaren (Pair-Programming) an der Kata arbeiten (Randori Kata). Es kann jedoch auch von einem Teilnehmer die Lösung auf einem Beamer vorzeigen (Prepared Kata). Letztlich ist es jeodoch jedem Frei mit Durchführungsarten zu experimentieren. Auf http://codingdojo.org/ findet ihr mehr Infos zu Coding Dojos.

Shuhari

Shuhari ist ein Lern-Konzept, das bei den traditionellen Martial Arts angewendet wird um eine Kampfkunst bis zur höchsten Stufe ( dem Meistergrad) zu erlernen. Die folgende Erläuterung stammt von Wikipedia:

  • shu (守?) “protect”, “obey” — traditional wisdom — learning fundamentals, techniques, heuristics, proverbs
  • ha (破?) “detach”, “digress” — breaking with tradition — detachment from the illusions of self
  • ri (離?) “leave”, “separate” — transcendence — there are no techniques or proverbs, all moves are natural, becoming one with spirit alone without clinging to forms; transcending the physical

Stellen wir uns vor, wir möchten Scrum nach den drei Shu-ha-ri Schritten erlernen: Im ersten Schritt wird streng das Lehrbuch (die Tradition) befolgt, bis dieses verstanden wurde. Erst wenn wir Scrum nach Lehrbuch anwenden können entfernen wir uns langsam von der Tradition um  zu experimentieren (z.B. Individuelles Anpassen des Prozesses an das eigene Unternehmen). Hat man den Umgang mit allen agilen Methoden und Techniken, als auch die eigenen Adaptionen zu einem Schlüssigen Gesamtkonzept vereinheitlicht und kann die Techniken, Werte und Methoden  jederzeit anwenden, so hat man den dritten Lern-Schritt (“ri”)erreicht.

Advertisements

Published by

Stefan Wunder

My name is Stefan Wunder and I am a passionate Agile coach from Graz, Austria. I have been working in the software industry since 2006, being an agile practitioner since 2011. I have experience with pioneering Agile, transitioning teams from waterfall to Agile, as well as working with established high performance teams within scaled agile enterprises. I worked with co-located as well as with dispersed teams, in start-ups, medium sized companies and big global enterprises in various industries. Currently I am working as enterprise Agile coach at AVL List GmbH.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s