Professional Scrum Developer Training – ein erster Erfahrungsbericht

Keine Kommentare

In Zusammenarbeit mit scrum.org entwickelt codecentric das Professional Scrum Developer Training auf dem Java Technologie-Stack. Dabei kommt uns unsere langjährige Projektexpertise zu Gute. Das was wir in der Agile Software Factory in den letzen Jahren als „funktioniert auch im Projekt“ abstempeln konnten, das möchte ich den Teilnehmern während des 5-tägigen Trainings, so gut wie möglich mit auf den Weg geben.

Denn dieses Training schließt eine Lücke: Bisher existierten Scrum-Trainings nur für ScrumMaster und Product Owner, von den Teammitgliedern wurde erwartet, dass sie alle notwendigen Werkzeuge, Methoden und Vorgehensweisen von selbst können. Dies ist nach unserer Erfahrung nicht der Fall. Im Folgenden möchte ich eines der Trainings, welches ich vor kurzen intern gehalten habe näher beschreiben.

Der Ansatz des Trainings ist der folgende: Anhand eines einfachen Beispielprojektes, basierend auf Java und Spring, lernen die Teilnehmer nach und nach alle erforderlichen Werkzeuge kennen, um erfolgreich Software in kurzen Zyklen auch tatsächlich fertigstellen zu können. Pro Tag absolvieren wir dabei zwei „Trainingssprints“, die jeweils mit der Sprintplanung anfangen, an welches sich dann mehrere „Entwicklungstage“ inkl. Daily Scrum anschließen und mit einer Scrum Review und Retrospektive enden. Von Trainingssprint zu Trainingssprint erhöhe ich dabei die Messlatte, was alles zur Softwareentwicklung dazugehört: Angefangen von „Der Code muss unter Versionskontrolle stehen“ über „Das Release muss automatisiert von der CI-Umgebung gebaut werden“ (inkl. der Dokumentation, versteht sich) bis hin zu „Für jedes Abnahmekriterium einer User-Story existieren automatisierte Fachtests“.

[singlepic id=339 w=320 h=240 float=center]

Im Detail sieht der zeitliche Ablauf eines Trainingssprints (insgesamt 4 Stunden) so aus:

  • 60′ – Einführung in die neuen Werkzeuge und Vorgehensweisen
  • 15′ – Sprint Planning I
  • 15′ – Sprint Planning II
  • 10′ – Pause
  • 115′ – 5 Tage à
    • 3′ – Daily Scrum
    • 20′ – Entwicklung im Team
  • 10′ – Scrum Review
  • 15′ – Retrospektive

Dieses Vorgehen hat im Training mehrere Vorteile: Zum einen geht den Teilnehmern durch das ständige Wiederholen der Sprint-Zyklen der Rhythmus ins Blut über. Die ganzen Planungs- und Koordinationsmeetings folgen einer natürlichen Kadenz und das Team erkennt, wie die einzelnen Räder aus Sicht des Teams ineinander greifen. Das Team lernt mit Story Points umzugehen und die Stories während der Sprintplanung in technische Tasks herunter zu brechen.

Ein zweiter Vorteil sind die extrem kurzen „Tage“: 20 Minuten vergehen wie im Flug, so lernen die Teilnehmer sehr schnell welche Techniken funktionieren, und welche nicht. Das Feedback aus der Gruppe war, dass Praktiken, die gerne im Verdacht stehen den Entwicklungsfluss zu verlangsamen ganz im Gegenteil der Annahme produktivitätssteigernd sind. Namentlich waren das: TDD und Pair-Programming. Durch die direkte Vergleichsmöglichkeit („Wie viel schaffen wir mit X, wie viel ohne X“) kann das Team sehr gut eigene Erkenntnisse gewinnen und dazulernen. (Siehe hierzu auch die Ergebnisse der Retrospektiven und das sich ändernde Taskboard in den Bildern weiter unten).

[singlepic id=341 w=320 h=240 float=center]

Welche Techniken, Werkzeuge und Methoden braucht ein agiles Team denn nun, um jeden Sprint erfolgreich neue Funktionalität ausliefern zu können? Die Liste der im Training eingesetzten Werkzeuge ist lang, nichtsdestotrotz ist das Training auch für Anfänger geeignet, da es nicht darum geht, möglichst viel neue Funktionalität in der Beispielanwendung hinzuzufügen, sondern die neuen Werkzeuge anhand des Beispiels gekonnt einsetzen zu lernen. Grob skizziert umfasst das Training:

Build Management (Maven, Mercurial, Eclipse)

  • Verteilte Versionskontrollsysteme
  • Einheitliche Buildkonfiguration
  • Management von Abhängigkeiten

Release Management (Maven, Jenkins)

  • Versionierung und Branching
  • Erstellen von Releases
  • kontinuierliche Integration
  • automatisches Deployment

Testgetriebene Entwicklung (JUnit, Mockito)

  • Grundlagen
  • Werkzeuge
  • Messung der Testabdeckung
  • Datenbanktests

Codequalität (Sonar, Checkstyle, PMD, FindBugs)

  • SOLID-Designprinzipien
  • Code-Refactoring
  • Code-Review und Pair-Programming
  • Metriken

Akzeptanztestgetriebene Entwicklung (Robot Framework, Selenium, JMeter)

  • Ausführbare Spezifikationen
  • Performancetests

Dokumentation und Architektur in agilen Projekten

  • Welche Dokumente werden benötigt?
  • Was ist Architektur und wie geht das agil?

Wer jetzt Lust auf das Training bekommen hat, der nächste Termin ist schon in der zweiten Mai-Woche und einige Plätze sind noch frei. Bei weiteren Fragen stehe ich natürlich gerne zur Verfügung: noch mehr Details (inkl. der Anmeldung).

Das sagen die Teilnehmer über die Schulung

In dieser Woche wurde viel Wert auf den praktischen Alltag eines Scrum Teammitglieds gelegt, was mir half meine vorhandenen SCRUM und XP Skills zu festigen und auszubauen.

Ich fand es gut, dass wir die meiste Zeit des Trainings wirklich mit den typischen Arbeiten eines Teammitglieds verbracht haben. Durch das praxisnahe Training habe ich jetzt auch für meine alltäglichen Projekte ein Zielbild, wie wir die ganzen Werkzeuge effektiv einsetzen sollten.

[nggallery id=19]

Andreas Ebbert-Karroum

Andreas Ebbert-Karroum ist Agile Principal Consultant bei codecentric und Product Owner von CenterDevice.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.