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]
Weitere Beiträge
von Andreas Ebbert-Karroum
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Andreas Ebbert-Karroum
Agile Principal Consultant
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.