Coding Dojos in der Praxis
Inhaltsverzeichnis zum Aufklappen und eine Zusammenfassung zum Hören
Die besonderen Chancen von Coding Dojos
Drei Beispiele für Coding Katas
Kollaboration im Coding Dojo
Mehr lernen durch Constraints
Fazit: Warum Coding Dojos so wirkungsvoll sind
Neu: t2informatik Blogcast: Coding Dojos in der Praxis – eine Zusammenfassung zum Hören in 2:00 Minuten
Ein geschützter Raum des Lernens in der Softwareentwicklung
„Ich kann mir keinen besseren Ort zum Lernen vorstellen als ein Coding Dojo.“ Diesen Satz sagte ein Kollege nach unserem dritten gemeinsamen Dojo. Wir sind beide agile Softwareentwickler und hatten gerade fünf Stunden lang zusammen mit sechs weiteren Entwicklern an der „Mars Rover Kata“ gearbeitet. Zwei zusätzliche Regeln machten die Übung noch spannender: Wir durften weder eine Maus benutzen noch ein „if-else“ verwenden.
Etwa einmal im Monat nehmen wir uns bewusst aus dem Projektalltag heraus. Dann nutzen wir die Zeit, um neue Programmiersprachen oder Frameworks auszuprobieren, Entwicklungsmethoden zu trainieren oder gezielt an einer technischen Fragestellung zu arbeiten. Für uns hat sich dieses Format so bewährt, dass wir inzwischen auch Coding Dojos in Unternehmen begleiten – mit durchweg positiver Resonanz.
Was ist ein Coding Dojo?
Der Begriff „Dojo“ (jap. Dōjō, 道場) stammt aus dem Kampfsport und bedeutet „Ort des Weges“ – sinngemäß: ein Raum des Lernens. Im Kampfsport werden dort Techniken eingeübt und verinnerlicht. Ein zentrales Element dabei sind sogenannte Katas: stilisierte Übungsabläufe, mit denen bestimmte Bewegungen und Prinzipien trainiert werden.
Dieses Konzept lässt sich in die Softwareentwicklung übertragen: Coding Dojo ist ein Trainingsformat für Softwareentwickler:innen. Entscheidend ist dabei, dass es in einem geschützten Raum stattfindet: Ohne äußere Störungen, ohne Produktivitätsdruck, ohne reale Projektverantwortung können gemeinsam neue Praktiken oder Technologien ausprobiert werden.
Die Gruppengröße liegt meiner Erfahrung nach idealerweise zwischen zwei und acht Personen. Wie viele Teilnehmende sinnvoll sind, hängt jedoch auch vom jeweiligen Thema des Coding Dojos ab. Entscheidend ist, dass alle aktiv mitarbeiten können. Ein Coding Dojo ist gemeinsames Training, keine Veranstaltung für Zuschauer. Am Ende reflektieren die Teilnehmenden gemeinsam die gemachten Erfahrungen und diskutieren, welche Vorteile, Grenzen und möglichen Einsatzfelder das neu Gelernte in der Praxis hat.
Coding Katas sind klar definierte Übungsaufgaben, mit denen Technologien, Methoden, Tools oder Praktiken im Coding Dojo praktisch erprobt werden. Anders als im Kampfsport geht es dabei jedoch nicht darum, feste Abläufe immer wieder zu wiederholen oder einen bestimmten Lösungsweg auswendig zu lernen. Im Coding Dojo steht vielmehr das kreative Finden von Lösungen im Mittelpunkt. Selbst wenn dieselbe Kata mehrfach bearbeitet wird, verlaufen sowohl der Weg zur Lösung als auch das Ergebnis jedes Mal anders.
Um eine Kata noch spannender zu machen, können zusätzliche Rahmenbedingungen eingeführt werden. Diese sogenannten Constraints erhöhen gezielt den Schwierigkeitsgrad, oft auf bewusst ungewöhnliche Weise. Dadurch bleibt das Training spielerisch und zugleich herausfordernd. Gleichzeitig werden Kommunikationsmuster im Team sichtbar, was im Arbeitsalltag häufig zu wertvollen Aha-Momenten führt.
Die besonderen Chancen von Coding Dojos
Coding Dojos sind bewusst hands-on angelegt. Statt theoretischer Schulungen zu einem Thema liegt der Fokus auf dem gemeinsamen Erlernen und Üben in einem geschützten Raum. Die Experimentierfreude wird bewusst gefördert und Spaß an der Sache spielt eine ganz zentrale Rolle!
Voraussetzung dafür ist gegenseitiger Respekt, um eine gute Lernatmosphäre frei von Angst zu schaffen. Dazu gehört eine Kultur, in der Fehler selbstverständlicher Teil des Lernweges und Experimente ausdrücklich erwünscht sind.
Die Constraints bieten die Möglichkeit, ein Coding Dojo mit Blick auf die Zusammensetzung der Gruppe weiter auszugestalten und dem Ganzen einen besonderen Kniff zu geben. Sind die Teilnehmenden erfahren oder arbeiten sie auch im Berufsalltag zusammen, verhindert man so Routinen und ermöglicht die Freisetzung einer ganz neuen Motivation, um gemeinsam Herausforderungen zu meistern.
Am Ende des Tages schaut man zurück und wird feststellen, dass man eine ordentliche Portion neuer Erfahrung gesammelt hat. Sei es mit einer neuen Technologie oder mit einer neuen Art, gemeinsam Software zu entwickeln. Oft ist beides der Fall.
Drei Beispiele für Coding Katas
Es gibt viele verschiedene Arten von Coding Katas. Sie geben in der Regel ein klar umrissenes, meist bewusst vereinfachtes Szenario vor, innerhalb dessen sich Entwicklerinnen und Entwickler mit Blick auf eine bestimmte Technik, Methode oder Vorgehensweise ausprobieren können. Ein zentraler Punkt ist dabei, sich auf verschiedene Lösungswege einzulassen. Im Arbeitsalltag ist es in der Softwareentwicklung oft wichtig, flexibel auf Herausforderungen reagieren zu können. Es wird denen deutlich leichter fallen, die in Coding Dojos regelmäßig verschiedene Ansätze zur Lösungsfindung ausprobiert haben.
Beispiel Mars Rover Kata
Diese Kata gibt es in vielen Varianten. Hier eine einfache davon:
Aufgabe:
Sie sind Teil eines Teams, das den Mars erforscht. Es sollen ferngesteuerte Fahrzeuge – die Rover – auf die Oberfläche geschickt werden. Sie entwickeln eine API, welche die von der Erde gesendeten Befehle in Anweisungen übersetzt, die der Rover versteht und ausführt.
Anforderungen:
- Gegeben ist der Startpunkt (x, y) des Rovers, dessen Ausrichtung (N, S, O, W) sowie eine Liste mit Hindernissen (x, y), welche sich auf der Karte befinden.
- Vereinfachte Annahme: Der Rover ist auf einem quadratischen Plateau gelandet, welches in 100×100 Felder aufgeteilt wird.
- Der Rover empfängt eine Zeichenfolge mit Befehlen.
- ‘F’: Bewegung vorwärts; ‘L’: Drehung nach links; ‘R’: Drehung nach rechts.
- Nach Verarbeitung der Zeichenfolge soll die Endposition und Ausrichtung ausgegeben werden.
- Die Hinderniserkennung erfolgt vor jeder Bewegung zu einem neuen Feld. Wenn eine bestimmte Befehlssequenz auf ein Hindernis stößt, bewegt sich der Rover bis zum letzten möglichen Punkt, bricht die Sequenz ab und meldet das Hindernis.
- Der Rover darf nicht vom Plateau fallen: Ränder werden wie Hindernisse behandelt.
Je nach Ziel des Dojos können Sie die Aufgabenstellung vereinfachen oder erweitern. So können Sie beispielsweise Hindernisse oder die Begrenzung des Plateaus weglassen und mit einer unendlich großen Welt arbeiten. Wenn Sie die Aufgabe komplexer gestalten möchten, können Sie etwa eine kugelförmige Welt modellieren, bei der eine korrekte Umrundung implementiert werden muss. Eine weitere Variante besteht darin, statt eines kartesischen Gitters ein Polarkoordinatensystem zu verwenden.
Beispiel Refactoring Kata
Bei einer Refactoring Kata – ein bekanntes Beispiel ist die Gilded Rose Refactoring Kata von Emily Bache [1] – erhalten die Teilnehmenden eine bestehende Codebasis sowie eine Liste von Anforderungen. Ihre Aufgabe besteht darin, ein bestimmtes Verhalten zu implementieren und gleichzeitig die Softwarequalität zu verbessern.
Dabei geht es nicht darum, möglichst schnell irgendeine Lösung zu finden. Stattdessen vergleichen Sie unterschiedliche Lösungsansätze und bewerten deren Qualität.
- Welche Struktur ist wartbarer?
- Welche Lösung ist klarer?
- Welche ist testbarer?
Die Teilnehmenden probieren verschiedene Ansätze aus und reflektieren anschließend gemeinsam über die Ergebnisse.
Ein wichtiges Learning dabei: In der Softwareentwicklung gibt es für viele Aufgaben mehrere mögliche Lösungen. Sie sind jedoch nicht alle gleich gut. Das Training schärft den Blick für Codequalität und für strukturelle Entscheidungen im Design.
Agility Katas
Agility Katas – wie zum Beispiel die CSV-Viewer Kata der CCD School [2] – orientieren sich stärker am Prinzip wiederholter Durchläufe, das auch aus dem Kampfsport bekannt ist.
Dabei durchlaufen Sie eine Aufgabe in mehreren Iterationen. Mit jeder Runde verändern sich die Anforderungen oder werden komplexer. Ziel ist es, den Umgang mit sich entwickelnden Anforderungen zu trainieren.
Auf diese Weise lassen sich typische Herausforderungen aus realen Projekten simulieren. Sie üben, mit wechselnden Anforderungen umzugehen und Ihre Lösung Schritt für Schritt anzupassen.
Kollaboration im Coding Dojo
Neben technischen Themen lassen sich in Coding Dojos auch Praktiken der agilen Softwareentwicklung gezielt üben, für die im Arbeitsalltag oft wenig Raum bleibt. Dazu gehören zum Beispiel Pair Programming oder Ensemble Programming.
Abseits des Projektalltags, aber mit einer klaren Aufgabe, können Sie diese Formen der Zusammenarbeit praktisch ausprobieren. Sie erleben unmittelbar, wie sich die gemeinsame Arbeit anfühlt und welche Vorteile sie haben kann, sei es an einem gemeinsamen Rechner oder remote über einen geteilten Bildschirm. Gleichzeitig werden auch die Grenzen dieser Praktiken sichtbar.
Beim Pair Programming, oft einfach als Pairing bezeichnet, arbeiten zwei Softwareentwickler gemeinsam an einem Rechner. Eine Person übernimmt die Rolle des Drivers. Der Driver bedient den Rechner und schreibt den Code. Die zweite Person ist der Navigator. Der Navigator behält den Überblick, denkt über die nächsten Schritte nach und weist auf mögliche Verbesserungen oder offene Punkte hin. Dadurch kann sich der Driver ganz auf das Schreiben des Codes und die Arbeit mit der Entwicklungsumgebung konzentrieren. In der Regel wechseln Driver und Navigator in regelmäßigen Abständen die Rollen.
Beim Ensemble Programming arbeiten drei oder mehr Personen gleichzeitig an einem Rechner an derselben Aufgabe. Der Code entsteht gemeinschaftlich durch die unterschiedlichen Perspektiven, Erfahrungen und das Wissen aller Beteiligten.
Der Begriff hat sich als Alternative zu Mob Programming etabliert, da er den kooperativen und wertschätzenden Charakter dieser Arbeitsweise stärker betont. Der grundlegende Ablauf ähnelt dem Pair Programming, wird jedoch auf ein größeres Team übertragen. Auch hier gibt es in der Regel einen Driver und einen Navigator, deren Rollen regelmäßig wechseln. Darüber hinaus können zusätzliche Rollen definiert werden. Häufig gibt es zum Beispiel einen Facilitator. Diese Person achtet auf die Teamdynamik, unterstützt bei Meinungsverschiedenheiten und sorgt dafür, dass Respekt, Neugier und konstruktiver Austausch erhalten bleiben.
Mehr lernen durch Constraints
Constraints bringen zusätzliche Abwechslung und neue Perspektiven in ein Coding Dojo. Dabei handelt es sich um bewusst gesetzte Einschränkungen, die das Arbeiten an einer Kata anspruchsvoller machen und der Aufgabe eine weitere Dimension hinzufügen. Einige typische Beispiele sind:
Blind Navigator
Beim Constraint „Blind Navigator“ darf der Navigator den Bildschirm nicht sehen. Dadurch sind beide Rollen gezwungen, besonders präzise und klar miteinander zu kommunizieren. Missverständnisse werden schnell sichtbar, und viele implizite Annahmen müssen plötzlich ausgesprochen werden. Für Softwareteams ist dies ein äußerst wirksames Kommunikationstraining.
Keine Schleifen
Bei diesem Constraint dürfen keine Schleifen wie for, while oder do-while verwendet werden. Dadurch setzen Sie sich intensiver mit alternativen Lösungsansätzen wie Rekursion oder Funktionen höherer Ordnung auseinander. Das sind Funktionen, die andere Funktionen als Parameter erhalten oder zurückgeben.
Keine Conditionals
Hier dürfen klassische Entscheidungsstrukturen wie if, else, when oder switch nicht eingesetzt werden. Dadurch entstehen ungewöhnliche Lösungswege. Oft kommen dabei Konzepte wie Polymorphismus oder Lookup-Tabellen zum Einsatz.
No-Mouse
Bei diesem Constraint arbeiten Sie vollständig ohne Computermaus. Alle Aktionen werden ausschließlich über Tastenkombinationen ausgeführt. Dadurch lernen die Teilnehmenden, die Shortcuts ihrer Entwicklungsumgebung deutlich besser zu nutzen.
Hot Potato
Beim Hot-Potato-Constraint wechselt die Rolle des Drivers in kurzen Abständen, zum Beispiel alle zwei Minuten. So kommen viele Teilnehmende aktiv zum Zug, und das Team bleibt in Bewegung.
Constraints sorgen dafür, dass Aufgaben spielerisch und mit viel Energie angegangen werden. Gleichzeitig zwingen sie Teams dazu, bewusst anders zu arbeiten als im Alltag. Dadurch entstehen neue Lösungswege, eingefahrene Muster werden aufgebrochen und kreatives Denken wird gefördert.
Fazit: Warum Coding Dojos so wirkungsvoll sind
Coding Dojos schaffen etwas, das im normalen Projektalltag selten möglich ist: einen geschützten Raum zum Lernen. Ohne Lieferdruck, ohne unmittelbare Projektverantwortung und ohne Angst vor Fehlern können Entwicklerinnen und Entwickler neue Ideen ausprobieren, miteinander experimentieren und voneinander lernen.
Gerade diese Kombination aus praktischem Arbeiten, spielerischen Herausforderungen und gemeinsamer Reflexion macht den besonderen Wert eines Coding Dojos aus. Techniken werden nicht nur verstanden, sondern tatsächlich erlebt. Gleichzeitig stärkt das gemeinsame Arbeiten Kommunikation, Vertrauen und die Fähigkeit, unterschiedliche Lösungswege zu erkunden.
Besonders hilfreich sind Coding Dojos unter anderem in folgenden Situationen:
1. Einführung neuer Praktiken
Wenn Teams mit TDD, Pair Programming oder neuen Refactoring-Techniken experimentieren möchten, bietet das Dojo einen sicheren Rahmen, um diese Praktiken auszuprobieren und ihre Wirkung selbst zu erleben.
2. Aufbrechen von Gewohnheiten
Teams, die über lange Zeit ähnlich arbeiten, entdecken im Dojo alternative Denk- und Lösungswege, ohne ihren Projektalltag sofort umstellen zu müssen.
3. Umgang mit Legacy Code
Techniken wie TDD oder strukturierte Refactorings lassen sich gezielt an vereinfachten Beispielen trainieren, bevor sie auf komplexe bestehende Codebasen angewendet werden.
4. Förderung von Kommunikation
Die gemeinsame Arbeit an einer Kata macht Kommunikationsmuster sichtbar und verbessert die Zusammenarbeit. Eine Fähigkeit, die in komplexen Softwareprojekten entscheidend ist.
5. Erweiterung des individuellen Werkzeugkastens
Wer neue Methoden und Technologien bewusst übt, erweitert seinen persönlichen Werkzeugkasten. Dadurch wächst die Fähigkeit, in realen Projekten situationsgerecht zu entscheiden, welche Lösung sinnvoll ist.
Am Ende ist ein Coding Dojo weit mehr als eine Übungseinheit. Es ist ein Ort, an dem Teams lernen, gemeinsam besser Software zu entwickeln. Am besten probieren Sie es einfach mal aus.
Extra-Bonus
Hier finden Sie 3 zusätzliche Fragen zu Coding Dojos, die Philipp Zug beantwortet (bitte auf Plus drücken):
Brauchen Coding Dojos einen geschulten Trainer oder Facilitator?
Philipp Zug: Im Prinzip kann jeder ein Coding Dojo selbst organisieren und durchführen. Erfahrungsgemäß verlaufen die ersten Sessions jedoch oft noch etwas holprig, wenn den Teilnehmenden die Erfahrung mit diesem Format fehlt.
Eine typische Gefahr entsteht, wenn Kolleginnen und Kollegen aus demselben Team gemeinsam teilnehmen. Dann bleiben bestehende Teamdynamiken und Rollen oft bestehen. Für einen geschützten Lernraum ist das jedoch problematisch. Wer im Arbeitsalltag dominant auftritt oder gewohnt ist, Ansagen zu machen, übernimmt diese Rolle häufig auch im Dojo. Ohne eine moderierende Person wird sich dieses Verhalten meist nicht von selbst verändern.
Ein weiterer Knackpunkt betrifft die vereinbarte Arbeitsweise im Dojo. Häufig geraten neue Methoden schnell in den Hintergrund und die Teilnehmenden fallen in ihre gewohnten Muster zurück. Ein Beispiel ist Test-driven Development (TDD). Obwohl das Dojo genau dazu dienen soll, TDD zu üben, beginnen manche Teilnehmenden sofort damit, Code zu schreiben, ohne zuvor einen Test zu formulieren. Ein erfahrener Faciltator kann hier eingreifen. Oft reicht es schon, gezielte Fragen zu stellen, damit die Gruppe selbst erkennt, dass der nächste Schritt eigentlich ein Test sein sollte.
Solche Situationen kann ein erfahrener Facilitator gut einschätzen und bei Bedarf aufgreifen. So bleibt das Dojo ein Lernraum, in dem neue Erfahrungen tatsächlich möglich werden.
Während des Dojos können Trainerinnen und Trainer außerdem direkt Feedback geben, kleine Hinweise einstreuen oder alternative Lösungswege vorschlagen. Wichtig ist dabei, den Teilnehmenden zunächst Raum zum Ausprobieren zu lassen. Dazu gehört auch, Fehler zu machen oder sich zeitweise festzufahren.
Nach einer Weile lassen sich solche Situationen gut nutzen, um neue Techniken einzubringen. Wenn beispielsweise viele Tests entstehen, die sich stark ähneln, bietet sich die Gelegenheit, über Parameterized Testing zu sprechen. Diese Technik hilft dabei, Tests kompakter und weniger redundant zu schreiben.
Gerade für Gruppen mit wenig Erfahrung kann es daher sehr hilfreich sein, ein Coding Dojo von ein oder zwei Facilitatoren begleiten zu lassen. Sie unterstützen fachlich, achten auf die Lernatmosphäre und sorgen dafür, dass das Training für alle Beteiligten zu einer guten Erfahrung wird.
Funktionieren Coding Dojos nur gemeinsam vor Ort oder auch remote?
Philipp Zug: Beides funktioniert. Für ein Coding Dojo vor Ort benötigen Sie mindestens einen Rechner in einem möglichst ruhigen Raum, der genug Platz für alle Teilnehmenden bietet. Wichtig ist außerdem, dass der Bildschirm für alle gut sichtbar projiziert werden kann.
Wenn Sie Praktiken wie Mob- oder Pair Programming ausprobieren möchten, kann es sinnvoll sein, sich spontan in kleinere Gruppen aufzuteilen und gemeinsam an jeweils einem Rechner zu arbeiten.
Auch bei einem Remote-Dojo lässt sich das gut umsetzen, zum Beispiel über Breakout-Räume, in denen kleine Gruppen parallel zusammenarbeiten.
Welche Tools eignen sich für Coding Dojos, die remote durchgeführt werden?
Philipp Zug: Für Remote-Coding-Dojos eignen sich gängige Kollaborations-Tools. Sehr empfehlen kann ich IntelliJ Plugin Code With Me. [3]
Hier läuft die Entwicklungsumgebung lokal bei einem Teilnehmer oder einer Teilnehmerin, andere können sich remote dahin verbinden.
Großer Vorteil: Nur eine Person braucht das technische Setup wie IDE etc. Das minimiert das technische Setup bei den anderen Teilnehmenden. Die Notwendigkeit zum Screen Share oder zur Übergabe des Codes entfällt. Damit ist die Einstiegshürde und der Aufwand zu Beginn sehr gering. Erfahrungsgemäß kann die technische Einrichtung sonst schnell mal ein Zeitfresser werden und zu Frustration führen.
Nachteil: Der Code steht nicht unter Versionskontrolle, alle Teilnehmenden müssen IntelliJ nutzen (was nicht allen gefällt) und der Host benötigt eine kostenpflichtige Lizenz.
Eine Alternative ist Visual Studio: Live Share. [4]
Für Screenshare, Coder-Übergabe und Timekeeping empfehle ich Mob.sh [5] und Git.
Vorteil: Jeder hat das eigene, gewohnte Setup mit eigener IDE. Der Code ist gleich in Git.
Nachteil: Jeder MUSS sein eigenes Setup, die IDE usw. verfügbar haben, bevor das Dojo beginnen kann.
Hinweise:
Suchen Sie nach einer Begleitung für Ihr erstes Coding Dojo? Dann nehmen Sie gerne Kontakt mit Philipp Zug auf. Sehr gerne helfen er und seine Kolleg:innen von Colenet nicht nur bei der Moderation oder technischen Fragen, sondern bringen bei Bedarf auch die notwendige Infrastruktur mit.
[1] Gilded Rose Refactoring Kata
[2] CSV-Viewer Kata
[3] IntelliJ Plugin Code With Me
[4] Visual Studio: Live Share
[5] Mob.sh
Im Internet gibt es verschiedene Quellen mit nützlichen Informationen zu Coding Katas:
Wollen Sie als Multiplikatorin oder Meinungsführer über Coding Dojos diskutieren? Dann teilen Sie diesen Beitrag in Ihren Netzwerken.
Im t2informatik Blog finden Sie weitere Beiträge aus dem Hause Colenet, u. a.:

Philipp Zug
Philipp Zug ist agiler Softwareentwickler und Trainer bei der Colenet GmbH. Er unterstützt Teams bei der Entwicklung hochwertiger Software mit agilen Methoden wie Scrum, Kanban und Extreme Programming und legt dabei besonderen Wert auf Software Craftsmanship, etwa durch Test Driven Development, Clean Code und Pair Programming.
Neben der Fullstack-Entwicklung von Web- und Mobile-Anwendungen mit Technologien wie Java, Spring Boot, TypeScript, Angular und Android begleitet er Teams beim Aufbau von Teststrategien, bei DevOps-Prozessen in der Google Cloud sowie bei Build- und Testautomatisierung.
Ein Schwerpunkt seiner Arbeit liegt im Coaching von Entwicklerinnen und Entwicklern im Arbeitsalltag, etwa durch Training on the Job und Pair Programming. Regelmäßig organisiert und moderiert er Coding Dojos und Code Retreats, um Teams praxisnah beim gemeinsamen Lernen und Experimentieren zu unterstützen.
Im t2informatik Blog veröffentlichen wir Beträge für Menschen in Organisationen. Für diese Menschen entwickeln und modernisieren wir Software. Pragmatisch. ✔️ Persönlich. ✔️ Professionell. ✔️ Ein Klick hier und Sie erfahren mehr.


