Coding Dojo Berlin

Letzte Woche waren Ralf und ich zu Gast bei der Berliner Dojo Gruppe. Mike Bild und Marco Rasp haben das Dojo organisiert, ihnen dafür ein großes Dankeschön!

Obschon wir am Tag zuvor unseren ersten Probelauf für den prio.walk absolviert haben, waren wir in Berlin wieder gut auf den Beinen. Vom Alex ging es gut 3km zu Fuß zum Veranstaltungsort. Dort erwartete uns eine Gruppe von 15 Entwicklern. Wir haben vorgeschlagen, die Kata BankOCR zu lösen. Da die Gruppe diese Kata noch nicht bearbeitet hatte, wurde der Vorschlag angenommen. Anschließend haben wir kurz erläutert, dass wir den weiteren Verlauf des Dojos in drei Phasen aufteilen möchten:

  • In der ersten Phase geht es um das Verstehen der Anforderungen sowie den Entwurf einer Lösung.
  • Die zweite Phase befasst sich mit der Implementierung nach TDD.
  • In der dritten Phase reflektiert die Gruppe über den Abend.

Dabei sehen wir in der ersten und letzten Phase den Schwerpunkt auf echter Gruppenarbeit, also alle arbeiten gemeinsam. In der mittleren Phase wollten wir den Schwerpunkt eher auf die Arbeit eines einzelnen legen.

Los ging es mit den Anforderungen. Am Flipchart wurden Beispiele für die Ziffern angeschrieben und die Gruppe fragte nach, bis alle Unklarheiten beseitigt waren. Dabei zeigte sich schon, dass manchmal die Begriffe durcheinander gingen. Zahl und Ziffer auseinander zu halten ist nicht wirklich schwer, aber im Eifer des Gefechts geht da schon mal etwas Präzision verloren. Daher haben wir vorgeschlagen, die Begriffe der Domäne “BankOCR” zu sammeln und in Beziehung zu setzen. So kamen Begriffe wie OCRZiffer, OCRZahl, Textzeile, OCRZeile und weitere zusammen. Durch diese Diskussion wurde das Verständnis der Gruppe für die Problemstellung vertieft. Vor allem wurde aber eine gemeinsame Sprache, die sogenannte ubiquitous language) geschaffen, in der die Gruppe sich nun viel präziser unterhalten konnte. Die Gefahr von Missverständnissen und aneinander-vorbei-Reden wurde dadurch reduziert.

Letzter Schritt der ersten Phase war dann der Entwurf. Wir erachten es für notwendig, vor dem Kodieren einen Entwurf zu erstellen. In größeren Kontexten mag es dabei um Komponenten gehen, in kleineren Aufgabenstellungen, so wie bei dieser, eher um Klassen und Methoden. Die Gruppe machte unterschiedliche Vorschläge zur Notation eines Entwurfs am Flipchart. Dabei wurden nicht nur grafische Entwürfe diskutiert, sondern auch versucht, rein textuell zu arbeiten. Es ergab sich eine lebhafte und sehr fruchtbare Diskussion über die Art und Weise des Softwareentwurfs. Das hat uns sehr gefreut, denn wir haben zu keinem Zeitpunkt den Eindruck gehabt, dass die Gruppe lieber mit TDD losgelegt hätte. Wir hatten uns im Vorfeld gefragt, ob die Gruppe sich darauf einlassen würde, vor der Implementierung zu planen. Erfreulicherweise stand das nicht wirklich in Frage.

Tja und dann? Kritiker werden uns nun vielleicht vorhalten, wir hätten gar kein Coding Dojo veranstaltet. Denn die Zeit war uns davon gelaufen, wir haben keine einzige Zeile Code geschrieben. Die Gruppe hat dies in der nachfolgenden Reflexion jedoch nicht bemängelt. Im Gegenteil. Alle haben zum Ausdruck gebracht, an diesem Abend etwas gelernt zu haben. Und Spaß hat es auch gemacht. Ob man den Abend nun Coding Dojo oder Workshop oder bunten Abend nennt… mir ist es fast egal. Wichtig ist festzuhalten, dass wir zu keiner Zeit die Absicht hatten, das Kodieren unter den Tisch fallen zu lassen. Dann hätten wir dies im Vorfeld kommuniziert und nicht mehr von einem Coding Dojo gesprochen. Es hat sich so entwickelt und die Gruppe war zufrieden. Ich gestehe aber, wir haben im Vorfeld überlegt, ob wir nicht mal ein Architektur Dojo anbieten sollen. Dass es in Berlin ungewollt zur Premiere kam ist vielleicht eine Bestätigung dafür, dass es nicht immer ums Kodieren gehen muss.

Dass der Entwurf so lange gedauert hat, war vor allem der Tatsache geschuldet, dass die Gruppe noch keine gemeinsame Entwurfssprache gefunden hatte. Wenn die Gruppe solche Entwurfsphasen in ihren Dojos häufiger gemacht hat, wird konsent darüber entstehen, wie Entwürfe am Flipchart notiert werden. In unseren Seminaren führen Ralf und ich die Gruppen in dieser Phase sehr stark. Hier im Dojo haben wir nicht versucht, der Gruppe “unsere” Notation aufzudrängen, wir haben sie nicht einmal vorgeschlagen. Dadurch konnte die Vielfältigkeit innerhalb der Gruppe zum Vorschein kommen. Auch das haben die Teilnehmer als sehr angenehm und lehrreich empfunden.

Nach dem Dojo haben wir den Abend noch beim Bierchen ausklingen lassen. Und dann stand noch eine kleiner Fußmarsch zurück zum Alex an. Mir taten hinterher ordentlich die Füße weh ;-)

Kick it on dotnet-kicks.de

2 Responses to “Coding Dojo Berlin”

  1. Mike Bild Says:

    Hi Stefan,

    es war, trotz der vielen neuen Gesichter, ein sehr lehrreicher und vorallem kommunikativer Abend. Ich für meinen Teil hatte viel Spaß und freue mich auf den nächsten CodingDojo mit einer gemeinsamen BankOCR Kata Implementierung. Die gemeinsam erstellte Concept Map mit einem Entwurf der Domänenterminologie (ubiquitous language) und der Beziehungen, sowie einer ersten Modelierung der an den Prozessschritten beteiligten Datenstrukturen, Datenflüssen und Funktionseinheiten auf abstrakter, Implementierungsunabhängiger Ebene im Team war ein guter Anfang für eine strukturierte Implementierung bei einem der nächsten CodingDojos.

    Gegen Architektur/Design Dojos, Modelierungs Dojos, Kommunikations Dojos, Refaktoring Dojos, Technologie Dojos, XYZ Dojos ist ja nichts einzuwenden. Im Gegenteil – Dojos mit Schwerpunkten sind doch eine gute und (wie bemerkt) gewünschte (Weiter)Entwicklung. Mal überlegen, wie das gut kommuniziert und umgesetzt werden kann.

    Dank nachmal und besten Gruß, Mike

  2. Ilker Cetinkaya Says:

    Ich gebe Mike recht. Es kann ruhig eine Vielzahl von Dojo’s, Workshops oder wie auch immer geben. Diversität ist etwas schönes und förderliches.

    Dennoch: Für mich kann es kein Coding Dojo ohne Coding geben. Das ist für mich genauso wie Rennfahren ohne Rennauto, oder Fußball ohne Fußball.

    Mal abgesehen davon, dass es für mich ein Coding Dojo ohne Coding nicht geben kann, finde ich deinen Bericht erfrischend locker. Man sollte das alles nicht so eng sehen und kann auch mal eine nette Unterhaltung haben und etwas über Design und Herangehensweisen plaudern.