Agile Softwareentwicklung

Mehr Erfolg durch Flexibilität

12.10.2009
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
Agile Methoden zur Softwareentwicklung erlauben es, in Projekten schnell und flexibel auf Veränderungen zu reagieren. Damit passen sie ideal zu kleinen und mittelständischen Firmen.
Mikhail Tolstoy /Fotolia.com
Mikhail Tolstoy /Fotolia.com
Foto: Mikhail Tolstoy /Fotolia.com

Ein immer schärferer Wettbewerb, kürzere Produktionszyklen, steigende Komplexität, höhere Qualitätserwartungen: Softwareprodukte müssen nicht nur innovativ und nützlich sein, sondern auch zügig auf den Markt gebracht werden. Deshalb müssen sie schnell, flexibel und effizient entwickelt werden.

Die Entwickler spüren das zuerst. Sie müssen sich ständig den zum Teil auch kurzfristig geänderten Kundenwünschen anpassen und schnell auf Technologietrends reagieren.

Mehr Flexibilität durch agile Prozesse

Die Flexibilität und Reaktionsfähigkeit, die die moderne Softwareentwicklung erfordert, finden IT-Projektverantwortliche zunehmend in den so genannten agilen Methoden. Entstanden ist diese Art der Softwareentwicklung als Gegenbewegung zu den traditionellen, oft als schwerfällig und bürokratisch empfundenen Vorgehensmodellen (Rational Unified Process und V-Modell). Hauptziel ist ein flexibler und schlanker Prozess.

Beispielsweise werden im klassischen Software-Projekt-Management möglichst alle Anforderungen in einer langwierigen ersten Phase gesammelt. Durch genaue Planung und eine detaillierte Anforderungsanalyse sollen Unbestimmtheiten und Änderungen im späteren Verlauf vermieden werden.

Bei agilen Projekten wird deutlich weniger Zeit in Vorabdesign und Architektur investiert. "Agilisten" glauben nicht, dass sie alles exakt planen können und sich später keine Änderungen mehr ergeben werden. Sie wollen auf Veränderungen während des Projekts flexibel reagieren.

Änderungen zur Projektlaufzeit willkommen

"Die agile Entwicklungsmethodik ist von vornherein auf Veränderungen vorbereitet", erklärt Henning Wolf, Geschäftsführer der IT-Agile GmbH aus Hamburg und Co-Autor des Buches "Agile Software-Entwicklung: Werte, Konzepte und Methoden". "Das können geänderte Anforderungen sein, aber auch technische Unwägbarkeiten, die zu Projektbeginn noch nicht bekannt waren."

Unabhängig von der gewählten Methode hat sich gezeigt, dass die Kosten für Veränderungen steigen, je später sie im Projekt erkannt und vom Team bearbeitet werden. Daher verwendet das traditionelle, wasserfallartige Vorgehensmodell viel Zeit auf Anforderungsdefinition, Analyse und Design. Änderungswünsche werden danach in der Regel durch ein Change-Request-Verfahren bearbeitet. Dies kann aber unter Umständen bedeuten, dass Änderungen nicht zugelassen werden, weil sie zu großen Aufwand bedeuten würden oder durch vertragliche Vereinbarungen ausgeschlossen sind. Aufgrund der strikten Einteilung von traditionellen Projekten in Anforderungsdefinition, Analyse und Design, Implementierung, Test und Betrieb werden notwendige Veränderungen oft erst in den letzten Phasen, typischerweise beim Abnahmetest, erkannt. Notwendige Änderungen werden wegen ihrer hohen Kosten dann häufig in Nachfolgeprojekte verschoben.

Iterative Projektsteuerung durch Time-Boxing

Foto: OOSE Innovative Informatik

Nach der agilen Entwicklungsmethode werden die genannten Projektphasen nicht nur ein einziges Mal durchlaufen, sondern iterativ. Viele agile Methoden, so Henning Wolf, stützen sich deshalb auf das "Time-Boxing"-Verfahren. Dabei wird die Entwicklungszeit in kleine Einheiten fester Länge - zum Beispiel immer zwei oder drei Wochen - eingeteilt. Das zentrale Instrument zur Steuerung der Projektarbeit in jeder Iteration beziehungsweise Time-Box ist die "Features-Liste". Sie enthält eine Kurzbeschreibung der geplanten Funktionen.

Diese Methode erweist sich bei der Zeitplanung als vorteilhaft: "So lässt sich aus den erledigten Anforderungen nach einigen Time-Boxes hochrechnen, wie viel ein Team durchschnittlich schafft, und daraus eine realistischere Schätzung für den Fertigstellungstermin errechnen", erläutert Wolf.

Time-Boxing sei zudem vorteilhaft, weil es dazu zwinge, die Anforderungen kleinteilig und für überschaubare Zeiträume zu beschreiben.