Agile Softwareentwicklung

Mehr Erfolg durch Flexibilität

12.10.2009 von Diego Wyllie
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
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.

Feedback ist alles

Foto: OOSE Innovative Informatik

Im Lauf des Projekts wird zu Beginn jeder Iteration überprüft, welche Features implementiert werden sollen. Das können neue Funktionen sein, die erst im Projektverlauf hinzugefügt wurden. Oder es sind bereits definierte Funktionen, die der Kunde mit höherer Priorität ausgezeichnet hat. Damit das Budget nicht gesprengt wird, werden diejenigen Funktionen aus der Liste gestrichen, die der Kunde als weniger wichtig erachtet.

Daher ist das Feedback die wichtigste Komponente in der agilen Softwareentwicklung: "Für deren Erfolg kommt es in erster Linie darauf an, sich an möglichst vielen Stellen möglichst oft Feedback zu holen, um gegebenenfalls den Kurs schnell korrigieren zu können", so Wolf.

So wird der Kunde zum Ideengeber und Produkt-Manager, denn er kennt die Anforderungen an die IT-gestützten Systeme am besten. Seine Kommentare, Wünsche und Anregungen werden vom Entwicklungsteam übernommen und gehen in die Anforderungen an die nächste Iteration ein. Ziel ist, dass die Kunden Grund haben, zufrieden zu sein.

Agilität in der Praxis

Agile Konzepte und Methoden haben sich in der Praxis bewährt. Das zeigt die Studie "Einfluss klassischer und agiler Techniken auf den Erfolg von IT-Projekten" aus dem Jahr 2008, die Oose Innovative Informatik GmbH aus Hamburg erarbeitet hat. Dabei wurden Projekt-Manager aufgefordert, jeweils ein gut und ein schlecht gelaufenes Projekt ausführlich zu beschreiben. Insgesamt wurden 260 IT-Vorhaben ausgewertet. Eines der wichtigsten Ergebnisse lautet, dass die Integration des Kunden in Entscheidungsprozesse und Planung sinnvoll und erstrebenswert sei.

Programmierer-IQ-Test

Sind Sie ein Skriptkiddie oder ein Hackerkönig? Unser Quiz gibt die Antwort.

Hier geht es zum Wissenstest für Programmierer.

Als zweiten wichtigen Faktor für den Projekterfolg nennt die Studie das iterative Vorgehen. Schrittweise abgearbeitete Projekte sind laut Erhebung häufiger erfolgreich. Wichtig ist, die Iterationstermine einzuhalten. Erfolgreiche Projekte haben überwiegend eine Iterationsdauer zwischen drei Wochen und einem Monat, unabhängig von der Teamgröße und der gesamten Projektlaufzeit. Regelmäßige Projekt-Reviews und Retrospektiven mit dem Ziel der Prozessoptimierung sind weitere wichtige Erfolgsfaktoren.

Konventionelle Projekte scheitern öfter

Agile Softwareentwicklungsprojekte sind erfolgreicher als Vorhaben, die nach konventionellen Methoden betrieben werden.

Von 240 untersuchten Projekten war die Vorgehensweise bekannt. Knapp 41 Prozent wurden nach agiler und rund 59 Prozent nach klassischer Methode verfolgt. Von den klassisch betriebenen Projekten wurden knapp über 40 Prozent mit Erfolg abgeschlossen, bei den agilen Projekten belief sich die Quote auf rund 65 Prozent. Gemessen an der Einhaltung von Projektplan, Terminen und Budgets sowie der Zufriedenheit der Projekt-Auftraggeber und Entwickler, schneidet das agile Vorgehen ebenfalls besser ab. Agile Projekte hielten Liefertermine besser ein, und die an den Kunden gelieferten Software sei besser, heißt es in der Studie.

Scrum am weitesten verbreitet

Unter den in Deutschland angewandten agilen Methoden ist "Scrum" die beliebteste, gefolgt von "Extreme Programming" (XP) und "Feature Driven Development" (FDD). Das geht aus einer weiteren Untersuchung hervor, die IT-Agile letztes Jahr gemeinsam mit dem Software-Engineering und -Management-Magazin "Objektspektrum" betrieben hat. Demnach wenden 21 Prozent der über 200 befragten Projektmitarbeiter (Architekten, Projektleiter und Entwickler) Scrum an, 14 Prozent verwenden XP. 17 Prozent der Interviewten haben bereits Scrum-Erfahrungen gesammelt, weitere zwölf Prozent wollen diese Methode einführen (XP sieben Prozent).

Die Beschreibung der wesentlichen Abläufe von Scrum passt auf einen Bierdeckel.

"Scrum enthält mit Retrospektiven eine Möglichkeit der Anpassung und kontinuierlichen Verbesserung, so dass es sich für viele Situationen, Projekt- und Produktentwicklungen anbietet", kommentiert Henning Wolf die Studienergebnisse. Zu den wesentlichen Vorteilen dieser Methoden zählt er die flexible Reaktion auf Veränderungen sowie die Transparenz in Sachen Projektfortschritt und Probleme. Durch frühe Versionen mit weniger Versionen ermögliche Scrum ferner eine schnelle Markteinführung. Wolf: "Dazu kommt dann noch, dass Scrum so kompakt ist, dass der Prozess auf einen Bierdeckel passt." (jha)