Agilität für Projektmanagervon Steve Graegert

October 12th, 2009 Permalink

Wettbewerbsfähig zu bleiben bedeutet in der heutigen Wirtschaftslage, die richtigen Produkte schneller auf den Markt zu bringen als je zuvor. Agile Methoden weisen den Weg in dem sie Projektteams bei der Produktentwicklung unterstützen und kürzere Entwicklungszeiten zulassen bei gleichzeitig deutlich gesteigerter Qualität der Software.

Der Übergang zu agilen Methoden fordert unsere eingeschliffene Wahrnehmung von der Disziplin des Software Engineering, und damit verbunden auch Managementmethoden und Führungsstile, heraus. Agilität wirkt sich auf alle Rollen eines Teams unterschiedlich aus und eröffnet die Gelegenheit auf völlig neue Art und Weise zusammenzuarbeiten.

Besonders für Projektmanager ändert sich die Methodik im agilen Umfeld. Agilität erfordert ein völlig neues Framework für das Zeitmanagement, Kostenberechnung und Anforderungsmanagement. Zusätzlich wird des Projektmanagers Liebling, die Vorhersehbarkeit des Projektablaufs, stark strapaziert, denn nun heißt es: Embrace Change! {Ron Jeffries}. Risikomanagement wird nun unmittelbar von der Auslieferung lauffähiger Software bestimmt. Zusammenarbeit, Förderung individueller Stärken, ein serviceorientierter Führungsstil, Coaching und die Teamzusammenstellung sind essenzielle Fähigkeiten, die Projektmanagern helfen, agile Teams effektiv und zielgerichtet zu führen.

Mit diesen zusätzlichen Fähigkeiten ausgestattet, lernen agile Projektmanager wie sie in einer ungewissen und sich ständig ändernden Welt noch besser zur Wertschöpfung beitragen können.

Traditionelles Projektmanagement

Die meisten traditionellen Projekte betrachten den Gültigkeitsbereich (engl. Scope) als wichtigstes Abgrenzungskriterium eines Projektes. Oftmals tritt der Scope in Form einer langen List mit Produktanforderungen in Erscheinung.

Projektmanager arbeiten evtl. mit Ressource Managers zusammen um Abschätzungen für jeden funktionalen Bereich zu ermitteln, der von den Anforderungen betroffen ist. Diese Abschätzungen werden in der Regel in Arbeitsstunden oder -tagen dokumentiert, ohne genaue Informationen über die eigentliche Implementierung der Anforderungen. Anschließend werden daraus die notwendigen Personentage, Ressourcen und andere Faktoren abgeleitet, so dass davon wiederum eine Kostenschätzung hergeleitet werden kann. Das wir davon aber weit entfernt sind, wird in den folgenden Ausführungen deutlich.

Am Anfang des Projekts verfügt das Team über wenig verwertbare Informationen über die Quantität der notwendigen Arbeit. Gleichermaßen weiß auch das Projektmanagement nicht genau, welche Teammitglieder welche Aufgaben erledigen werden oder wie die Ressourcen allgemein auf das Projekt optimal verteilt werden können.

Mit nur sehr wenigen Informationen über die tatsächliche Lösung (das Produkt) und über die Arbeitsaufteilung ist es fast unmöglich eine zuverlässige Aussage über ein Fertigstellungsdatum zu treffen. Projektmanager erstellen Projektpläne auf diesen unvollständigen Informationen und geben ihr bestes, das Projekt nach diesem vom Auftraggeber abgesegneten Plan abzuwickeln.

Diese Herangehensweise hat sich in der Vergangenheit nicht als zuverlässige Methodik zur Abschätzung von Projektdauer, -größe und -kosten bewiesen. Was die Sache noch schlimmer macht ist die Tatsache, dass von der Annahme einer absoluten Sicherheit über die Vollständigkeit, Korrektheit und Unveränderlichkeit der Anforderungen ausgegangen wird und die Methodik Veränderungen gar nicht vorsieht.

Agiles Projektmanagement kurz und knapp

Agiles Projektmanagement geht von der Prämisse aus, das Softwareprojekte unvorhersehbar sind und dass Marktveränderungen zu unmittelbaren Korrekturen der Anforderungen an das Produkt führen. Die Ungewissheit über Marktentwicklungen führt automatisch zu veränderten Anforderungen während der gesamten Laufzeit des Projekts, und je unsicherer die Entwicklungen sind, desto besser muss das Team darauf eingestellt werden.

Aus diesen Gründen ist der Scope eines Projekts ein denkbar schlechter Ausgangspunkt für die Planung von Softwareprojekten und Erhebung von Leistungskennzahlen eines solchen. Stattdessen geht die Planung agiler Projekte von den beiden Faktoren Zeit und Kosten aus, da diese beiden Rahmenbedingungen meist zu Beginn des Projekts feststehen. Die Auftraggeber wissen in der Regel wie viel Geld sie in das Projekt investieren möchten und wann es spätestens einsatzbereit sein muss.

Anforderungen werden in agilen Projekten in kleine Häppchen des antizipierten Endprodukts aufgeteilt, und möglichst unabhängig voneinander herausgelöst, so dass sie einzeln priorisiert und implementiert werden können, ohne sich an eine bestimmte Reihenfolge halten zu müssen. Kleine überschaubare, unabhängige Module sind kritisch für die Fähigkeit mit Veränderungen im Projektverlauf fertig zu werden, ohne dass sie besondere Auswirkungen auf das Projektteam nach sich ziehen.

Innerhalb von zuvor vereinbarten Iterationen, meist in einer länge zwischen zwei und vier Wochen, werden immer wieder Häppchen aus dem Backlog realisiert, so dass nach einer Iteration andere Features nachrücken und ggf. wieder neu priorisiert werden können.

Agile Teams stellen nun langsam fest, wie viele dieser Fragmente sie innerhalb einer Iteration fertigstellen können und verstehen dadurch wie viele der Anforderungen des Projekts sie innerhalb des Budgets und Zeitplans realisieren können.

Agile Projektplanung

Projektmanager agiler Teams befassen sich primär mit zwei Leistungsindikatoren: die Größe des Backlogs und Velocity. Das Product Backlog ist die Liste der Anforderungen an das Endprodukt. Es besteht meist aus einer priorisierten Ansammlung von Features, die das Team sofort umsetzen kann. Die einzelnen Positionen eines Backlogs wurden entweder in Stunden, Tagen oder abstrakten Maßeinheiten, wie Story Points, abgeschätzt. Die Zahl aller Elemente ist die Gesamtgröße des Product Backlogs.

Velocity beschreibt wie viele Elemente des Backlogs vom Team innerhalb einer Iteration erledigt werden konnten. Diese Größe kann über ein festgelegten Zeitraum gemessen werden und repräsentiert den Durchsatz des Teams oder die Geschwindigkeit in der das gesamte Backlog abgearbeitet werden kann. Das Fertigstellungsdatum wird durch eine einfache Formel berechnet:

Iterationen bis zur Fertigstellung = Größe des Backlog / Dauer einer Iteration

Die ideale Geschwindigkeit (ideal Velocity) ist der Durchsatz welcher notwendig ist, um das Backlog vollständig innerhalb des vorgegebenen Zeitraums und der angesetzten Kosten umzusetzen. Die eigentliche Geschwindigkeit ist der wahre Durchsatz des Teams in jeder Iteration. Die Differenz zwischen der idealen und der eigentlichen Geschwindigkeit ist der wichtigste Indikator über den Projektfortschritt in Relation zu den Erwartungen des Auftraggebers. Je dichter die beiden Größen bei einander liegen umso wahrscheinlicher ist es, dass das gesamte Product Backlog termingerecht realisiert werden kann.

Teams mit vorhersagbarem Durchsatz können eine durchaus fundierte Vermutung über einen möglichen Fertigstellungstermin anstellen. Wenn Zeit und Kosten unveränderliche Größen sind, kann die Anzahl der umgesetzten Features innerhalb dieser Grenzen abgeschätzt werden.

Teams mit schwankendem Durchsatz sind nicht vorhersehbar und führen in der Regel zu unterschiedlichen Ergebnissen bei der Projektabwicklung. Das konstante Beobachten des Durchsatzes erlaubt Projektmanagern viel über das Team zu lernen und zu erfahren wie bestimmte Ergebnisse bei der Projektabwicklung zustande kommen.

Agile Teams führen

In agilen Projekten übernimmt das Team die Verantwortung für die Auslieferung und sollte daher die notwendigen Freiheiten erhalten, dies es benötigt um sich selbst bestmöglich zu organisieren. Das Team kann autonom entscheiden wie es die Arbeit erledigen möchte. Agile Projektmanager können das Team unterstützen indem Sie die Entscheidungen neutral bewerten und dem Team mitteilen, ob es mit diesem Ansatz erfolgreich ist oder eher nicht.

Um die Wahrscheinlichkeit einer erfolgreichen Projektabwicklung zu unterstützen können Projektmanager den Kontext des Projektes aktiv gestalten. Sie können die Umgebung des Teams verändern, die Entscheidungsfindung im Team fördern und Autonomie zusagen wann immer möglich. Agile Projektmanager gehen von den besten Qualitäten der Teammitglieder aus, gehen auf individuelle Stärken ein und respektieren das Team als gleichwertiger Partner. Sie helfen die Kultur zu verändern und fördern ein gesundes Arbeitsklima.

Die Autonomie kommt mit einem Preisschild und das heißt häufige Produktveröffentlichungen. Das Team bekennt sich am Beginn einer jeden Iteration zu einem gemeinsamen Ziel und ist auch selbst verantwortlich für die Einhaltung desselben. Es ist für agile Projektmanager unabdingbar im Team eine Kultur der Selbstverantwortung zu bilden und mit dem Team kontinuierlich daran zu arbeiten. In diesem Aspekt ist der Projektmanager verantwortlich, Policies, Prozeduren und Metriken zu etablieren, die die Gesamtleistung der Projektabwicklung steigern.

Zusammenarbeit mit agilen Teams

Nicht jedes Team wird einen dedizierten Projektmanager benötigen. Viele agile Teams tragen einem oder mehreren Teammitgliedern diese Rolle an, sofern sie qualifiziert sind und über ausreichend Kapazitäten zur Wahrnehmung der Doppelrolle verfügen. Ein Mitglied der Entwickler oder ein Product Owner kann als PM für kleine Teams fungieren.

Ein Projektmanager wird nicht selten beauftragt die Lücke zwischen dem Team und dem Auftraggeber auszufüllen oder Aktivitäten außerhalb des Teams zu organisieren und zu verwalten. Desweiteren werden sie häufig in agilen Teams benötigt, um Kommunikationspläne zu erstellen oder die Zusammenarbeit zwischen mehreren agilen Teams zu koordinieren.

Der Projektmanager muss immer bemüht sein, ein gleichwertiges Mitglied des Teams zu sein und andere Mitglieder bei der Erstellung von Plänen und anderen Tätigkeiten einzubinden. Auf diese Weise wird eine solide Basis für eine vertrauensvolle Zusammenarbeit und hohe Integrität des Teams geschaffen.

Jede Iteration beginnt mit intensiven Sitzungen gefolgt von ad-hoc-Interaktionen zwischen Teammitgliedern. Projektmanager können das Team bei der Selbstfindung unterstützen in dem sie es bei der Planung der Ziele einer Iteration konstruktiv beraten, so dass sie realistisch sind und auf Basis eines vertretbaren Durchsatzes eingestuft wurden. Die Übernahme der Leistungsüberwachung innerhalb und zwischen den Iterationen ist eine weitere Tätigkeit für Projektmanager, damit das Team mehr Zeit für die Abarbeitung des Product Backlog hat.

Die meisten agilen Ansätze definieren eine Rolle des Projektmanagers nicht explizit. In Scrum, beispielsweise, werden viele typtische Zuständigkeiten eines Projektmanagers auf den ScrumMaster und den Product Owner verteilt. Die Rollen innerhalb des Projektteams zu identifizieren und Verantwortlichkeiten zu definieren ist die wichtigste Aufgabe des Projektmanagers, insbesondere wenn er sich in ein bestehendes Team integrieren muss.

Neue Fähigkeiten für Projektmanager

Ein agiler Projektmanager muss viel mehr Führungsqualitäten aufweisen als in traditionellen Projekten. Seine Aufgabe ist es, die Kommunikation zwischen den Teammitgliedern zu fördern, die Motivation zu steigern, und organisatorische Hindernisse zu beseitigen, die einer erfolgreichen Projektabwicklung im Wege stehen könnten. Dazu gehört auch, das Team einfach Team sein zulassen, es autonom im eigenen Interesse entscheiden zu lassen. Neben diesen Soft Skills müssen Projektmanager den gesamten Prozess der Softwareentwicklung in einem neuen Licht betrachten.

Agilität erlaubt dem Projektmanager, sich von den ganzen vielen kleinen Details der Produktlösung wie beispielsweise Implementierungsdetails zu entfernen und sich auf Techniken wie rollierende Planung{zeitlich nahe Fakten sind deutlicher erkennbar als weit entfernte Fakten; die Planung kann somit nur über ein paar Wochen, höchstens zwei Monate erfolgen} und progressive Elaboration {Arbeitspakete werden im Laufe der Zeit immer weiter verfeinert, so dass wir bei der Planung von zunächst grob abgezeichneten Arbeitspaketen ausgehen} konzentrieren um Projektpläne zu definieren. Auf Seite des Auftraggebers führt das oft zu Irritationen, da sie in der Regel gewohnt sind, bereits zu Projektbeginn über alle Details, wie Kosten, Zeit und Umfang, vollständig informiert zu sein. Projektmanager müssen lernen wie progressive Elaboration Risiken minimieren und die Erfolgschancen eines Projekts steigern kann. Ein solides Verständnis über die agile Softwareentwicklung hilft Projektmanagern zu verstehen, wie agile Teams optimal organisiert, welche Fähigkeiten benötigt werden und welche Besonderheiten agile Teams auszeichnen.

Die Dynamik und kollaborative Entscheidungsfindung agiler Teams zu verstehen ist wichtig, den agiles Projektmanagement heißt sich selbstorganisierende Teams zu führen. Projektmanager nehmen hier in erster Linie die Rolle eines Dienstleisters und Mediatoren an und müssen in der Lage sein, das Team zu motivieren eigene Entschlüsse zu fassen. Mit diesen Fähigkeiten sind Projektmanager in der Lage, Anregungen aus dem Team und anderer Beteiligter zu akzeptieren und gleichzeitig das Bekenntnis zum Projekt zu steigern.

Traditionelle Projekte in neuem Gewand

Zwar ist der Übergang zu agilen Methoden nur selten einer Entscheidung des Projektmanagers zu verdanken, allerdings gibt es vieles was er beisteuern kann, um dem Unternehmen zu zeigen wie wertvoll agile Methoden sein können.

In traditionellen Projekten erstellt der Projektmanager einen Projektplan, der beschreibt, wie das Projekt abgewickelt wird. Oftmals geschieht das nach dem Vorbild des PMBOK (PMI Project Management Body of Knowledge) oder anderen PM-Frameworks. Auch wenn es sich bisher nicht so angehört hat, kann vieles in agilen Projekten anhand traditioneller Frameworks beschrieben werden. Diese Ansätze können oftmals in den Kontext einer traditionellen Projektplanung integrierte werden.

Oftmals sind Projektmanager mit der Aufgabe betraut, spezifische Aktivitäten während des Projektablaufs zu beobachten und zu beurteilen. Work Breakdowns, beispielsweise, sollen in der Regel auf Ergebnissen und nicht auf Aktivitäten beruhen. PMs können diese Breakdowns einfließen lassen in dem sie einfach die Features des Product Backlog berücksichtigen. Auf diese Weise können traditionelle Methoden zur Abschätzung beibehalten werden.

Desweiteren sind Gantt-Diagramme des traditionellen Projektmanager’s Liebling. Manche Organisationen setzen die Erstellung eines Gantt-Diagramms als Teil des Projektplans bereits vor Projektstart voraus. Iteratives Planen mit dem Projektteam hilft, den Projektplan mit dem Team zu synchronisieren. Die Erkenntnisse aus der Iteration können in den nächsten Planungsworkshop einfließen und den Projektplan weiter verfeinern.

Tägliche Projektmeetings sind in agilen und traditionellen Projekten gleichermaßen etabliert, besonders wenn Projekte mit außerordentlich hohem Risiko realisiert werden. Diese täglichen Prüfpunkte erhöhen die Sichtbarkeit zwischen Teammitgliedern und erlauben dem Projektmanagement einen Echtzeiteinblick in den Projektfortschritt. Diese Meetings können die Bindung im Team fördern und die Übernahme einer gemeinsamen Verantwortung für das Projekt bewirken.

Fazit

Die richtigen Produkte schneller auf den Markt zu bringen als die Konkurrenz ist kritischer als je zu vor. Traditionelle PM-Frameworks sind nicht flexibel genug, um mit sich ständig ändernden Rahmenbedingungen zu Recht zukommen. Die Agile Projektabwicklung erlaubt Teams Produkte auszuliefern, die innerhalb des Budgets und des Zeitrahmens liegen und die wichtigsten Features des Auftraggebers beinhalten.

Die Projektmanager können dabei eine Schlüsselrolle spielen. Allerdings müssen sie ihre Denkweise hinsichtlich der Zeit-, Kosten- und Ressourcenplanung ändern um mit Ungewissheit, Veränderungen und Risiken fertig zu werden. Sie müssen neue Fähigkeiten verinnerlichen und neue Ansätze zur Planung, Überwachung und zum Controlling von Projekten erlernen. Gut ausgebildete Projektmanager setzen den Rahmen für erfolgreiche Projekte und Teams liefern sie.

Ein Kommentar zu “Agilität für Projektmanager”

Kommentieren