Wie Scrum das Projektmanagement von TYPO3 5 vorantreibt: Agiler Phoenix
Scrum ist eine Methode für das agile Projektmanagement. Es gibt online unzählige Informationen zu Scrum – eine besonders gute Übersicht findet sich auf der Website von agile42 [2], die auch eine einseitige Einführung zum Thema Scrum bietet. Dort findet sich folgende Definition: „Scrum ist ein interaktiver und inkrementeller Prozess für das Entwerfen von Produkten und das Organisieren von Teams. Die Scrum-Methode ist dabei behilflich, Tasks schneller und besser zu erledigen. Dies wird möglich, weil ein Team sich mit dieser Methode zu einem hohen Grad selbst motivieren kann, da es selbst entscheidet, wie und wann die einzelnen Tasks ausgeführt werden. Die Kundenanforderungen werden schrittweise priorisiert und schnell umgesetzt.“
Du möchtest Scrum besser kennenlernen und verstehen? Unsere Videokurse zeigen dir, wie es geht!
Was leistet Scrum für Phoenix?
Die Grundidee hinter dem agilen Ansatz besteht darin, ein Produkt Schritt für Schritt zu entwickeln und sich dabei zuerst auf die wichtigsten Features zu konzentrieren. Da TYPO3 Phoenix über eine Menge Features verfügen wird, begann das Team mit einer rollenbasierten Mindmap von Anwendungsfällen (sog. User Stories), um selbst einen besseren Überblick zu erhalten und sich der eigenen Prioritäten bewusst zu werden [3]. Die Mindmap dient dabei als Basis für das Produkt-Backlog von Phoenix. Im Scrum-Jargon beschreibt das Produkt-Backlog eine Liste aller Features, über die ein Produkt verfügen soll. Derzeit definiert es im Fall von TYPO3 Phoenix die nächsten „User Stories“ und die kommenden Features als „Epics“.
Das Scrum-Team
Scrum basiert auf drei unterschiedlichen Rollen, von denen die wichtigste vom „Team“ übernommen wird.
Das Team rekrutiert sich in diesem Fall aus dem TYPO3-Phoenix-Core-Team [4] – einer Gruppe aus Experten um Robert Lemke und Karsten Dambekalns. Diesem Team kommt die schwere Aufgabe zu, die geplanten Features in die Realität umzusetzen. Das Ziel ist dabei: „get things done done“ – im Scrum-Universum bedeutet das, die Features nicht nur zu implementieren, sondern auch zu testen und sicherzustellen, dass sie die Anforderung „erledigt“ („definition of done“) auch wirklich erfüllen.
Der „Scrum-Master“ von TYPO3 Phoenix ist Ben van’t Ende. Er kümmert sich um die Bedürfnisse des Teams und beseitigt Hindernisse. Er stellt unter anderem sicher, dass das Team sich an die Vorgaben von Scrum hält und dass es sich bezüglich der umsetzbaren Features während eines Sprints nicht selbst überschätzt.
Die dritte Rolle bei Scrum wird vom „Product Owner“ besetzt. Der Product Owner ist für den Erfolg eines Projekts verantwortlich. Er leitet die Entwicklung mit, skizziert die Arbeit im Scrum-Backlog und priorisiert die Tasks. Im Fall von TYPO3 Phoenix handelt es sich um ein Team von Product Ownern, die jeweils Experten auf ihrem Gebiet sind. Dieses Team trifft sich regelmäßig, um über die kommenden Features zu diskutieren, Prioritäten festzulegen und die „User-Stories“ im Produktkatalog auf den neuesten Stand zu bringen.
Neue und motivierte Mitglieder, die Interesse daran haben, TYPO3 Phoenix mitzugestalten, sind jederzeit herzlich willkommen. Scrum hilft neuen Mitgliedern effektiv dabei, relevante und interessante Tasks aufzuspüren sowie tiefer in bestimmte Bereiche einzudringen.
Definition of Done
Das zentrale Element des Entwicklungszyklus mit Scrum ist der so genannte Sprint. Dabei handelt es sich vereinfacht gesagt um die Umsetzung einer Iteration. Bevor man einen Sprint angeht, sammelt man die Produktanforderungen sowie administrative und technische Aufgaben im Produkt-Backlog.
FLOW3 und TYPO3 Phoenix legen den Fokus auf Qualität und eine verlässliche Architektur auf jedem Level. Außerdem besteht ein großes Streben nach einem benutzerfreundlichen und einheitlichen User-Interface.
Bei Scrum ist es wichtig, nach jedem so genannten „Sprint“ ein potenziell auslieferungsfähiges Produkt zu haben, das auch die definierten Kriterien des Sprint-Planning und die „definition of done“ erfüllt. Die „definition of done“ besteht aus einer Sammlung von Charakteristika, die jeder Task erfüllen sollte, und wird vom Team festgelegt und übergeben. Für TYPO3 Phoenix findet sich die „definition of done“ im Wiki [5], wo sie auch gepflegt wird. Zu den Schlüsselkriterien gehören unter anderem:
- Sauberer und einfacher Code, der von Unit-Tests erfasst wird
- Keine Workarounds
- Die Dokumentation wird auf den neuesten Stand gebracht, sobald die Notwendigkeit besteht.
- Funktionale Browser-Tests werden mit Selenium-Tests durchgeführt (Selenium ist ein Test-Framework für Webapplikationen, die eine Interaktion mit einem Browser erlauben).
Am Ende eines Sprints werden die fertigen Stories auf das Integrationssystem [6] deployt, wo auch Selenium-Tests durchgeführt werden. Dies geschieht mit Hilfe eines automatisierten Build-Prozesses, der von einem Continuous Integration System aufgerufen wird.
Organisation und Meetings
Scrum in einem verteilten Team für die Entwicklung eines Open-Source-CMS einzusetzen, ist einzigartig und neu. Allerdings sind das große Engagement aller Teammitglieder und die Möglichkeiten, die das Web heute bietet, erfolgversprechend. So geht das Phoenix-Team im Einzelnen vor:
- Die Sprint-Dauer beträgt fünf bis sechs Wochen.
- Sprint-Planung, -Review und die Retrospektive erfolgen mit Hilfe von Online-Meetings, um sich virtuell treffen zu können sowie Desktops miteinander teilen zu können.
- Das Team nutzt TYPO3-Events so häufig wie möglich, um persönlich miteinander diskutieren zu können.
- Jeder, der an einem Task arbeitet, kann einen Jabber-Chat-Room nutzen, um Fragen schnell zu klären.
- Täglich um 17.30 Uhr findet ein Daily Scrum statt. Per Mailingliste gehen Protokolle an alle Mitglieder, sodass jeder, der nicht teilnehmen kann, dennoch Bescheid weiß.
- Statt ein Scrum-Board zu nutzen, pflegt das Team das Sprint-Backlog auf forge.typo3.org.
Derzeit blickt das Phoenix-Team auf drei erledigte Sprints zurück. Betrachtet man die bisherigen Resultate, kann man zuversichtlich in die Zukunft blicken.
Sprint 1
Das Ziel des ersten Sprints bestand darin, mit den grundlegenden CMS-User-Stories sowie dem Setup der benötigten Systemumgebung und Build-Prozesse zu beginnen. Die Ergebnisse des ersten Sprints waren dabei die erste reale mit TYPO3 Phoenix gerenderte Website sowie ein funktionierender Backend-Login.
Darüber hinaus setzte das Entwicklerteam einige Integrations-Builds auf: einen zum Bauen und Deployen des Integrationssystems und einen, um den ersten Selenium-Test für TYPO3 Phoenix laufen zu lassen. Die Stories drehten sich im Detail um die folgenden Themen:
- Als Website-User möchte ich eine Website sehen.
- Als Scrum-Team-Mitglied wünsche ich mir eine rudimentäre CI-Umgebung.
- Als Entwickler wünsche ich mir eine einfache API, um eine Seite anzulegen und Content hinzuzufügen, um so das Content Repository zu befüllen.
- Als Redakteur brauche ich einen Login und ein rudimentäres Interface für den Editor.
Sprint 2
Bei den geplanten Features für den zweiten Sprint lag der Fokus auf den grundlegenden CMS-Features für Seiten. Daraus resultierte, dass es nach diesem Sprint möglich war, Seitentitel im Backend zu bearbeiten. Außerdem stand als Ergebnis ein funktionsfähiges dynamisches Menü zur Verfügung, das mit TypoScript 2.0 arbeitet.
Ein Breadcrumb-Menü aufzusetzen, ist nun ganz einfach. Ein simples „myMenu = BreadcrumbMenu“ reicht aus. Zusätzlich erledigte das Phoenix-Team eine Menge konzeptioneller Arbeit unter der Haube – besonders in Bezug auf die Content-Sicherheit. Ein guter Überblick über den zweiten Sprint findet sich online als Video-Podcast [7].
Sprint 3
Während des dritten Sprints konzentrierte sich das Phoenix-Team weiter auf die grundlegenden Bearbeitungsfeatures im Editor. Dazu gehören Aspekte wie „Seiten hinzufügen“ oder „löschen“. Des Weiteren arbeiteten die Entwickler an der Integration des Rich-Text-Editors Aloha für das Bearbeiten im Frontend. Hier spielen konzeptionelle und technische Details im Hinblick auf Seitenebenen und Content-Typen eine Rolle.
Wo geht die Reise hin?
Die nächsten User-Stories auf dem Weg zu TYPO3 5 Phoenix drehen sich um die Bearbeitung von Inhalten, Templating und das Bearbeiten von Backend-Objekten. Sobald diese fundamentalen Aspekte implementiert sind, werden die Entwickler sich auf fortgeschrittene Features konzentrieren. Dazu gehören zum Beispiel die Integration von Workspaces und Support für Lokalisation. Wenn die damit zusammenhängenden Stories den Status „done done“ erreicht haben, steht bereits ein brauchbares TYPO3 Phoenix zur Verfügung, das dann auch das Gros der wichtigen Features eines CMS beinhalten wird.
Ausblick
Zum heutigen Zeitpunkt ist es schwer, verlässliche Voraussagen zum Termin für einen ersten Release von TYPO3 5.0 mit allen geplanten Komponenten zu treffen. Das Phoenix-Team versucht es dennoch und geht in seiner ersten Release-Einschätzung von Folgendem aus: Sprint Release 10 sollte die meisten Features zur Bearbeitung von Content sowie Nutzergenehmigungen etc. beinhalten.
Wie sich leicht erkennen lässt, rückt TYPO3 5.0 immer näher. Erste Pilotprojekte, die auf FLOW3 setzen und grundlegende CMS-Features ermöglichen, könnten bereits nächstes Jahr möglich sein. Das Phoenix-Team zeigt sich motiviert und arbeitet mit Hochdruck an der Implementierung der geplanten Features. Der Scrum-Prozess erlaubt dem Team dabei eine hohe Transparenz bezogen auf den derzeitigen Stands und auf die kommenden geplanten Schritte.