Redaktioneller Beitrag: Laureli Mallek, Program Manager
Frühe Anwender der Agile-Entwicklung waren meist kleine, eigenständige Teams, die an kleinen, in sich geschlossenen Projekten arbeiteten. Sie bewiesen, dass das Agile-Modell funktionieren kann – sehr zur Freude von Softwareherstellern aus aller Welt, die um ein Vorwärtskommen bemüht waren. Wie sich herausstellte, war die Wasserfall-Methode gegenüber dem agilen Projektmanagement im Nachteil und für die meisten Softwareentwicklerteams weniger effizient.
Das agile Projektmanagement erfreut sich inzwischen so großer Beliebtheit, dass Unternehmen diesen Ansatz nicht mehr nur auf einzelne Teams oder Projekte, sondern auf ganze Programme anwenden. Agile hat sich weit über die Entwicklerteams hinaus in IT-, Marketing-, Geschäftsentwicklungs- und weiteren Teams verbreitet.
Was ist agiles Projektmanagement?
Das agile Projektmanagement ist ein iterativer Ansatz für die Durchführung von Projekten. Im Mittelpunkt stehen dabei fortlaufende Releases, in denen das Feedback von Kunden berücksichtigt wird. Die Fähigkeit, sich während jeder Iteration anzupassen, fördert die Geschwindigkeit und Anpassungsfähigkeit. Dieser Ansatz unterscheidet sich von einem linearen Ansatz für das Projektmanagement, der einem festgelegten Weg folgt und nur in begrenztem Maße Abweichungen erlaubt.
With today’s customers and businesses requiring rapid responses and changes, agile provides the flexibility to adjust and iterate during the development process. Agile project management is also a cornerstone of DevOps practices, where development and operations teams work collaboratively.
Was versteht man unter einem Wasserfall-Projektmanagement?
Der Wasserfallansatz für das Projektmanagement beinhaltet eine klar definierte Abfolge in der Projektdurchführung mit Projektphasen, in denen erst weitergearbeitet werden kann, nachdem eine Phase endgültig genehmigt wurde. Sobald eine Phase abgeschlossen ist, kann es schwierig und kostspielig sein, zu einer früheren Phase zurückzukehren. Agile Teams können eine ähnliche Abfolge anwenden, unterteilen diese jedoch in kleinere Schritte mit regelmäßigen Feedbackschleifen.
Der Wasserfallansatz für das Projektmanagement folgt einer linearen, sequenziellen Formel. Er funktioniert gut für Aufgaben mit vorhersehbaren, wiederkehrenden Prozessen, kann jedoch in Entwicklerteams dazu führen, dass sie nicht flexibel genug sind, sich schneller als die Konkurrenz an neue Gegebenheiten anzupassen.
A single missed deadline or scope change during a waterfall project can cause outsized impacts on subsequent releases. Additionally, when a team is fully focused on the next phase of work, resolving technical debt or fixing bugs can be painful if the team is fully allocated to new feature work and always pressing forward to the next stage.
Unten ist ein Standard-Wasserfallprojekt mit starr segmentierten Zeitblöcken abgebildet. Dies schafft eine Mentalität nach dem Grundsatz "Use it or lose it" (Nutzen oder Abgeben), die Entwickler, Produktinhaber und Stakeholder dazu ermutigen kann, in jedem Zeitfenster so viel wie möglich anzufordern, da es in Zukunft möglicherweise keine Gelegenheit gibt, zu iterieren. In der Regel versuchen Teams, die den Wasserfallansatz verwenden, den Scope Creep durch "Change Control" zu begrenzen – man ist sich einig, dass die ursprüngliche Vereinbarung nicht geändert wird.
Das Wasserfallmodell kann einige der bekannten Probleme bei der Produktentwicklung verschärfen:
- Blocker und Abhängigkeitsmanagement: Herkömmliche Projektmanagementverfahren verursachen oft Engpässe, durch die das Projekt erst weitergeführt werden kann, wenn ein blockierendes Problem behoben ist.
- Mangel an Feedback und Produktbewertungen durch die Benutzer: Um das Ganze noch zu verschlimmern, kann der Endkunde erst mit dem Produkt interagieren, wenn es komplett abgeschlossen ist. Daher werden wichtige Probleme im Produktdesign und Code erst nach dem Release entdeckt.
Die Vorteile der Wasserfall-Methode
- Weniger Koordinierungsaufwand durch klar definierte, aufeinander folgende Phasen.
- Eine übersichtliche Projektphase hilft dabei, die Abhängigkeiten der einzelnen Arbeitsschritte eindeutig zu definieren.
- Die Kosten des Projekts können abgeschätzt werden, nachdem die Anforderungen definiert sind.
- Stärkerer Fokus auf die Dokumentation von Entwürfen und Anforderungen.
- Dem Schreiben von Code geht eine methodischere und stärker strukturierte Entwurfsphase voraus.
Die Vorteile der Wasserfall-Methode
- Schwierigere Aufteilung und Arbeitsteilung aufgrund strengerer Phasenabfolgen. Teams sind stärker spezialisiert.
- Risiko von Zeitverlusten aufgrund von Verzögerungen und Rückschlägen bei Phasenübergängen.
- Zusätzlicher Einstellungsbedarf für auf Phasen spezialisierte Teams, während agile Methoden eine funktionsübergreifende Teamzusammensetzung fördern.
- Zusätzlicher Kommunikations-Overhead bei der Übergabe zwischen Phasenübergängen.
- Die Produktverantwortung und das Engagement sind im Vergleich zu agilen Methoden möglicherweise nicht so stark ausgeprägt, da der Schwerpunkt auf die aktuelle Phase gelegt wird.
Agile vs. Waterfall Methodologies
Agile wurde zuerst von Softwareteams übernommen, die vom traditionellen, sequenziellen Wasserfallansatz zu einer Methode übergingen, bei der während des gesamten Entwicklungslebenszyklus konsistentes Feedback eingeholt wird und Anpassungen vorgenommen werden.
Das agile Projektmanagement basiert auf einem iterativen Entwicklungsansatz aus mehreren inkrementellen Schritten mit regelmäßigen Feedbackintervallen. Dies fördert die Anpassungsfähigkeit, da das Team während des gesamten Produktentwicklungsprozesses flexibel auf neue Situationen reagieren kann, anstatt sich auf einen linearen Weg zu beschränken. Auf diese Weise sind auch regelmäßige, hochkarätige Releases möglich, mit denen Teams im Laufe der Zeit einen Erfolg nach dem anderen einfahren können.
Iterative Releases ermöglichen einem Team Folgendes:
- Anpassung an sich ändernde Umstände von neu entdeckten Anforderungen bis hin zu einer blockierten Aufgabe
- Sammeln von Feedback der Stakeholder bereits während des Entwicklungsprozesses und Iterieren ohne den Stress einer endgültigen Lieferfrist
- Aufbau von rollenübergreifenden Beziehungen, die es den Mitarbeitern erleichtern, effektiv miteinander in Verbindung zu treten und zu kommunizieren
Agile macht Teams widerstandsfähiger gegenüber Änderungen, die zwangsläufig während eines Projekts auftreten.
Einen noch größeren Vorteil stellen die geteilten Kompetenzen im Softwareteam dar. Die sich überschneidenden Kompetenzen des Teams sorgen für zusätzliche Flexibilität für die Arbeit in allen Bereichen der Codebasis des Teams. Auf diese Weise sind Arbeit und Zeit nicht verschwendet, wenn sich die Projektausrichtung ändert. (Mehr dazu erfährst du in unserem Artikel zum Aufbauen großartiger agiler Teams.)
Agile Prinzipien
- Ein agiles Projekt ist in mehrere inkrementelle Schritte unterteilt, die regelmäßige Feedbackintervalle beinhalten.
- Eine Projektanforderung wird in kleinere Teile unterteilt, die dann nach Bedeutung priorisiert werden.
- Die Zusammenarbeit, insbesondere mit dem Kunden, wird gefördert.
- In regelmäßigen Abständen werden Anpassungen vorgenommen, um die Kundenanforderungen garantiert zu erfüllen.
- Planung und Ausführung sind integriert, damit die Teams effektiv auf sich ändernde Anforderungen reagieren können.
Die Vorteile agilen Projektmanagements
- Schnellere Feedbackzyklen
- Frühzeitige Erkennung von Problemen
- Höhere Wahrscheinlichkeit, Kunden zufriedenzustellen
- Die Markteinführungszeit wird drastisch verkürzt
- Bessere Sichtbarkeit/Verantwortlichkeit
- Spezialisierte Teams werden im Laufe der Zeit produktiver
- Flexible Prioritätensetzung mit Fokus auf Wertschaffung
Die Nachteile der agilen Methode
- Der kritische Pfad und die Abhängigkeiten zwischen Projekten sind möglicherweise nicht so klar definiert wie bei der Wasserfall-Methode.
- Hoher Schulungsaufwand im Unternehmen
- Eine echte agile Projektumsetzung mit einer kontinuierlichen Bereitstellungspipeline ist mit vielen technischen Abhängigkeiten und Entwicklungskosten verbunden.
Zu berücksichtigende Aspekte bei der Umstellung auf Agile
Der Umstieg auf Agile kann eine Herausforderung sein, insbesondere wenn ein Team oder ein Unternehmen in einem herkömmlichen Projektmanagementansatz verwurzelt ist. Möglicherweise sind eine Reihe von Prozessänderungen erforderlich, insbesondere bei der Einführung eines DevOps-Ansatzes, bei dem Entwickler- und Operations-Teams eng an der Softwareentwicklung und -wartung zusammenarbeiten. Bei der Einführung agiler Methoden müssen das Team und die Stakeholder zwei neue wichtige Konzepte verinnerlichen:
- Der Schwerpunkt des Produktinhabers liegt auf der Wertoptimierung der Arbeitsergebnisse des Teams. Das Team verlässt sich darauf, dass der Produktinhaber die wichtigsten Aufgaben mit der höchsten Priorität kennzeichnet.
- Das Entwicklerteam kann nur dann Aufgaben annehmen, wenn entsprechende Kapazitäten vorhanden sind. Der Produktinhaber vergibt keine Aufgaben an das Team und verpflichtet es auch nicht zu beliebigen Abgabeterminen. Das Entwicklerteam entnimmt Aufgaben aus dem Backlog, sobald es Kapazitäten für neue Aufgaben hat.
Sehen wir uns die Mechanismen an, die in agilen Programmen genutzt werden, um Aufgaben auf eine iterative Weise zu organisieren, auszuführen und zu strukturieren.
Roadmaps
In einer Produkt-Roadmap wird dargestellt, wie sich ein Produkt oder eine Lösung über die Zeit entwickelt. Eine Roadmap stellt in der agilen Entwicklung wichtigen Kontext bereit, den die Teams zum Erreichen inkrementeller und projektweiter Ziele benötigen. Roadmaps bestehen aus Initiativen, die große Funktionalitätsbereiche sind, und enthalten Zeitabläufe, mit denen die Verfügbarkeit eines Features kommuniziert wird. Während das Team die Aufgaben bearbeitet und dazulernt, ändert sich die Roadmap, um diese neuen Informationen widerzuspiegeln – diese Änderungen können subtil, aber auch umfassend sein. Der Schwerpunkt der Roadmap soll auf aktuellen Bedingungen, die sich auf das Projekt auswirken, und langfristigen Zielen liegen, um effektiv mit den Stakeholdern zusammenzuarbeiten und auf die Mitbewerber zu reagieren.
Die folgende Abbildung zeigt eine einfache Roadmap für ein Produktteam mit umrahmten Initiativen und in Rot dargestellten Zeitleisten.
Anforderungen
Jede Initiative in der Roadmap wird in eine Sammlung von Anforderungen unterteilt. Bei Agile sind die Anforderungen nur kurze Beschreibungen der erforderlichen Funktionalität, nicht die bei herkömmlichen Projekten üblichen 100-Seiten-Dokumente. Sie werden über die Zeit weiterentwickelt und reflektieren das gemeinsame Verständnis des Teams für den Kunden und das gewünschte Produkt. Agile-Anforderungen bleiben kurz und knapp formuliert, solange die Teammitglieder durch fortlaufende Gespräche und Zusammenarbeit ein gemeinsames Verständnis entwickeln. Erst wenn die Implementierung beginnen soll, werden sie detailliert ausgearbeitet.
Backlog
Das Backlog legt die Prioritäten für das agile Programm fest. Das Team fügt alle Aufgabenelemente in das Backlog ein: neue Features, Bugs, Verbesserungen, technische oder architekturbezogene Aufgaben usw. Der Product Owner priorisiert die Aufgaben im Backlog für das Entwicklungsteam. Das Entwicklerteam nutzt das priorisierte Backlog dann als zentrale Informationsquelle für alle anstehenden Aufgaben.
Agile Metriken
Agile-Teams profitieren von Metriken. Work-in-Progress-Grenzen (WIP-Grenzen) sorgen dafür, dass Team und Unternehmen immer die Aufgaben mit der höchsten Priorität bearbeiten. Diagramme wie Burndown- und Kontrollcharts unterstützen das Team, den Lieferrhythmus zu prognostizieren. Engpässe können mithilfe eines kontinuierlichen Flussdiagramms erkannt werden. Diese Metriken und Artefakte sorgen dafür, dass sich alle auf die großen Ziele konzentrieren und das Team geplante Aufgaben mit größerer Zuversicht fertigstellen kann.
Agile Methoden basieren auf Vertrauen
Agile-Prozesse können ohne einen hohen Grad an Vertrauen unter den Teammitgliedern nicht funktionieren. Für die schwierigen Gespräche darüber, was richtig für das Programm und das Produkt ist, ist eine gewisse Offenheit erforderlich. Da Gespräche in regelmäßigen Abständen stattfinden, werden auch regelmäßig Ideen und Bedenken vorgebracht. Teammitglieder müssen Vertrauen in die Fähigkeiten (und die Bereitschaft) der anderen haben, dass die während dieser Gespräche getroffenen Entscheidungen umgesetzt werden.
Fazit
Das agile Projektmanagement ist ein innovativer Ansatz, der sich nicht nur für das Management von Softwareprojekten, sondern für Projekte jeder Art eignet. Da die Teams während des gesamten Entwicklungslebenszyklus flexibel auf Veränderungen reagieren können, lassen sich mit Agile qualitativ hochwertigere Produkte ausliefern, die den Anforderungen der Kunden entsprechen. Agile stärkt Teams, sorgt für ein größeres Verantwortungsbewusstsein und fördert Innovationen sowie kontinuierliche Verbesserungen. Agile versetzt dich in die Lage, auf Änderungen zu reagieren, ohne dabei vom Weg abzukommen. Davon profitiert jedes Programm.
Learn more about agile project management and check out our free jira project management template. Plus, dive into agile adoption with agile tools for software teams, and learn how to communicate the progress of work across teams.