Global Day of Code Retreat 2011 - ein subjektiver Erlebnisbericht
Dienstag, 06. Dezember 2011 um 13:39 von Marco Emrich in Webentwicklung
Am Samstag machte eine ungewöhnlicher Hashtag die Trends auf Twitter unsicher: #gdcr11. Dieser Hashtag steht für den Global Day of Code Retreat 2011. Ein mehr als ungewöhnliches Ereignis, verbirgt sich doch dahinter kein Medien-populistischer Event für die Massen, sondern eine Veranstaltung für jene Verrückten, die sich dem Handwerk der Software-Entwicklung verschrieben haben.
So versammelten sich rund 2000 Entwickler in 90 Städten rund um den Globus, um bei diesem außergewöhnlichen Ereignis mitzuwirken. Ich hatte mich in Frankfurt am Main angemeldet (http://www.coderetreat-rhein-main.com/), wo der Event von einer lokalen Gruppe der Softwerkskammer (http://softwerkskammer.de) ausgerichtet wurde.
Code Retreats
Um was geht es nun eigentlich bei einem Code Retreat?
Nun - kein Programmierer ist perfekt. Entsprechend gibt es immer Potential, sich weiterzuentwickeln. Ein Code Retreat scheint dafür ein effektives Format zu sein. Dabei treffen sich Programmierer für einen Tag an einem ruhigen Ort, um zu üben und zu lernen.
Ein Moderator gibt ein Problem vor. Jeweils zwei Entwickler arbeiten als Paar (Pair Programming) und versuchen, das Problem zu lösen. Der Code entsteht dabei vollständig Test-getrieben (TDD/BDD). Nach 45 Minuten wird der gesamte Code gelöscht – wirklich. Jeder sucht sich einen neuen Partner und der Spaß beginnt von neuem.
Besser und genauer kann das sicherlich der Erfinder des Code Retreats Corey Haines erklären. Auf http://coderetreat.org/about finden Sie seinen 20 minütigen Einführungsvortrag.
Der Global Day aus der Frankfurter Perspektive
Beim Global Day of Code Reatreat sollte eine solche Veranstaltung nun zum ersten mal weltweit stattfinden - alles an einem Tag, verteilt über 36 Stunden in verschiedenen Zeitzonen.
Kurz zuvor hatte ich ein Consulting in Hanau, das ich terminlich günstig legen konnte, um so am Samstag in Frankfurt zu sein – die Alternative München war leider längst ausgebucht.
Am Samstag kam ich dann 10 Minuten zu spät, wollte ich doch mein Frühstück im Hotel nicht herunterschlingen. Erleichtert stellte ich fest, dass sich die Veranstaltung in der Brotfabrik, einer Art Konzerthalle, noch im Aufbau befand.
Dank der Sponsoren andrena Objects und mediaman// gab es ein (für mich zweites) Frühstück und den, für alle Programmierer lebenswichtigen, Kaffee. So lies sich die Zeit nutzen, um andere Entwickler kennen zu lernen und interessante Hintergründe zu erfahren. Von den ca. 20 Entwicklern kamen die meisten aus Frankfurt und Umgebung, aber auch einige Karlsruher waren dabei. Als Nürnberger hatte ich vermutlich die weiteste Anreise.
Erfreulicherweise waren weder Programmiersprache, noch Entwicklungsumgebung, noch OS oder Ähnliches vorgeschrieben. Dementsprechend heterogen war auch die Zusammensetzung der Anwesenden und ihrer Sprachen, z.B. C#, CoffeScript, Haskel, Java, JavaScript, PHP, Python, Ruby oder Smalltalk. Entsprechend gaben sich auch Mac-, Windows- und Linux-Entwickler die Hand. Zu keinem Zeitpunkt gab es Plattformdiskussionen oder Sprachbashing. Ein friedliches Miteinander, das mir sofort das Gefühl gab, dazu zu gehören.
Los geht’s
Benjamin – der Moderator unseres Retreats – eröffnete die Veranstaltung mit einer kurzen Erklärung der Regeln und der Einführung in das Problem: Conway's Game of Life. Es folgte eine interessante Diskussions- und Fragerunde.
Das dabei am meisten kontrovers diskutierte Thema war das Löschen des Codes. Schließlich erklärten sich alle bereit, es zumindest einmal auszuprobieren.
Danach begann der spannende Teil, die eigentlichen Code-Sessions. In der ersten Session arbeitete ich mit meinem Partner lange auf Papier, um ein möglichst sinnvolles Format zur Repräsentation der Daten zu finden. Interessanterweise einigten wir uns auf eine ganz andere Speicherung, als auf die, die ich im Vorfeld schon ausprobiert hatte. Nach nur vier oder fünf implementierten Tests schallte die Stimme des Moderators: „DELETE YOUR CODE“.
Nicht zu fassen – wir hatten doch gerade erst angefangen.
Parlez vous Smalltalk?
Nach der Session, wie auch nach jeder folgenden, gab es eine kurze Retrospective, mit der Gelegenheit, über die gewonnenen Erfahrungen zu diskutieren. Auch hier ließ sich feststellen, dass es mehr Ansatzmöglichkeiten gab, das Problem zu lösen, als vermutet.
Noch faszinierender als das eigentliche Problem war die Möglichkeit, bei der Lösung andere Sprachumgebungen kennen zu lernen. So hatte ich z.B. die Gelegenheit, in Smalltalk zu programmieren – eine faszinierende Sprache, mit der ich seit fast 15 Jahren nicht mehr gearbeitet hatte. Umgekehrt konnte ich einige meiner Partner vom RSpec-Framework in Ruby begeistern.
Constraints und fiese Schweigegelübde
Damit es uns mit dem Fortschreiten der Sessions nicht zu langweilig wurde, hatte sich Benjamin noch ein paar Gemeinheiten ausgedacht. Mit sogenannten Constraints (Beschränkungen), nahm er auf das Coding Einfluss. In einer der Sessions durften wir keine Sprachprimitiven verwenden. Ein anderes mal sollte das Klassendesign mit Verben erfolgen.
Mein persönliches Highlight war das Contraint „Evil Mute“ – eine Mischung aus Silent Ping-Pong und Evil Pair. Evil Pair bedeutet, dass ein Entwickler einen Test schreibt, zu dem dann der andere den Produktiv-Code implementiert – auf möglichst hinterhältige Art und Weise. Der Mute/Silent-Teil verbot uns dann, dabei zu reden.
Unglaublich, welches geradezu diebisches Vergnügen es bereiten kann, die Tests zum Laufen zu bringen. Noch erstaunlicher war, dass gerade diese Session meine insgesamt produktivste war. Durch den Wegfall sämtlicher Diskussionen fokussierten wir uns nur auf den Code.
Das Ende naht...
Nach einem langen Tag und sechs Sessions schloss unser Moderator dieses Horizont-erweiternde Erlebnis. Den Abschluss bildeten dabei die leicht angepassten Fragen des so genannten Closing Circles:
- Was hast Du gelernt?
- Was hat Dich überrascht?
- Was wirst Du am Montag in Deinen Job anders machen?
Die Antworten fielen so vielseitig aus, wie die Erfahrungen der Teilnehmer. Nur über eine Antwort zur ersten Frage waren sich alle einig: „Code Retreats are a lot of FUN.“
Einen herzlichen Dank geht an dieser Stelle an Benjamin und die Softwerkskammer für die gelungene Organisation des Retreats. Außerdem danke ich meinen Coding-Pair-Partnern Marc, Rainer, Andreas, Norman, Gregor und Nicole für die tolle Zeit und die wertvollen Erfahrungen.
Interessante Statistik
- Anzahl der Teilnehmer, die schon einmal auf einem Code Retreat waren: 1 (der Moderator)
- Anzahl der Teilnehmer, die nicht mit TDD vertraut waren: 1
Andere Berichte vom Global Day of Code Retreat
- http://pboop.wordpress.com/2011/12/05/global-day-of-code-retreat/
- http://coderetreat.org/profiles/blogs/coderetreat-a-first-time-facilitator-s-view
- http://monospacedmonologues.com/post/13794728271/global-day-of-coderetreat
Tags: Programmierung , Konferenz , code retreat
Kommentare
-
Manuel
am Montag, 16. November 2015, 08:03
-
Marco Emrich
Hi Manuel,
danke für die Anmerkungen.
Freut' mich, dass Dir der Bericht gefällt - allerdings muss ich gestehen, dass er natürlich nicht mehr ganz zeitgemäß ist. Der Bericht ist von 2011. In den 4 Jahren seitdem hat sich sehr viel getan. Ich hab' nun mittlerweile selbst mehr als 20 Coderetreats moderiert und die Sichtweise ändert sich jedes mal ein wenig.
Zu Deinen hilfreichen Links füge ich gerne noch zwei weitere dazu. Wer sich für das Thema interessiert findet solche und ähnliche Veranstaltungen in Deutschland bei der Softwerkskammer.
https://www.softwerkskammer.org
Außerdem hab' ich hier ein Poster mit den GOL-Regeln hinterlegt: https://github.com/marcoemrich/game-of-life-rules
viel Spaß beim Coden...
Marcoam Montag, 16. November 2015, 14:39
Super Artikel, danke.
Hier sind noch 2 interessante Anmerkungen
- auf live.coderetreat.org wird live während des Global Day of Coderetreat aufgelistet, welche Constraints die einzelnen Standorte gerade bearbeiten. Die Seite lässt sich auch aufrufen, wenn nicht gerade der Global Day of Coderetreat stattfindet. Die Auflistung auf der Seite, gibt einen perfekten Überblick über die Constraints.
- auf https://drieschmanns.wordpress.com/2015/11/15/wie-veranstalte-ich-einen-coderetreat/ hab ich eine Anleitung zur Veranstaltung eines Coderetreats gepostet.