Hintergrund
Um ein grosses Softwareprojekt erfolgreich umzusetzen, ist es entscheidend, dass sich alle Entwickler an ein strukturiertes Vorgehensmodell halten. Diese Modelle werden als Projektmanagement-Methoden bezeichnet. Seit der Entstehung der IT-Industrie wurden verschiedene Methoden entwickelt, hinterfragt und verbessert. In diesem Beitrag werden zwei zentrale Modelle betrachtet, nämlich das älteste Modell, "Wasserfall", und "Scrum", das heute weit verbreitet ist.
Wasserfall-Modell
Früher orientierte sich die Softwareentwicklung am Arbeitsprozess in der Baubranche: Erst wurde geplant, dann umgesetzt. Dieses lineare Vorgehen wurde als Wasserfall-Modell bekannt, bei dem die Entwicklung in fünf aufeinanderfolgende Phasen unterteilt war:
- Analyse
- Design
- Implementierung
- Test
- Betrieb
Ein wesentliches Problem des Wasserfall-Modells war die mangelnde Flexibilität. Fehler wurden oft erst spät im Entwicklungsprozess erkannt und Änderungen waren nur schwer umzusetzen. Zudem wurde der Endbenutzer nur zu Beginn und am Ende des Projekts einbezogen, was oft zu Lösungen führte, die nicht optimal auf die tatsächlichen Bedürfnisse abgestimmt waren.
Scrum
Es enstand also die Nachfrage nach einem flexibleren und adaptiven Modell. Scrum wurde entwickelt, um Änderungen frühzeitig zu erkennen, Fehler schnell zu beheben und den Endbenutzer aktiv in den Entwicklungsprozess einzubeziehen.
Die Zentrale Fragestellung bei SCRUM lautet: Wie kann das Risiko in Software Entwicklungsprojekten reduziert werden?
Zeremonien
Scrum zeichnet sich durch eine Reihe strukturierter Meetings aus, die als "Zeremonien" bezeichnet werden.
Sprint Planning: Zu Beginn eines Sprints (eine Zeitspanne von 2–4 Wochen) werden die anstehenden Aufgaben priorisiert und das die zu erfüllenden Aufträge (Sprint-Ziel) festgelegt.
Sprint Review: Am Ende eines Sprints werden die erledigten Aufgaben präsentiert und bewertet. Das Meeting wird absichtlich informell gehalten (keine PP-Slides), um eine offene Diskussion über Fortschritte und mögliche Anpassungen zu ermöglichen.
Sprint Retrospective: Periodisch, etwa nach jedem dritten oder vierten Sprint und direkt im Anschluss, findet eine 15-30 min Reflexion des Teams über die vergangenen Sprints statt. Hierbei werden sowohl Hindernisse identifiziert als auch belohnenswerten Engagement gefeiert. Ziel ist es, kontinuierlich Verbesserungen zu fördern. Dazu eingeladen sind alle Teilnehmer inkl. Kunde. Im wesentlichen werden Sachen angesprochen, die gestartet, gestoppt oder weitergemacht werden sollen.
Daily Scrum (Stand-Up Meeting): Tagtäglich, in einem maximal 15-minütigen Meeting, wird von jeden Teammitglied berichtet, was erledigt wurde, welche Herausforderungen bestehen und woran als Nächstes gearbeitet wird. Dieses hilft, Transparenz zu schaffen und lange, ineffiziente Meetings zu vermeiden. Es sind alle Teilnehmenden eingeladen, der Kunde muss aber nicht präsent sein.
Rollen
Jedes Mitglied eines Scrum-Teams übernimmt eine spezifische Rolle mit klar definierten Verantwortlichkeiten:
- Product Owner: Verantwortlich für die inhaltliche Steuerung des Projekts und die Priorisierung der Anforderungen.
- Scrum Master: Unterstützt das Team organisatorisch, moderiert die Zeremonien und sorgt dafür, dass die Prinzipien von Scrum eingehalten werden.
- Entwickler: Die Fachkräfte, welche die Aufgaben der obigen zwei umsetzen und das Endprodukt entwickeln.
Scrum ermöglicht es Teams, flexibel auf Änderungen zu reagieren, kontinuierlich zu lernen und sich weiterzuentwickeln. Durch regelmäßiges Feedback und enge Zusammenarbeit wird das Risiko reduziert und der Projekterfolg maximiert.