Es ist Mittwoch, 18:30 Uhr. Die „Bude“ im Microsoft Technology Center in Unterschleißheim ist gerammelt voll. Der Meetingraum ist für 20 Personen ausgelegt, knapp 30 versuchen mehr oder minder erfolgreich, sich im Raum ein Plätzchen zu ergattern. Freudige Gesichter, alle lächeln und sind locker – anscheindend. Doch irgendwie ist eine Spannung anzumerken. Es ist nicht so wie immer in München. Das MTC strahlt viel Professionalität aus. Man fühlt sich wie in Mitten einem wichtigen, kreativen und äußerst exklusiven Schaffenskreis.

Vorne sitzt Ralf Westphal, der Architekt, der Wissenvermittler, der Konferenzorganisator – kurzum eine .NET Lichtgestalt. Er klickt und tippt noch schnell Dinge in sein Laptop. Die Teilnehmer warten. Komisch, üblicherweise macht man Witze und redet über einige interessante Blogposts, bevor es losgeht. Ich hätte z.B. erwartet, dass einer in die Runde „Null oder nicht null, Hauptsache Ergebnis!“ wirft und so ein wenig die Runde auflockert. Doch Nein. Es liegt Konferenzduft in der Luft. Alle starren und warten.

18:45 Uhr – Es geht los: Nach ein paar einleitenden Worten und dem lieben Dank an Jan, dem Hüteträger und Evangelisten für die super Organisation der Location geht es schon los. Ralf ist am Zug. Was danach genau im Münchener .NET Coding Dojo passiert ist, beschreibt Ralf akribisch und meiner Meinung nach ziemlich treffend in seiner Retrospektive für das Coding Dojo. Inhaltlich kann ich dem kaum etwas hinzufügen und möchte mich nochmals bei Ralf für diese gute Session bedanken.

Doch ganz so unkommentiert möchte ich es dabei natürlich nicht belassen. Steffen, der vor kurzem sehr erfolgreich das Hambuger .NET Coding Dojo initiiert hatte, hat in einem Tweet seine Bedenken über den „Community-Gedanken“ geäußert. Seiner Meinung nach ist ein Coding Dojo keine „One-Man-Show“ mit Musterlösung. Ich habe ihm per Twitter schon geantwortet, möchte aber hier noch ein wenig detaillierter auf meine Auffassung eingehen.

Das „Format“ Coding Dojo

Ich hatte schon vor über einem halben Jahr einmal über das Ziel von Coding Dojo’s gebloggt. Damals, in einem Coding Dojo mit Pete, habe ich im Nachhinein mir einige Gedanken über das „Format“ Dojo gemacht. In besagtem Coding Dojo lief nämlich alles – also wirklich alles – gerade nicht so, wie es sich Pete und ich vorgestellt hatten. Wir hatten uns mit ein paar Kata’s vorbereitet und den Ablauf schon ein wenig vorgedacht. Aber es kam alles anders. Warum?

Die Antwort ist einfach: Weil wir es zugelassen haben. Wir haben eine Sache beherzigt: Ein Coding Dojo ist eine Veranstaltung für die Teilnehmer. Jeder sollte nach einem Dojo mit dem Gefühl nach Hause gehen können, dass er etwas gelernt hat. Im Coding Dojo mit dem KataBlog war den Teilnehmern die Komponentenorientierung und das IOC nicht so wichtig wie grundlegendere Themen, wie z.B. MVC als Pattern oder die HTTP-Request-Response-Pipeline von ASP.NET. Das haben wir beachtet und unseren Plan zurückgestellt.

Aber warum ein Coding Dojo ohne Coding?

Adaptiert auf das Coding Dojo von letzter Woche von Ralf lässt sich folgendes hinzufügen: Wir als Münchener .NET Coding Dojo Crew haben Ralf eingeladen, weil es die Teilnehmer – also wir, die Coding Dojo Community – so wollten. Wir haben Ralf nicht eingeladen, damit er eine Show abzieht. Wir haben Ralf auch nicht eingeladen, weil er der Ralf ist.

In einigen vorangegangenen Coding Dojo’s kam als Feedback der Teilnehmer immer wieder „zuwenig Architektur“, „zuwenig Design“, „zuwenig Vorgabe“. Als ich mit Ralf auf der VSOne darüber geredet habe, schlug er ein „Architektur-Dojo“ vor. „Super!“ dachte ich mir und freute mich, den Dojo-Teilnehmern mit einer Einladung ihren „Wunsch“ erfüllen zu können.

Wer beim .NET Coding Dojo vergangenen Mittwoch dabei war, der wird mir beipflichten, dass diesmal wirklich über Architektur, Design, Anwendungsaufbau und Komponenten-Orientierung ausgiebig diskutiert wurde. Ralf hat sein Versprechen gehalten. Er kam, dachte, designte und diskutierte. Genau so, wie es oftmals in Feedbackrunden vorheriger Dojo’s angefordert wurde.

Coding Dojo ist kein Workshop

Trotzdem. Es war anders als die vorherigen Coding Dojo’s. Ganz anders. Keine Diskussionen über die Kata-Wahl, keine Diskussion über Anforderungsanalyse, keine Design-Strittigkeiten. Statt dessen Ralf. Ralf wie er leibt und lebt. Das ist die Aufgabe, das ist die Vorgehensweise, das ist EBC, das ist State-Of-The-Art, das ist Regelwerk & Konvention. Punkt. Natürlich mit fester und stichhaltiger Argumentation und der Erläuterung der Beweggründe.

Aber irgendwie war es kein Coding Dojo so wie ich es kannte. Es gab hier und da mal Rückfragen an Ralf, „wieso“ und „weshalb“. Aber aktiv mitgemacht – aktiv Architektur gemacht – das hat meiner Meinung nach mehrheitlich Ralf getan. Ralf hat schon ab und an probiert per Rückfrage die Teilnehmer einzubinden. Doch andererseits gab es für die Teilnehmer nicht wirklich viele Optionen. Besser gesagt: Es war ein geplante Session, mit strukturierter Vorgehensweise und festem Rahmen. Da bleibt nicht viel Luft und Platz für anderes.

Man kann mir „als Veranstalter“ jetzt natürlich alles mögliche vorwerfen. Z.B. dass ich ja hätte eingreifen können, wenn es mir zu „passiv“ und zu „vorgetragen“ erscheint. Oder man könnte mir den Vorwurf machen, dass ich in den vorangegangen Coding Dojo’s einfach nur chaotisch in die Tasten gehauen habe, anstatt strukturiert vorzugehen und damit praktisch immer wieder so ein „wir brauchen Architektur“-Feedback provoziert habe. Ok, dann soll man mir die Vorwürfe machen. Meine Antwort dazu ist: Ich habe es zugelassen, weil es wichtig ist, Dinge zuzulassen. Darüber sollte man nachdenken.

Coding Dojo und Community

Jetzt transportiere ich mal meine persönliche Auffassung etwas deutlicher, damit es nicht wieder heisst, ich wäre zu objektiv oder würde mich hinter geschnörkeltem Satzbau verstecken. Ich persönlich denke, dass das letzte Coding Dojo absolut kein Coding Dojo war. Es war ein Architektur-Workshop mit Ralf Westphal. Und wenn ich das so sagen darf: Es war ein guter Architektur-Workshop. Aber es war für mich mit Sicherheit kein Coding Dojo. Es gab keine aktive Einbindung der Teilnehmer, es gab keine lockere Atmosphäre, es gab kein Coding und keine großen Diskussionen. Ich finde, das war kein Coding Dojo, wie ich es mir wünsche und wie ich es auch gut finde.

Aber meine Meinung ist nicht wichtig – das habe ich nach nun mehr als 50 Coding Dojo’s gelernt. Es ist nicht wichtig, wie ich Probleme löse. Es ist auch nicht wichtig, welches Framework ich verwende. Und es ist schon garnicht wichtig, wie ich Analyse, Architektur, Design oder Entwicklung betreibe. Denn das einzige was zählt im Coding Dojo sind die Akteure. Die Akteure im Coding Dojo sind die Teilnehmer. Das ist entscheidend.

Dojo = Lernen?

Wenn also die Teilnehmer des „Coding-Dojo’s“ mit Ralf in der Feedback-Runde sagen „Ja, das hat mir gut gefallen, ich habe super mitgemacht & viel gelernt“ – dann, ja dann ist es wohl ein Dojo gewesen. Vielleicht kein „Coding“ Dojo, aber es war ein echtes Dojo. Aber wenn die meisten kommentarlos und höflich klatschend das Dojo beenden, dann, ja dann war es wohl kein Dojo. Wie gesagt: Für mich war das kein Dojo – schon garnicht ein Coding Dojo. Aber das Feedback am Ende von Ralf’s Session war durchaus positiv. Also scheint es für einige Teilnehmer ein Dojo gewesen zu sein.

Natürlich möchte ich an dieser Stelle noch ein paar weitere Dinge loswerden. Ich möchte nicht, dass man die Definition des „Coding Dojo“‘s auf „Hat es dir gefallen?“, “Konntest Du mitmachen?” oder „Hast du etwas gelernt?“ reduziert. Ein echtes Coding Dojo hat einige weitere Parameter, die entscheidend sind für den speziellen, magischen Charakter und den guten Erfahrungsaustausch. Der aufmerksame Leser wird z.B. erkannt haben, dass ich nicht ein einziges Mal TDD erwähnt habe. Wenn Interesse daran besteht, die Bestandteile und das Format „Coding Dojo“ aus meiner Perspektive genauer kennenzulernen, dann bitte sagt mir das (schreibt einen Kommentar oder eine Email), und ich werde es niederschreiben.

Fazit & Ausblick

Abschließend möchte ich zu „Ralf’s Coding Dojo“ noch folgendes loswerden. Es war der Wunsch der Community und ich (und Ralf) haben versucht, diesem Wunsch gerecht zu werden. Es war eine gute Erfahrung. Ich habe viel daraus gelernt und ich denke, dass auch die Teilnehmer etwas mitnehmen konnten. Es war ein guter Architektur-Workshop und Ralf hat viel investiert, um den Teilnehmern seine Sicht zu zeigen und Wissen zu transportieren. Danke, Ralf.

Doch eines steht heute schon fest: das nächste .NET Coding Dojo, welches im Übrigen wieder ein ganz besonderes Dojo ist, wird mit absoluter Sicherheit ganz anders ablaufen. Nicht nur, weil diesmal nicht der Ralf eine Aufgabe stellen wird. Nein. Es wird ganz anders, weil die Partizipation und das aktive teilnehmen exemplarisch exerziert werden. Das nächste Münchener .NET Coding Dojo findet am 22. Juni im Rahmen des dotnetpro.powerday’s statt und hat den treffenden Titel „.NET Coding Dojo Empowered!“. Sei dabei und erlebe, wie man gemeinsam Lernen & Lehren kann, wie man gemeinsam eine Problemstellung mit Logik & Spaß lösen kann, wie man professionelle Software-Entwicklungs-Methoden im Team einsetzt! Es wird wieder einmal einzigartig und sehr lehrreich werden. Zur Anmeldung!

Comments
This article has 2 comments:

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • [...] und den...
    by Erstes internes CodingDojo bei der msu solutions GmbH in Halle » Rash thoughts about .NET, C#, F# and Dynamics NAV.
    on June 2nd 2010

    [...] und den Zielstellungen die Ralf Westphal in seinem Dojo in München abgehalten hat. Wie Ilker Cetinkaya auch schon geschrieben hat ist Ralf’s Dojo-Variante wahrscheinlich näher am klassischen [...]

  • Dojos sind Workshops!...
    by Mike Bild
    on May 31st 2010

    Dojos sind Workshops! Ich nenne sie mal Explorations-Workshops. Bestimmte Dinge zuzulassen oder manchmal aktiv zu fördern, dass ist Teil der Übungen und damit Lernens, der Erkenntnis und dem Zuwachs der Erfahrungen, auch aus oder vielleicht sogar gerade aus Fehlern, Ungereimtheiten, unschönen Hacks, Diskussion um Design, Architektur, Vergehensmodellen und Methodiken, Struktur, Regeln oder Implementierungen.
    Aus meiner Sicht wäre es einseitig, auf Dauer sogar falsch einen CodingDojo als reines Programmierertreffen zum Hacken von Code zu betrachten. Ich meine es entspricht auch nur selten dem realen Lebens eines Entwicklers. Viele Dinge sind heute über das codieren hinaus wichtig. Kürzere Entwicklungszeiten, höhere innere und äußere Qualität, knappe Budgets, viele parallel arbeitende Teams, stärkere Kundennähe, immer höhere Flexibilität zwingen uns dazu.
    Lernen durch Übung! Das ist für mich das einzige Ziel einer Kata oder Randori innerhalb eines Dojos. In welcher Weise ist aus meiner Sicht individuellen Vorlieben unterzogen und jeder selektiert aus einem breitem Angebot. In der Wikipedia finde ich einige Erläuterungen zu Katas oder Randoris. Alle spielen sich in Dojos ab. Was ist ein Dojo? Eine Trainingshalle. Trainieren können wir, wie Kampfkünstler (Bewegungsabläufe, über allgemeinen hin zu speziellen Verteidigungs- und Angriffstechniken eben auch Etikette, Regeln und Struktur, und, und, und), viel verschiedenes. Anforderungsanalyse, TDD, BDD, Architektur, Projektstruktur, Dokumentation, Design, natürlich Coding, Clean Code, verschiedenste Technologien wie MVC, WinForms, WPF, NHibernate, F#, C#, Delegaten, Entwicklung im Team, Code Versionierung, und, und, und. Das alles benötigen wir, ob nun Programmierer, Entwickler, Architekt, Designer, Kunden, Projektleiter, Requirement Engineer, Chef, Supporter, oder Tester, um insgesamt “bessere” Software zu entwickeln. Dabei kommt mir eine Übung ala Randori mit einem Sensei in einen speziellen Trainingsbereich doch gerade recht. Warum sollte ich Dinge üben, die ich vielleicht noch nicht perfekt beherrsche? Ein bisschen Nachdenken, ein bisschen Anleitung, ein bisschen Regeln vorab ist super. Und danach üben. Genauso brauche ich keine Dinge üben, die ich bereits aus dem Effeff beherrsche. Überspitzt: Das 50ste Mal hintereinander die FizzBuzzKata wäre mir einfach zu wenig, eine zu einseitige Übung.
    Nun zum Mittwoch: Für mich persönlich war an diesem Abend vieles dabei, was ein gutes Randori ausmacht. Exzellente Organisation, eine wunderbare Dojo-Location, einen Architektur- und EBC-Sensei und viele aktive Teilnehmer. Was fehlte? WLAN und Zeit! Kein WLAN oder UMTS ist für die parallele Entwicklung etwas aufwendig. Etwas mehr Zeit für Code-Review, TDD Techniken in der Event-Programmierung und Raum für Diskussionen wären auch schön gewesen. Entschädigt durch Feature List, Concept Maps, EBC-Architektur, verteilte Teamentwicklung und eine erste funktionierende Lösung innerhalb von 4 Stunden ist allerdings Entschädigung genug. Vielleicht wäre ein expliziter Hinweis auf die aktive Teilnahme mit Notebook gut gewesen. So hätten alle mit Interesse eine oder mehrere Komponenten selbstständig aktiv codieren können. Am Mittwoch wurde codiert und ein wichtiges Artefakt haben wir aus den ersten Teil des Abends gebrauchen können. Den Contract gegen den wir codiert haben.

    Ich meine, dass Kernziel wurde erreicht. Lernen durch Übung, und vieles mehr. Lehren und Lernen, vor allem auch Spaß an Softwareentwicklung, interessante Diskussion und Austausch, aktive Teilnahme, ausprobieren von innovativen Lösungsansätzen und Raum für Fehler.


(c) 2000-2012 ilker.de - Creative Computing.

For any case of inquiry regarding this document, you can always contact the website owner.