Ein Code Retreat läuft folgendermaßen ab:
- Das zu lösende Problem ist Conway's Game of Life
- Es gibt über den Tag verteilt sechs Sessions a 45 Minuten Länge, nach jeder Session gibt es eine kurze Retrospektive und eine Pause.
- Pair-programming ist zwingend erforderlich, da der dabei stattfindende Know-How-Transfer essentiell für den Lerneffekt ist.
- Test-Driven Development (TDD) ist zu bevorzugen.
- Nach jeder Session wird der Partner gewechselt.
- Nach jeder Session wird der geschriebene Code restlos gelöscht, es wird nichts in Versionskontrollsysteme o.ä. eingecheckt.
Es dürfte auf der Hand liegen das es nicht gelingt, innerhalb von 45 Minuten Conway's Game of Life vollständig zu implementieren. Das ist auch gar nicht das Ziel eines Code Retreats. Stattdessen kann man sich voll und ganz darauf konzentrieren, sauberen, gut getesteten Code zu schreiben. Wichtig ist, das die gestellte Aufgabe immer wieder unter neuen Gesichtspunkten angegangen wird. Ziel ist das Erlernen von Praktiken, von neuen Programmiersprachen, die Verbesserung unserer Arbeitsweise oder die Vertiefung von bestehendem Wissen.
Ich war am vergangenen Samstag, zusammen mit ca. 35 weiteren Entwicklern, auf dem Hamburger Code Retreat Event bei akquinet/it-agile. Nach einem Kennenlernen und einer netten Plauderei beim Kaffee folgte eine Einführung durch den Facilitator Manuel Küblböck. Dann ging es los. Da ich kein Laptop dabei hatte, musste ich mir Pairing-Partner mit entsprechendem Arbeitsgerät suchen, was aber kein Problem war.
Nach C#/.NET unter Visual-Studio in der ersten Session folgte Java mit Eclipse auf einem - für Nicht-Mac-User sehr gewöhnungsbedürftigen - MacBook. Anschließend haben ich und mein nächster Partner Conway's Game of Life mit C++ entwickelt, allerdings ohne eine IDE, sondern nur mit einem sehr einfachen Editor unter Linux (gedit) und gcc/make auf der Kommandozeile. Ich und mein Partner waren sehr erstaunt, wie gut das funktionierte. Es folgten noch weitere Sessions mit dem mir bis dato nur vom Hörensagen bekannten Ruby (Sehr interessante Sprache!), sowie eine weitere Session mit Java/Eclipse unter verschärften Bedingungen: "Mute ping pong"! Das heißt: es wird nach TDD mit hin- und herwanderndem Keyboard entwickelt, aber die Pairing-Partner dürfen dabei nicht sprechen. Man muss quasi den Code sprechen lassen, d.h. der Testersteller muss seine Testfälle so schreiben, das der Partner weiß, was der Schreiber des Tests beabsichtigt, und er muss daraus herleiten wie er durch eine korrekte Implementierung den Test grün bekommt. Sehr interessant...und alles andere als einfach. Zumindest hatten ich und mein Partner uns nach ca. 30 Minuten in ein ziemliches Desaster hineinmanövriert.
Insgesamt war dieser Global Day Of Code Retreat eine sehr interessante und auch lehrreiche Erfahrung, die ich definitiv bei nächster sich bietender Gelegenheit wiederholen werde. Weltweit sollen mehr als 2.000 Entwickler auf allen Kontinenten teilgenommen haben, alleine in Deutschland liefen weitere Code Retreats in Berlin, Köln und Dresden. Vielen Dank an dieser Stelle auch an unseren Facilitator Manuel und den Sponsor it-agile, sowie für das klasse Catering.




