Was sind eigentlich Coding Dojos?

Neulich wurde ich gefragt, welchen Rat ich jemandem mitgeben würde, der das Ziel hat, ein guter Softwareentwickler zu werden. Lange grübeln musste ich nicht.  Ich empfehle jedem wärmstens, sich auf dem Weg zu gutem, sauberen Code an Kent Becks berühmten Satz zu orientieren:

„Any fool can write code that a computer can understand. Good programmers write code that humans can understand.“

Gleichzeitig sollte sich jeder Softwareentwickler die vier "Rules of Simple Design", ebenfalls von Kent Beck, zu Herzen nehmen:

A simple code...

  1. passes all tests
  2. expresses every idea that we need to express
  3. says everything once and only once
  4. has no superfluous parts

Diese goldenen Regeln sollte ein Softwareentwickler verinnerlichen – und vor allem sein Leben lang perfektionieren. Nur wenn er das Ziel hat, Code nach diesen vier Regeln zu entwickeln, macht er einen bedeutenden Schritt auf dem Weg zum guten Softwareentwickler.

Alles, was wir brauchen, sind 500 Jahre Zeit

Aber was heißt perfektionieren eigentlich? Verdeutlichen wir das an einer kleinen Geschichte:

A tourist visiting England’s Eton College asked the gardener how he got the lawns so perfect. „That’s easy“, he replied. „You just brush off the dew every morning, mow them every other day, and roll them once a week. “
„Is that all?“, asked the tourist.
„Absolutely“, replied the gardener. „Do that for 500 years and you’ll have a nice lawn, too.“
[Andrew Hunts und David Thomas, The Pragmatic Programmer (2000)]

Uns stehen natürlich keine 500 Jahre zur Verfügung, aber was die Geschichte zeigen soll, wird klar: Das kontinuierliche Wiederholen der gleichen Abläufe perfektioniert die Ausführung.

Genau deswegen haben wir die Coding Dojos an fast all unseren Standorten ins Leben gerufen. Leidenschaftliche Softwareentwickler – Kollegen, Freunde, Studenten – nehmen z.B. an unserem Frankfurter Standort jeden zweiten Dienstag im Monat daran teil und üben sich zum Beispiel im Umgang mit testgetriebener Softwareentwicklung (TDD) und ihrer integrierten Entwicklungsumgebung (IDE). Aufgaben waren z.B:

Umrechnung der römischen Zahlen in Dezimalzahlen und umgekehrt

Beim Umrechnen von römischen Zahlen in arabische Dezimalzahlen haben wir uns mit dem Thema Äquivalenzklassen befasst. Da erschöpfendes Testen aufgrund enormer Komplexität in der Softwareentwicklung unmöglich ist, ist es sinnvoll, entlang von Äquivalenzklassen und ihren Grenzbedingungen zu testen. Ziel dabei ist, die wichtigsten Tests (z.B. Grenzfälle) zu finden, um den Algorithmus zu vervollständigen.

Primfaktorzerlegung

Beim Lösen der Aufgabe haben wir uns mit der Triangulationstechnik der testgetriebenen Softwareentwicklung beschäftigt. Die Triangulationsmethode stammt aus der Radartechnik und ermöglicht, ein Ziel – üblicherweise Flugzeuge – durch das Einsetzen von zwei oder mehreren Radars möglichst genau zu lokalisieren. In der Softwareentwicklung wird die Triangulationsmethode angewendet, um sich die noch anfangs unbekannte Lösung für ein bestimmtes Problem in kleinsten Schritten zu erarbeiten.

Aber was sind jetzt eigentlich Coding Dojos?

Der Begriff "Dojo" bezeichnet in Kampfsportarten wie z.B. beim Karate, den Trainingsraum, in dem die sogenannten "Katas" – vorgegebene Bewegungsabläufe – wiederholt und trainiert.

Beim Coding Dojo geht es genau um diese regelmäßige Wiederholung von Abläufen – die Katas sind in diesem Fall kleine Übungsaufgaben.

Die Teilnehmer arbeiten dabei an der gleichen Codebasis und erweitern diese abwechselnd. Und genau das ist ein wichtiger Aspekt, denn in der Softwareentwicklung startet man nicht immer auf der grünen Wiese. Meist übernehmen Softwareentwickler Code, der bereits von anderen entwickelt wurde, und müssen auf diesem aufbauen – oder den Mut haben, ihn zu löschen und doch neu anzufangen.

Coding Dojo mit Kollegen – Zwei Kollegen arbeiten dabei abwechselnd an einem Arbeitsplatz

Mit unseren Coding Dojos wollen wir leidenschaftliche Softwareentwickler dabei unterstützen, die Grenzen und Möglichkeiten ihrer – oder auch einer für sie neuen – Programmiersprache zu testen. Sie stehen dabei immer wieder vor neuen Herausforderungen und experimentieren im Team an verschiedenen Lösungen.

Dabei entwickeln sie transparent und kommunizieren ihre Ideen und Lösungsansätze offen, wodurch die Teilnehmer andere Denkweisen und Entwicklungsmöglichkeiten kennenlernen. Die Coding Dojos schlagen also zwei Fliegen mit einer Klappe: Die Teilnehmer lernen nicht nur konkrete, fachliche Abläufe zu perfektionieren, sondern stärken (hoffentlich) auch ihre Teamfähigkeit.

Ich persönlich würde in Projekten bevorzugt mit Kollegen zusammen arbeiten wollen, die sich die vier goldenen Regeln von Kent Beck zu Herzen nehmen – und diese z.B. mit Hilfe von Coding Dojos zu perfektionieren lernen. Die Zusammenarbeit macht so nicht nur mehr Spaß, die Erfolgswahrscheinlichkeit eines solchen Projektes ist auch höher. Dafür lege ich meine Hand ins Feuer ;)

Ihr wollt mehr über gute Softwareentwicklung erfahren? Dann schaut doch mal bei einem unserer Codings Dojos vorbei – zum Beispiel in Paderborn, Leipzig oder Frankfurt – oder stöbert weiter in unserem Blog. Das Thema testgetriebene Entwicklung könnte euch interessieren.

Erfahrt mehr über testgetriebene Entwicklung

Über Muhammad Ali Kazmi

Muhammad Ali Kazmi ist Leiter des Standortes Frankfurt der itemis AG. Als Scrum Master und Agile Coach berät er seit mehreren Jahren Kunden im Finanzsektor und Verlagswesen.