Frühe Anwender der agilen Entwicklung waren 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. In letzter Zeit versuchen größere Unternehmen, die Nutzung agiler Methoden auszuweiten, also sie nicht mehr nur auf einzelne Teams und Projekte zu beschränken, und suchen nach Möglichkeiten, sie für ganze Programme anzuwenden. 

Das birgt gewisse Herausforderungen, bedeutet aber nicht, dass es unmöglich ist! Aber hören wir uns zunächst an, wie Gilt, ein Online-Modehändler, mit agilen Methoden sein Unternehmen transformiert.

Das Wasserfallmodell im Vergleich zu agilen Methoden

Beginnen wir mit den Grundlagen – z. B. der Frage, was agile Methoden so einzigartig macht. 

Herkömmliche Projektmanagementverfahren wie das Wasserfallmodell sind in Phasen aufgebaut. Unten siehst du eine Darstellung eines Standardprojekts des Wasserfallmodells. Bei dieser Art der Produktentwicklung werden alle Karten auf ein einziges, hochriskantes "Big Bang"-Release gelegt. Wenn ein Projekt eine Phase durchlaufen hat, kann nur schwer zu dieser zurückgekehrt werden, da Teams immer zur nächsten Phase drängen.

Herkömmliche Projektmanagementverfahren verursachen oft Engpässe, durch die das Projekt erst weitergeführt werden kann, wenn ein blockierendes Problem behoben ist. 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.

Vergleichen wir das mit einem agilen Projektmanagementstil, der auf einem iterativen Entwicklungsansatz mit regelmäßigen Feedbackintervallen basiert. Durch diese Iterationen kann das Team zu anderen Bereichen des Projekts umgeleitet werden (und dort produktiv sein), während ein blockierendes Problem gelöst wird.

Neben der Vermeidung von Engpässen sorgen Iterationen dafür, dass du während der Entwicklung mit dem Produkt interagieren kannst.

Damit erhält das Team wiederum ständige Gelegenheiten, um sich zu entwickeln, Lösungen bereitzustellen, zu lernen und sich anzupassen. Marktänderungen erwischen dich nicht unvorbereitet und Teams können sich schnell an neue Anforderungen anpassen.

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.)

So baust du ein großartiges agiles Programm auf

Wenn ein Programm vom herkömmlichen Projektmanagement zu agilen Methoden übergeht, müssen das Team und die Stakeholder zwei neue wichtige Konzepte verinnerlichen:

  • Der Schwerpunkt des Product Owners liegt auf der Optimierung des Werts der Arbeiten, die das Entwicklerteam bereitstellt. Das Entwicklerteam verlässt sich darauf, dass der Product Owner die wichtigste Arbeit mit der höchsten Priorität kennzeichnet.
  • Das Entwicklerteam kann nur dann Aufgaben annehmen, wenn entsprechende Kapazitäten vorhanden sind. Der Product Owner vergibt keine Arbeiten an das Team und verpflichtet es auch nicht zu beliebigen Abgabeterminen. Das Entwicklerteam entnimmt Aufgaben aus dem Backlog, sobald es neue Arbeit akzeptieren kann.

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 Roadmap wird dargestellt, wie sich ein Produkt oder eine Lösung über die Zeit entwickelt. Roadmaps bestehen aus Initiativen, die große Funktionalitätsbereiche sind, und enthalten Zeitabläufe, mit denen die Verfügbarkeit eines Features kommuniziert wird. Eine Änderung der Roadmap während der Weiterentwicklung des Programms – die subtil, aber auch umfassend sein kann – wird akzeptiert. Der Schwerpunkt der Roadmap soll auf aktuellen Marktbedingungen und langfristigen Zielen liegen. 

Anforderungen

Jede Initiative in der Roadmap wird in eine Sammlung von Anforderungen unterteilt. Agile Anforderungen sind leichtgewichtige Beschreibungen der erforderlichen Funktionalität, nicht die 100-Seiten-Dokumente, die mit herkömmlichen Projekten verbunden sind. 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 Entwicklerteam. Das Entwicklerteam nutzt das priorisierte Backlog dann als zentrale Informationsquelle für alle anstehenden Aufgaben. 

Agile Bereitstellungsinstrumente

Agile Methoden für die Fertigstellung von Software können mithilfe verschiedener Frameworks (wie Scrum und Kanban) implementiert werden. Scrum-Teams verwenden Sprints, um sich durch die Entwicklung leiten zu lassen, und Kanban-Teams arbeiten oft ohne feste Arbeitsintervalle. In beiden Frameworks werden jedoch große Delivery Vehicles wie Epics und Versionen verwendet, um die Entwicklung für einen synchronisierten Release-Rhythmus an die Produktion zu strukturieren. 

Agile Metriken

Agile Teams profitieren von Metriken. Work-in-Progress-Grenzen (WIP) sorgen dafür, dass sich Team und Unternehmen darauf konzentrieren, Aufgaben mit der höchsten Priorität zu 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. 

Weitergehende Einblicke in diese Themen findest du im Abschnitt "Agile Methoden für Programme".

Agile Methoden basieren auf Vertrauen

Ein agiles Programm kann ohne einen hohen Grad des Vertrauens 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 Intervallen stattfinden, werden auch regelmäßig Ideen und Bedenken vorgebracht. Teammitglieder müssen auch Vertrauen in die Fähigkeiten (und die Bereitschaft) der anderen haben, dass die während dieser Gespräche getroffenen Entscheidungen umgesetzt werden. 

Zusammengefasst ist die agile Entwicklung ein strukturierter und iterativer Ansatz für die Softwareentwicklung, Sie ermöglicht dir, auf Änderungen zu reagieren, ohne vom Weg abzukommen. Und das ist für jedes Programm von Vorteil. 

Dargestelltes Produkt
Jira Software-Logo
Projekt- und Vorgangsnachverfolgung