Coderetreat. Die Meisterübung für Softwareentwickler

08.07.2016 - Lesezeit ca. 5 Min - 1100 Wörter

Das Coderetreat - Die Meisterübung

Wie ich schon öfters erwähnt habe, ist Übung der beste Weg zur Meisterschaft und coderetreats sind die Meisterübung schlechthin.

Das Wort Coderetreat besteht aus Code und aus Retreat. Mit Code ist gemeint, dass es dabei ums Programmieren geht (zumindest meistens 😊). Das englische Wort Retreat bedeutet Rückzug. In der Hektik des Alltags bleibt uns öfters nicht genug Zeit, um unsere Fähigkeiten zu üben und zu schärfen, deswegen ziehen wir uns zurück, um uns die Zeit dafür zu nehmen.

Die meisten Coderetreats, an den ich teilgenommen oder moderiert habe, fanden am Samstag statt. Das ist auch eine der Gründe, die verdeutlichen sollen, dass es sich dabei um eine ganz besondere Veranstaltung handelt. Für einen Coderetreat nehmen wir uns ein ganzer Tag Zeit, denn wir wollen ja ordentlich üben und vieles dabei lernen.

Das Format wurde von Corey Haines und andere Softwareentwickler ca. 2009 geboren und erfreut sich steigende Beliebtheit. Immer mehr Menschen sehen in Coderetreats eine wertvolle Möglichkeit, Wissen auszutauschen und sich zu verbessern. Jedes Jahr findet das Global Day of Coderetreat statt, in den weltweit viele Menschen zusammentreffen, um mehr als hundert Coderetreats gleichzeitig durchzuführen. Unter Berücksichtigung der unterschiedlichen Zeitzonen erstreckt sich das Event auf etwa 32 Stunden, in den irgendwo auf der Welt gerade einen Coderetreat stattfindet, 😉

Ich habe mal hier, mal da gehört, dass einige Menschen sich darüber beklagen freie Zeit dafür opfern zu müssen, anstatt Arbeitszeit dafür zu investieren. An diese Stelle möchte ich erwähnen und das bezieht sich nicht nur auf Coderetreats, dass als Softwareentwickler uns ein Leben des ständigen Lernens erwartet, wer es noch nicht begriffen hat, sollte sich langsam mit der Idee anfreunden. Keiner leugnet, dass die Firma davon profitiert. Letztendlich sollten wir es aber für uns selbst tun, den besser zu werden steigert unser können, unser Marktwert und unsere Chancen. Ich finde es schön, wenn Unternehmen ihre Mitarbeiter die Möglichkeit bieten sich weiter zu bilden, aber meine Meinung nach ist es unsere eigene Pflicht und wir sollten uns selbst darum kümmern. Auch, wenn dabei ein kleines Teil Freizeit geopfert werden muss.

Versteht mich nicht falsch, dass soll keineswegs bedeuten, dass wir unsere Freizeit für das Lernen und Weiterbilden aufopfern müssen, das ist weder zweckdienlich noch gesund, was ich damit sagen will, ist, dass ich der Meinung bin, dass es sich lohnt und dass jeder von uns bereit sein sollte ein kleines Opfer dafür zu bringen.

Nun, kommen wir auf das eigentliche Thema zurück.

Wie funktioniert ein Coderetreat?

Als Erstes möchte ich erwähnen, dass es verschiedene Arten von Coderetreat gibt, die wohl meist bekannten Varianten davon sind das klassischer Coderetreat und das Legacy Coderetreat. Beide Varianten ähneln sich, haben jedoch unterschiedliche Lernziele. Ich erkläre euch hier, wie ein klassisches Coderetreat läuft. Legacy Coderetreats werde ich vielleicht in einen zukünftigen Blog behandeln.

Klassiches Coderetreat

Ein klassisches Coderetreat hat ein fest definiertes und erprobtes Format. Eine mögliche Agenda des Tages könnte so aussehen:

Uhrzeit Aufgabe
08:00 Gemeinsames Frühstück
08:30 Vorstellung und Intro
09:00 Erste Session
09:45 Retrospektive und Pause
10:05 Zweite Session
10:50 Retrospektive und Pause
11:10 Dritte Session
11:55 Retrospektive
12:05 Gemeinsames Mittagessen
13:30 Einleitung des Nachmittags
13:45 Vierte Session
14:30 Retrospektive und Pause
14:50 Fünfte Session
15:35 Retrospektive und Pause
15:55 Sechste Session
16:40 Retrospektive und Pause
17:00 Gemeinsame Abschlussretrospektive
17:45 Abschluss
Wie ihr sehen könnt, strukturiert sich der Tag in verschiedene Sessions (üblicherweise fünf oder sechs), mit anschließenden Retrospektive und eine kurze Pause. Gemeinsam zur jeder Session sind:

Man hat freie Wahl bezüglich Programmiersprache und Entwicklungstools. Die einzige Einschränkung ist, dass es ein Test-Framework dafür geben muss.

Constraints

Bei jeder Session verwendet man unterschiedliche, sogenannten Constraints. Damit die Aufgabe nicht langweilig wird und um der Schwierigkeitsgrad zu verändern. Es gibt viele davon. Für ein normales Coderetreat nutze ich die erste Session, um anzukommen. In diesem Fall ziehe ich es vor, ein einfaches Constraint zu nehmen. Im Laufe des Vormittags ziehe ich gerne die Daumenschrauben fest, um es dann am Nachmittag wieder etwas entspannter weitergehen zu lassen. Wie sich das Ganze gestaltet, ist davon abhängig, ob wir fünf oder sechs Sessions machen und natürlich auch davon, wie erfahren die Teilnehmer sind.

Jede Session steht unter ein anderes Motto und so sind auch die verschiedenen Constraints zu wählen. Oder anders gesagt, die Wahl des Constraints setzt der Akzent. Unterschiedliche Constraints helfen uns unterschiedliche Fähigkeiten zu üben, zwingen uns anders zu arbeiten, werfen uns aus der Komfortzone. Dadurch wird ein maximaler Lerneffekt gewährleistet.

Wie bereits erwähnt, gibt es eine ganze Menge an Constraints, welche bei den Sessions verwendet werden können. Als Beispiel sei Ping-Pong genannt. Bei dieser Variante nimmt jeder Entwickler des Paares eine Rolle. Ein Teilnehmer schreibt die Tests, der andere schreibt die nötige Implementierung, damit der Test erfüllt wird, beide dürfen Refaktorisieren nach bedarf. Ziel der Übung ist das TDD Zyklus zu üben und zu lernen ihn besser zu beherrschen. Es ist üblich die Rollen zu wechseln nach einer gewissen Zeit, um Austausch und Lerneffekt zu verbessern. Diese Methode eignet sich gut für die erste Session und wenn die Teilnehmer, weniger Erfahrung mit TDD mitbringen.

Retrospektiven

Nach jeder Session machen wir eine kurze Retrospektive, in der erörtert wird, wie die Session verlaufen ist. Am Ende des Tages gibt es eine gemeinsame Abschlussretrospektive, um den Tag als Ganzes zu betrachten.

Moderation

Ein Coderetreat will moderiert werden. Der Anzahl an Moderatoren richtet sich an der Anzahl der Teilnehmer. Die Moderatoren haben die Aufgabe die ganze Veranstaltung zu begleiten, für die Einhaltung der zeitlichen Vorgaben zu sorgen, mit Rat und Tat den Teilnehmer zu Seite stehen, die Sessions vorzubereiten, die Retrospektiven zu führen und noch viel mehr. Wie ihr sehen könnt, sind eine ganze Menge Aufgaben zu bewältigen, um ein hervorragender Coderetreat auf die Reihe zu bekommen. Ist das gewährleistet, kann ich nur noch Happy Coding wünschen.


Wenn du das Lesen des Artikels genossen hast, würde ich mich freuen, wenn du es teilst. :-)