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 und Legacy Coderetreats werde ich vielleicht in einen zukünftigen Artikel behandeln.

Klassiches Coderetreat

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

UhrzeitAufgabe
08:00Gemeinsames Frühstück
08:30Vorstellung und Intro
09:00Erste Session
09:45Retrospektive und Pause
10:05Zweite Session
10:50Retrospektive und Pause
11:10Dritte Session
11:55Retrospektive
12:05Mittagspause
13:30Einleitung des Nachmittags
13:45Vierte Session
14:30Retrospektive und Pause
14:50Fünfte Session
15:35Retrospektive und Pause
15:55Sechste Session
16:40Retrospektive und Pause
17:00Gemeinsame Abschlussretrospektive
17:45Abschluss

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:

  • Das Problem, welche wir zu lösen versuchen, nämlich Conway’s Game of Life,
  • Die Four Rules of Simple Design,
  • Pair-Programming, um der Wissensaustausch zu maximieren,
  • Verwendung von TDD,
  • Am Ende der Session wird der gesamte Code gelöscht.

Nach jeder Session bilden wir neue Paare. Damit erreichen wir, dass man die Gelegenheit bekommt, im Laufe des Tages mit fünf oder sechs verschiedenen Menschen zusammenzuarbeiten.

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.

So läuft ein Code Retreat ab!

Weitere Mini-Blogs