Agiles PM
Agile Vorgehensmodelle sind nicht mehr neu - auch im Bereich der Software-Entwicklung.
Verfechter der klassischen Modelle beklagen bei agilen Vorgehen häufig:
- Fehlende Eignung für Festpreisprojekte
- Feste Fertigstellungstermine
- Hoher Testaufwand nach Iterationen, insbesondere wenn nicht automatisierbar
- Alles-oder-Nichts-Prinzip
- Idealer Kunde erforderlich
- Idealer Programmierer erforderlich
- Beschränkte Team- und damit Projektgröße
- Bewegliche Anforderungen erforderlich
- Einsatz in verteilten Umgebungen
- Kritik an einzelnen Praktiken
- Personalpolitik
Auf der anderen Seite hat das klassische Modell aber deutliche Limitationen.
Insbesondere in großen, komplexen Projekten ist es sehr unwahrscheinlich, dass die Anforderung vollständig analysiert, spezifizieren und darauf basieren die Umsetzungsaufwände als Festpreis angeboten werden können. Dies führt zu einem Einigungsproblem zwischen Kunde und Dienstleister: der Kunde möchte Aufwand, Dauer und Kosten vor Auftragserteilung wissen; der Dienstleister möchte eine diesbezügliche Analyse nicht unbezahlt leisten.
Folgt der Dienstleister den Kundenwünschen, droht die Gefahr der Fehleinschätzung (für beide Seiten); im anderen Fall kann eine späte Gesamtbudgetierung zum Ende des Projektes führen und zu dann unnötigen Spezifikationsaufwänden.
Weitere Defizite klassischer Vorgehensmodelle sind z.B.:
- Zu große Entwicklungs-Inkremente: einmalige Lieferung ganz am Ende oder zu umfangreiche Meilensteine. Wenn das Projekt scheitert oder in die falsche Richtung läuft, bemerkt man es zu spät.
- Anforderungs-Änderungen werden als Problem wahrgenommen, sind unerwünscht.
- Fachbereich und Entwicklung haben kaum direkten Kontakt, kommunizieren über Projektleiter oder Software-Architekten.
- Effizienzverluste durch Prozeß-Overhead (Meetings, Analyse, Dokumentation)
- Dokumentation dient oft nur der gegenseitigen Absicherung bzw. Schuldzuweisung ("Diese Anforderung steht so nicht im Pflichtenheft.", "Das hätten Sie wissen müssen, weil es auf Seite 137, Abschnitt 4.2.1 steht.") und interessiert nach Abnahme keinen mehr.
Für obige Herausforderungen bietet ein agiles Modell eine gute Antwort:
- löst viele Defizite klassischer Vorgehensmodelle
- ermöglicht Festpreisangebot trotz teilweise noch unklarer Anforderungen
- sichert maximalen Business-Nutzen
- sichert Termine zu
- minimiert viele Risiken für Auftraggeber und Auftragnehmer
Vorteil der inkrementellen Entwickelung: anhand eines fertigen Stücks Software (sei es auch noch so klein) kann man bereits früh Tendenzen erkennen für
- im Falle von Client-Anwendungen: die Usability von Benutzerschnittstellen.
- die richtige oder falsche Interpretation der fachlichen Anforderungen durch das Projekt-Team.
- die Machbarkeit eines umfangreichen Projekts.
- die Tragfähigkeit einer Architektur.
- die (Un-)Korrektheit von Technologieentscheidungen.
Es gibt also gute Gründe für agile Vorgehensmodelle und je nach Situation auch unterschiedliche agile Ansätze.
Sprechen Sie uns an auf agile Projektvorgehensmodelle!