Der lise Blog:
Einsichten, Ansichten, Aussichten

GDCR bei der lise GmbH: “Mit klugen Tests kann man Entscheidungen gezielt nach hinten verzögern.”

Beim Global Day of Code Retreat 2018 (https://www.coderetreat.org/) haben dieses Jahr 25 Teilnehmer in den Räumlichkeiten der lise GmbH ihre handwerklichen Programmierungs-Fertigkeiten verbessert.

In fünf Sessions á 60 Minuten wurde das "Game Of Life" nachprogrammiert. Während der Sessions haben sich die Teilnehmer einige Qualitätsanforderungen (Constraints) auferlegt:
 

  • Session 1: Test Driven Development (TDD)

Nahezu jeder Coderetreat und alle folgenden Sessions unterliegen dem Test Driven Development: Erst einen fehlschlagenden Test schreiben (red), dann den Code dazu implementieren (green) und im dritten Schritt den Code aufräumen (refactor). Da TDD nicht für jeden Entwickler gängig ist, haben sich hier heterogene Paare von Entwicklern zusammengefunden, die unterschiedlich geübt in TDD waren.

“Es ist ungewohnt, das Denkmuster auf Test-First umzustellen.“

“TDD hilft sich über das Problem bewusst zu werden, bevor man Produktiv-Code schreibt”

  • Session 2: Ping Pong

Ping Pong kombiniert Pair Programming mit TDD nach einer einfachen Regel: Ein Teilnehmer schreibt einen Test, der andere die Implementierung dazu – danach Wechsel. Dadurch entsteht viel Austausch, um zu klären, was mit dem jeweiligen Test gemeint ist.

"Beim Schreiben des Tests fühlt man sich ein bisschen wie der Kunde: Man stellt einfach eine komplizierte Anforderung. Um die Implementierung muss ich mich ja nicht kümmern. :D”

  • Session 3: Muted Ping Pong

Während beim Ping Pong zuvor der Austausch erlaubt war, ist er nun verboten. Dies führt dazu, dass beim Schreiben eines Tests viel mehr darauf geachtet werden muss, dass er ausdrucksstark ist.

"Unterschiedliche Denk- und Herangehensweisen machen das Vorgehen schwierig. Bei einem Testnamen wie >>test1<< ist es nicht möglich, die Intention zu erkennen.“

  • Session 4: Tell, don’t ask!

Tell, don’t ask! verlangt – grob zusammengefasst – dass es keine getter und setter mehr gibt. Dies erfordert in der Regel von den meisten Teilnehmern neue Konzepte und Strukturen, was sich aber in der Qualität des Codes bemerkbar macht.

“Der Code lässt sich etwas leichter umsetzen, da bei uns die Logik der Lebenden und toten Zellen getrennt war.“

  • Session 5: Free Choice (Mob Programming, Object Calisthenics)

In der letzten Session gab es keine Vorgaben, sodass es Jedem frei stand, wie das eigene Handwerk geübt werden sollte. In einer Mob-Programming Runde stellte sich Birgit von der Softwerkskammer als Driver zur Verfügung. Während andere sich der Herausforderung von Object Calisthenics stellten.

Programmiert wurde unter anderem in den Sprachen Java, C#, F#, C++, PHP, Bash oder  Python. Neben dem Trainieren der eigenen Fertigkeiten wurden in den Pausen und am Abend neue und alte Bekanntschaften gepflegt. Da die allgemeine Resonanz sehr positiv war, freuen wir uns schon jetzt auf den GDCR 2019!

Eure Moderatoren Birgit Kratz, Steve Korzinetzki und Martin Dieblich

 

Diesen Artikel weiterempfehlen

 Teilen  Teilen  Teilen  Teilen