Eine Neuauflage der gleichnamigen Session der XP Days 2012, in Absprache mit Adrian Bolboaca (Idee und Konzept von Adrian Bolboaca und Erik Talboom).

Idee

Hast du dich jemals gefragt, wieviel sinnvollen Code du in 30 Minuten schreiben kannst? Und in 2 Minuten? Während dieser Session wirst du lernen, dich auf das absolut Wesentliche zu konzentrieren, indem du kleine Schritte in Richtung inkrementeller, iterativer Softwareentwicklung machst.

Motivation

Es gibt viele gute Gründe beim Entwickeln von Software in kleinen Iterationen zu arbeiten. So schafft man es etwa, seinen Code wesentlich häufiger zu committen und damit in die restliche Codebasis zu integrieren. Häufig merkt man erst beim Entwickeln, dass man sich in eine falsche Richtung bewegt. Hat man erst vor kurzem eingecheckt, ist das kein Problem. Man kann ohne großen Verlust einfach auf den letzten funktionierenden Stand zurückrollen. Dieser Workshop treibt die Idee von kurzen Iterationen auf die Spitze. Das Prinzip lässt sich auf den Alltag übertragen, auch wenn man sich dann wohl etwas mehr als zwei Minuten pro Iteration gönnt.

Ziele

Finde heraus, warum kleine Schritte nützlich sind und wann man sie einsetzt. Lerne, wie man während des Schreibens von Code und während eines Refactorings kleine Schritte macht. Erfahre, wie du dich selbst dazu zwingen kannst, kleine, inkrementelle Schritte zu machen.

Beschreibung

Nachdem wir ein einfaches Problem bearbeitet haben, werden wir gemeinsam darüber reden, was dabei passiert ist, als wir Code in kleinen inkrementellen Schritten geschrieben haben. Wir werden mit Hilfe eines lokalen Versionskontrollsystems immer dann committen, wenn wir mit dem Schreiben und Implementieren eines Tests oder mit einem Refactoring innerhalb von 2 Minuten fertig geworden sind. Falls wir nicht innerhalb von 2 Minuten fertig geworden sind, rollen wir die Änderungen auf den vorherigen Stand zurück und versuchen es mit einem kleineren Schritt, da der zuvor versuchte Schritt offenbar zu groß war.

Es wird 3 Pomodoros (Durchläufe mit jeweils 25 Minuten Länge) geben, in denen die Teilnehmer in Paaren arbeiten werden. Nach jedem Durchlauf nehmen wir uns ein paar Minuten Zeit um darüber zu reflektieren, wie wir unsere Prozesse verbessern können.

Du brauchst ein Notebook, auf dem eine fertig eingerichtete Entwicklungsumgebung für eine Programmiersprache deiner Wahl installiert ist. Die Session wird unabhängig von der gewählten Programmiersprache funktionieren. Außerdem solltest du unbedingt ein lokales Versionskontrollsystem installiert haben (bspw. Git oder Mercurial).

Zeitplan

  • 15 min Einführung
  • 5 min Setup
  • 25 min Erster Durchlauf
  • 5 min Retrospektive
  • 25 min Zweiter Durchlauf
  • 5 min Retrospektive
  • 25 min Dritter Durchlauf
  • 15 min Abschlussrunde / abschließende Retrospektive

Voraussetzungen

Teilnehmer sollten

  • gute Kenntnisse in mindestens einer Programmiersprache haben,
  • ein Notebook mit fertig eingerichteter Entwicklungsumgebung, inklusive Testing-Framework und lokalem Versionskontrollsystem, mitbringen und
  • einen Wecker oder Zeitnehmer dabei haben (wobei ein Smartphone mit passender App völlig ausreicht).

Marc Philipp andrena objects ag, Deutschland

Marc Philipp arbeitet seit 2008 als Software-Entwickler und Trainer für die andrena objects ag. Er begeistert sich Software Craftsmanship und organisiert Events für die Entwicklergemeinde (z.B. die XP Days Germany).

Eine weitere Leidenschaft gehört Open Source Software; so steuert er immer wieder Beiträge zu Projekten wie JUnit und Project Usus bei. Gelegentlich bloggt er auch unter http://www.marcphilipp.de/.

Fabian Knittel andrena objects ag, Deutschland