Agiles Programmmanagement

Viele glauben, dass bei einem Übergang zu agilen Methoden der Überblick über das große Ganze verloren geht. Dem können wir ganz und gar nicht zustimmen.

Dan Radigan Dan Radigan
Themen durchsuchen

Frühe Anwender der Agile-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, Agile zu skalieren und nicht mehr nur auf einzelne Teams und Projekte zu beschränken. Sie suchen nach Möglichkeiten, Agile auf ganze Programme anzuwenden.

Das birgt gewisse Herausforderungen, bedeutet aber nicht, dass es unmöglich ist!

Das Wasserfallmodell im Vergleich zu agilen Methoden

Beginnen wir mit den Grundlagen, zum Beispiel mit der Frage, was Agile so einzigartig macht.

Bei herkömmlichen Projektmanagementverfahren wie dem Wasserfallmodell erfolgt die Entwicklung in Phasen. Unten siehst du eine Darstellung eines Standardprojekts im Wasserfallmodell. Bei dieser Art der Produktentwicklung setzen die Teams alles auf ein einziges, hochriskantes "Urknall"-Release. Wenn ein Projekt eine Phase durchlaufen hat, kann das Team nur schwer zu dieser zurückkehren, da sich die nächste Phase sehr schnell anschließt.

Beispiel für einen Wasserfall-Release | Atlassian Agile Coach

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 dem Projektmanagement im Agile-Stil, 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.

Beispiel für agiles Projektmanagement | Atlassian Agile Coach

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 bei der 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 Agile-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 Produktinhabers liegt auf der Optimierung der vom Entwicklerteam erzielten Arbeitsergebnisse. Das Entwicklerteam verlässt sich darauf, dass der Produktinhaber den wichtigsten Aufgaben die höchste Priorität zuordnet.
  • 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 neue Arbeit annehmen 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. Änderungen der Roadmap während der Weiterentwicklung des Programms sind unabhängig vom Umfang der Änderung akzeptabel. Der Schwerpunkt der Roadmap sollte auf den aktuellen Marktbedingungen und langfristigen Zielen liegen.

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 trägt alle Aufgabenelemente im Backlog ein: neue Features, Bugs, Verbesserungen, technische oder architekturbezogene Tasks usw. Der Produktinhaber priorisiert die Aufgaben im Backlog für das Entwicklerteam. Die Entwickler nutzen das priorisierte Backlog dann als zentrale Informationsquelle für alle anstehenden Aufgaben.

Agile Bereitstellungsinstrumente

Agile kann mithilfe verschiedener Frameworks für die Softwareentwicklung (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 größere Bereitstellungsinstrumente wie Epics und Versionen verwendet, um die Entwicklung für eine synchronisierte Abfolge an Releases für die Produktion zu strukturieren.

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

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.

Unter dem Strich ist die Agile-Entwicklung ein strukturierter und iterativer Ansatz für die Softwareentwicklung. Du kannst damit auf Änderungen reagieren, ohne vom Weg abzukommen. Und das ist für jedes Programm von Vorteil.

Weiter geht's
Workflow