Coding Dojo. Im Team üben und Besser werden

13.03.2015 - Lesezeit ca. 5 Min - 1100 Wörter

Coding Dojo - Üben im Team

In einem früheren Artikel habe ich über Katas erzählt. Dort habe ich erklärt, wie man seine Fähigkeiten damit üben kann um besser zu werden. Die Durchführung von Katas ist eine Tätigkeit, die man alleine und für sich ausübt. Eine weitere Möglichkeit zu üben sind die sogenannten Coding Dojos.

Ich mache doch schön meine Katas. Was soll dann jetzt dieses Coding Dojo?

Ganz einfach ausgedrückt ist ein Coding Dojo eine Veranstaltung, in der eine Gruppe Menschen zusammen an der Lösung eines Problems arbeiten. Bei dieser Definition könntest du gleich sagen: „Aber das ist ja nicht anders als die übliche Zusammenarbeit im Team“. Das ist natürlich ein guter Punkt, den genauso wie im Team ist Zusammenarbeit einer der wichtigsten Bestandsteile eines Coding Dojos. Aber ein Coding Dojo ist viel mehr.

Das Dojo

Genauso wie „Kata“, stammt der Begriff Dojo aus den japanischen Kampfsportarten (Karate, Aikido, Judo, …). Ein Dojo ist der Ort, an dem man sich zum Trainieren zusammentrifft. Im übertragenen Sinne auch die Gemeinschaft, die sich dort trifft. Sinnbildlich findet also ein Coding Dojo statt, wenn sich eine Gruppe Softwareentwicklern trifft, um gemeinsam eine Übungsaufgabe, üblicherweise eine Kata, zu lösen.

Ziel eines Dojos ist zu lernen und zu üben. Dabei ist wichtig zu verstehen, dass jedes Erfahrungsniveau willkommen ist. Sowohl erfahrene Softwareentwickler als auch Neulinge oder weniger erfahrene profitieren vom in Dojo stattfindenden Austausch. Die einen lernen Neues, die anderen müssen in der Lage sein eigenes Wissen verständlich zu vermitteln. Abgesehen davon, es wäre nicht das erste Mal, dass ein erfahrener Entwickler während eines Dojos einiges dazu lernt 😉.

Ein Dojo ist ein sicherer Ort, indem Zusammenarbeit großgeschrieben wird, wo es Platz zum Ausprobieren gibt. Konkurrenzdenken lässt man draußen vor der Tür stehen. Gemeinsam an das Problem arbeiten und auch noch Spaß dabeihaben. Das ist es, was ein gutes Coding Dojo ausmacht.

Wie läuft ein Coding Dojo ab?

Als Erstes braucht man ein geeigneter Raum um das Dojo zu halten. Die einzigen Voraussetzungen sind, dass es genug Platz für alle Teilnehmer bieten soll, z. B. dass alle sitzen können. Im Raum sollte mindestens einen Rechner vorhanden sein und dieser sollte an einen Projektor oder an einen entsprechend großen Monitor angeschlossen sein, damit alle sehen können. Schon haben wir die nötige Ausrüstung und können loslegen.

Dojos dauern üblicherweise länger als Katas, wie lang ist von der Aufgabe und der Menge der Teilnehmer abhängig, aber mindestens 1 bis 1,5 Stunden solltet ihr einplanen.

Bei jedem Dojo gibt es auch eine Agenda, ein ganz grobes Beispiel wäre:

Der erste Teil ist bei mir relativ schnell durch. Meistens sind die Dojos im Kalender der Teilnehmer eingetragen (z. B. einmal wöchentlich) und wir haben öfters bereits darüber gesprochen welche Kata oder Aufgabe wir uns vornehmen möchten. Aber nichts ist im Stein gemeißelt und manchmal ändert sich das Thema auch im letzten Moment.

Dann geht es richtig los, die Teilnehmer arbeiten zusammen etwa 45 bis 60 Minuten, um das Problem zu lösen. Das ist nur ein Richtwert, wie bereits erwähnt bei komplexen Aufgabestellungen oder größeren Teilnehmerkreis ist länger auch in Ordnung.

Es ist ganz wichtig, dass nachdem die „Arbeit“ getan ist, eine Retrospektive stattfindet. Warum? Damit jeder der Teilnehmer die Zeit hat zu reflektieren, was während des Dojos passiert ist, was er oder sie gelernt hat, welche Schwierigkeiten haben uns aufgehalten und warum, was können wir im nächsten Dojo anders machen und / oder ausprobieren. All diese Fragen sind wichtig und helfen uns die Übung besser aufzunehmen und letztendlich werden wir dadurch bessere Softwareentwickler.

Dann sind wir schon fertig, das Dojo ist vorbei.

Wie gestaltet sich die Arbeit an der ausgewählten Kata?

Dafür gibt es unterschiedliche Varianten. Bei den meisten gibt es jedoch Ähnlichkeiten: Pair Programming, TDD und Baby steps sind üblicherweise gesetzt.

Wir schauen uns jetzt die am weitesten verbreitete Variante des Coding Dojos an.

Die Randori Kata

Bei dieser Variante sitzt ein Paar an der Tastatur, der Rest der Teilnehmer agiert als „Publikum“. Bevor es losgeht, sollte entschieden werden wie und wann das „Publikum“ intervenieren darf, um eigene Ideen und Vorschläge zu unterbreiten.

Die zwei Personen, die am Rechner sitzen, werden Driver und Navigator genannt. Der Driver übernimmt die Tastatur und schreibt, der Navigator führt den Driver auf den Weg zur Lösung des Problems. Bei der Programmierung werden TDD und Baby steps verwendet.

Driver und Navigator bleiben für eine bestimmte Zeitscheibe (Timebox) am Rechner, üblicherweise 5 bis 10 Minuten. Nachdem die Zeit abgelaufen ist, steht der Driver auf und setzt sich zum „Publikum“, der Navigator wird zum Driver und eine der Personen, welche in „Publikum“ saßen, übernimmt die Rolle des Navigators. Diese Rotation wird nach jeder Zeitscheibe durchgeführt, auf diese Art und Weise sollen alle Teilnehmer die Möglichkeit bekommen mindestens einmal an der Tastatur zu sitzen.

Wichtig dabei ist sich an das Timeboxing zu halten.

Das ist eigentlich alles. Es klingt komplizierter, als es in Wirklichkeit ist. 😊

Es ist auch möglich andere Techniken, wie zum Beispiel Ping-Pong zu verwenden. Darüber hinaus gibt es andere Varianten, wie zum Beispiel Prepared Kata oder Mobprogramming, welche beim Dojo verwendet werden können. Für den Anfang sollte aber die Randori ausreichen.

Gefahren beim Dojo

Wie bereits bei den Katas erwähnt, sollte auch beim Dojo immer eine Herausforderung da sein. Das Ziel ist zu üben und zu lernen und das erreichen wir nicht, wenn wir dauernd die gleichen Probleme auf die gleiche Art und Weise angehen.

Je erfahrener das Team ist, desto schwieriger sollten die Aufgaben ausfallen. Das bedeutet nicht zwangsläufig, dass die Aufgaben, welche man sich vornimmt, komplizierter werden müssen. Das ist nur eine der Möglichkeiten um die Komplexität zu erhöhen. Eine weitere Möglichkeit ist die Verwendung von sogenannten Constraints, auf Deutsch Zwänge oder Einschränkungen. Dabei handelt es sich um „Regeln“, die man bei der Übung beachten muss und die üblicherweise die Entwicklung oder die Zusammenarbeit zwischen Driver und Navigator erschweren sollen.

Bei Teams und Gruppen mit wenig Erfahrung in der Durchführung von Coding Dojos, hat sich als vorteilhaft erwiesen, sich eine Person zu holen, welche als Moderator fungieren kann, um auf die Form zu achten und mit Impulsen und Variation dabei zu helfen, dass die Dojos einen erfolgt für alle teilnehmenden sind.

Ich hoffe dieser Artikel, hat euch geholfen besser zu verstehen, warum Coding Dojos so ein wichtiges Werkzeug sind, um uns auf dem Weg zu besseren Softwareentwickler zu begleiten.


Wenn du das Lesen des Artikels genossen hast, würde ich mich freuen, wenn du es teilst. :-)