Entwicklung nach dem Scrum-Prinzip

Seit nunmehr 2 Jahren arbeiten wir an unserem bisher umfangreichsten Projekt: der Entwicklung von heartbeat ONE, einem System zur Dokumentation und Auswertung medizinischer Eingriffe. Dabei werden wir häufig gefragt, wie wir unsere Entwicklung organisieren und dabei in der Lage sind, auch über mehrere Standorte hinweg, sicher zu stellen, dass alle im Team an einem Strang ziehen. In den letzten 10 Jahren haben wir dafür im Laufe der Zeit unzählige Organisationstools, Projekt-Management Systeme und Konzepte eingeführt und wieder abgestoßen. Für heartbeat ONE war uns relativ schnell klar, dass wir entweder mehrere Monate ausschließlich an der Erstellung eines Pflichten- und Lastenheft arbeiten müssten, oder uns nach alternativen Organisationsformen umschauen sollten. Unsere Suche führte uns damals zu Scrum und dem Konzept der agilen Entwicklung.

Scrum Entwicklungszyklus

Was genau ist Scrum überhaupt?

Bei Scrum handelt es sich um eine flexible Strategie zur Produktentwicklung, bei der man annimmt, dass das vorliegende Projekt zu komplex ist, um es auf klassische Weise in einem Pflichten- und Lastenheft zu definieren. Denn gerade dieser traditionelle Weg der vollumfänglichen Planung zu Beginn eines Projektes führt dazu, dass man alle Schritte zum Zeitpunkt des geringsten Wissens planen muss. Mit Scrum sollen früh erste Zwischenergebnisse geschaffen werden, die wiederum getestet und evaluiert werden können. Der langfristige Plan entwickelt sich dabei ebenfalls iterativ während der Projektphase.

Die Vorgehensweise hilft, Prioritäten festzulegen, Unsicherheiten zu minimieren und eine hohe Entwicklungsqualität zu sichern. Scrum wird dabei zunehmend auch außerhalb klassischer Softwareprojekte angewendet. Vom amerikanischen National Public Radio (NPR), über ganze Kirchengemeinden („Scrum in church!“) bis hin zur Hochzeitsplanung („Scrum your wedding!„), lassen sich die unterschiedlichsten Projekte nach dem Scrum Prinzip steuern.

Rollenverteilung innerhalb eines Scrum-Teams

Das Scrum-Konzept kennt dabei drei verschiedenen Rollen:

Klassischerweise sind der Product-Owner und Scrum-Master dabei nicht Teil des Entwicklungsteams, was sich bei kleineren Teamstärken, nicht immer ganz vermeiden lässt.

Erste Schritte einer agilen Entwicklungsplanung

Eine agile Entwicklung ermöglicht es in kurzen Iterationen (Planen, Bauen, Testen) sein Produkt weiterzuentwickeln und kurzfristig auf neue Umstände zu reagieren. Trotz dieser schnellen Reaktionsmöglichkeiten ist eine grundlegende Planung anhand einer langfristigen Roadmap unabdingbar.

Mit Hilfe der Roadmap lassen sich die sogenannten Epics bestimmen, bei welchen es sich um größere Arbeitspakete handelt, welche wiederum in einzelne Stories unterteilt werden. Als (User-) Stories bezeichnet man dabei die Beschreibung einer Anforderung aus Sicht eines Benutzers. Die Beschreibung erfolgt dabei stets nach dem gleichen Aufbau: „Als XXX möchte ich XXX um XXX“. Diese Anfangs doch gewöhnungsbedürftige Schreibweise hilft, den konkreten Nutzen eines Features im Auge zu behalten und auch die Art der Umsetzung offen zu lassen. Im Falle unserer Software kann eine typische Story zum Beispiel heißen: „Als Arzt möchte ich einzelne Antworten einer Patientenbefragung schnell einsehen können, um einen besseren Eindruck vom Gesundheitszustandes des Patienten zu bekommen“. Durch den Gebrauch von Alltagssprache lassen sich dieStories zudem leicht mit allen Stakeholdern besprechen. Die einzelnenStories werden im Folgenden noch um weitergehende Informartionen, wie zum Beispiel Mindestanforderungen, ergänzt.

Keine Sprintplanung ohne vorheriges Grooming

Mit einer stehenden Roadmap und den entsprechenden Epics kann im Anschluss das Backlog weiter verfeinert und ausgebaut werden. Bei diesem handelt es sich um eine priorisierte Auflistung aller Stories. Noch vor der eigentlichen Sprintplanung ist es daher wichtig, ein so genanntes Backlog-Grooming zu veranstalten, bei dem mindestens der Product-Owner sowie der Scrum-Master anwesend sein müssen. Ziel des Groomings ist es, den Backlog vollständig zu pflegen und an aktuelle Gegebenheiten anzupassen. Am Ende des Groomings sollten die folgenden Punkte erreicht sein:

Estimates spielen in der späteren Planung und zeitlichen Abschätzung eine wichtige Rolle. Mit ihrer Hilfe ist es möglich, schnell einen Überblick zu erhalten, wie viel Aufwand die einzelnen Stories bedeuten. Estimates werden dabei in so genannten Storypoints angegeben. Dabei geht es um eine grobe Einschätzung bezüglich Komplexität und Arbeitsaufwand einzelner Stories. Bei uns vergeben wir dafür Story-Points einer Fibonacci-Folge entsprechend mit 1,2,3,5,8 und 13. Die Folge spiegelt dabei die zunehmende Unschärfe bei steigender Komplexität gut wieder.

Damit vor einer Sprintplanung alle bei uns über den aktuellen Backloginformiert sind, gehen wir diesen bereits im Vorfeld nochmals gemeinsam mit dem gesamten Team durch. Unzureichend definierte Stories können so erkannt werden und noch vor der eigentlichen Sprintplanung aufgearbeitet werden.

Die Sprintplanung

Alle zwei Wochen Montags findet bei uns eine neue Sprintplanung statt, zu der das gesamte Team anwesend ist. Wichtigstes Ziel dieser gemeinsamen Besprechung ist die Bestimmung des anvisierten Sprint-Ziels und dem damit verbundenen Arbeitsumfang.

Im Rahmen der Sprintplanung wird von allen beteiligten ein gemeinsames Arbeitspaket bestimmt. Die Größe dieses Pakets orientiert sich vor Allem an den vergebenen Estimates pro Story und dem Wissen, wie vielStorypoints man mit der aktullen Teamstärke pro Sprint bewältigen kann. Dieses Wissen ist rein erfahrungsbedingt und muss zuvor in einigen Trial- and Error-Sprints erlernt werden. Nach einer Weile bekommt man ein gutes Gespür dafür, wie viel Story-Points man tatsächlich binnen eines Sprints erledigen kann. Nicht zu vergessen sind bei der Planung auch etwaige Feiertage, Abwesenheiten durch Urlaub oder sonstige wichtige Termine, zu denen der normale Entwicklungsrhythmus nicht eingehalten werden kann. Diese Faktoren beeinflussen den Umfang der möglichen Arbeitsmenge.

Aus eigener Erfahrung ist es dabei durchaus möglich, dass Pensum für einzelne Sprints deutlich hochzufahren. Dies führt jedoch dazu, dass im nachfolgenden Sprint häufig nochmal nachgearbeitet werden muss und der Durchsatz entsprechend sinkt. Sofern möglich versuchen wir deshalb immer ein gleichbleibendes Pensum pro Sprint umzusetzen. Oder um es in den Worten von Frank Underwood aus der Netflix-Serie House of Cards zu sagen:

Run the marathon, not the sprint.

— Frank Underwood (@Frank_Underwood) 20. Februar 2014

In der weiteren Sprintplanung besprechen wir anschließend jede einzelneStory nochmals separat und ergänzen alle Informationen in unserem Ticket-System (Atlassian’s JIRA):

Für die gesamte Sprintplanung sollten dabei ca. 3–4 Stunden Zeit eingeplant werden. Besonders die Auseinandersetzung mit jeder einzelnen Story ist dabei äußerst zeitintensiv und fordernd. Jedoch hilft eine umfassende Sprintplanung enorm, den Arbeitsaufwand für die folgenden zwei Wochen genau zu bestimmen, so dass es zu möglichst keinen unerwünschten Überraschungen kommt.

Auf die Arbeit fertig los

Nach einer fertigen Sprintplanung wird der neue Sprint von allen gemeinsam gestartet. Welche Stories dabei als erste angegangen werden, ist ebenfalls besprochen, so dass es direkt losgehen kann. Die weiteren Stories werden im Verlauf des Sprints dann Stück für Stück abgearbeitet. Mit unseren ritualisierten morgendlichen Meetings, den so genannten Daily Stand-Up Meetings, sichern wir im Verlauf der Woche den Fortgang des Sprints ab. Dabei berichtet jeder kurz, was er am Vortag geschafft hat und was für heute ansteht. Während der gesamten Zeit ist es die Aufgabe desScrum-Masters die Ablenkung für das gesamte Team möglichst gering zu halten. Zwei Wochen später findet zum Abschluss des Sprints dann einReview statt, bei dem die neuen Features vorgestellt werden. Anschließend geht es dann ins Wochenende und vor der nächsten Sprintplanung am darauffolgenden Montag Mittag veranstalten wir eine kurze Retrospektive, bei der wir den vergangenen Sprint nachbesprechen. Mehr zu diesen Meetings und unserer Arbeitsumgebung in einem zukünftigen Post.

Neben den vielen Vorteilen einer solchen Planungsweise, gibt es für uns einen entscheidenen Aspekt: Jeder im Team ist in den gesamten Planungsprozess involviert. Diese Form der Zusammenarbeit stärkt nicht nur die Moral im Team sondern auch das Engagement eines jeden Einzelnen. Auch wenn der Product-Owner den grundsätzlichen Fahrplan erarbeitet, führen die gemeinsamen Grommings und Sprintplanungen dazu, dass jedes Teammitglied aktiv eingebunden wird und den genauen Verlauf mitbestimmen kann. In unserem Falle hilft die Vorgehensweise auch dabei, unsere auf zwei Standorte verteilte Entwicklung optimal zu unterstützen.

Weitere Informationen

Zusätzlich zu den im Text bereits erwähnten Quellen findet sich auf scrumtrainingseries.com eine unterhaltsame und sehr hilfreiche Video-Einführung zum Thema Scrum. Auch bietet der Blog der Firma Atlassian regelmäßige Einblicke in die praktische Umsetzung von Scrum-Projekten.  Allen die lieber auf die Offline-Lektüre in Papierform zurückgreifen möchten, sei das Buch „Scrum in der Praxis“ empfohlen.

Veranstaltungshinweis

Charite Entrepreneurship Summit 2015 Ankündigung

Für alle die es noch genauer wissen möchten bieten wir im Rahmen des Charité Entrepreneurship Summit 2015 einen Workshop zum Thema „Agile Entwicklung im Gesundheitswesen“ an:
Programmübersicht | Anmeldung

Hinweis: In der Literatur zu agilen Entwicklungsweisen insbesondere dem Scrum-Prinzip gibt es eine Vielzahl an Vorgaben zu Vorgehensweisen, Rollendefinitionen und bestimmten Abläufen. Um eine agile Entwicklung auch bei einer relativ kleinen Teamstärke anwenden zu können, berücksichtigen wir nicht alle Vorgaben strikt. Vielmehr geht es uns darum, mit Hilfe der theoretischen Konzepte ein für uns in der Praxis hilfreiches und unsere Produktivität steigerndes Verfahren zu finden.