Agile Software-Entwicklung
Mit eingespielten Teams flexibler Größe lassen sich auch sportliche Deadlines zuverlässig einhalten sowie Kosten dank Festpreisabrechnungen genau und nachvollziehbar budgetieren. Hier erfahren Sie, wie das geht.
Mit eingespielten Teams flexibler Größe lassen sich auch sportliche Deadlines zuverlässig einhalten sowie Kosten dank Festpreisabrechnungen genau und nachvollziehbar budgetieren. Hier erfahren Sie, wie das geht.
Klassische Softwareentwicklung arbeitet mit detaillierten Spezifikationen und legt bereits vor Entwicklungsbeginn einen linearen und starren Projektplan verbindlich fest. Das suggeriert Sicherheit bezüglich der zu erwartenden Softwarequalität sowie der Zeit- und Kostenplanung. Ob die fertige Software dann aber wirklich zur Zufriedenheit umgesetzt wurde, wird oft erst am Projektende kurz vor Auslieferung der Software überprüft. Durch zu späte Kontrolle der Entwicklungsfortschritte, fehlendes Nachsteuern während der Umsetzung und Widerstand gegen Änderungen an der ursprünglichen Planung führt diese Vorgehensweise gerade bei langen Projektlaufzeiten und komplexen Anforderungen in 80% aller Fälle zu Problemen.
In der klassischen Entwicklung sind dann lange, kostenintensive Nachverhandlungen und Change Request-Prozesse nötig, wodurch sich das Projekt verzögert und teurer wird – falls eine Änderung aufgrund der nacheinander abschließenden Phasen überhaupt noch möglich ist. Nicht selten ist stattdessen die zweit- oder drittbeste Lösung das Ergebnis, welches – obwohl es den gesetzten Zeit- und Kostenrahmen sprengt – weit hinter den ursprünglich geplanten Resultaten zurückbleibt. Anforderungen ändern sich nach Projektstart erfahrungsgemäß immer. Sei es aufgrund sich ändernder Rahmenbedingungen oder weil sich neue, bessere Lösungsoptionen eröffnen. In der agilen Entwicklung akzeptiert man diese Tatsache. Es wird mit Methoden gearbeitet, die:
Es gibt für die Softwareentwicklung verschiedene agile Vorgehensweisen, aus denen wir je nach
Rahmenbedingungen eine geeignete wählen und vorschlagen. In den meisten Fällen empfiehlt sich eine
auf dem bekannten SCRUM basierende Organisation. Das gesamte Projekt gliedert sich dann in mehrere
Sprints von jeweils zwei bis vier Wochen Dauer, an deren jeweiligem Ende bereits nach
wenigen Wochen die erste einsatzfähige Softwarelösung ausgeliefert wird. Während
des Projektverlaufs können jederzeit neue oder geänderte Anforderungen definiert werden,
z.B. weil festgestellt wurde, dass die individuelle Softwarelösung andere Merkmale haben muss als
bisher angenommen, oder weil sich die Wettbewerbssituation geändert hat.
Durch dieses iterative Vorgehen werden Erkenntnisse aus dem laufenden Projekt im weiteren
Entwicklungsprozess berücksichtigt, sodass für die finalen Version nur Funktionen
umgesetzt werden, deren Nutzen erprobt ist.
Die regelmäßigen Softwareauslieferungen und Anwendertests sichern eine hohe Qualität in einem zielgerichteten, schnellen und kostengünstigen Projektverlauf. Agile Projekte setzen auf eine enge und direkte Zusammenarbeit zwischen Entwicklern, Auftraggebern und Anwendern, um Detailfragen schnell zu klären und Missverständnisse und Fehler zu vermeiden. Die frühen Versionen der Software werden unter realen Bedingungen getestet, bis die finale Veröffentlichung alle Anforderungen erfüllt. Dabei werden stets diejenigen Elemente des Systems zuerst fertig gestellt, die dem Kunden am wichtigsten sind und den höchsten Geschäftswert erzielen. So können große Teile der neuen Individualsoftware bereits weit vor Ende des Gesamtprojektes produktiv genutzt werden.
Die Erfahrung zeigt, dass agile Projekte, die auf häufigere und kürze Iterationen setzen, schneller, kostenünstiger und wahrscheinlicher fertiggestellt werden als in der klassischen Entwicklung und dieser Trend steigt mit der Komplexität des Projekts.
71% der klassischen Entwicklungsprojekte im Jahr 2015 wurden nicht erfolgreich beendet, wobei zu viele Anforderungsänderungen zu den drei am häufigsten genannten Gründen gehörten, die zum Scheitern von Projekten führten (Chaos-Studie).
Diese Erkenntnis resultierte darin, dass inzwischen auch konservative Unternehmen Software agil entwickeln lassen. Denn mit eingespielten und flexibel großen Teams lassen sich Projektpläne und Deadlines zuverlässig einhalten und Kosten dank Festpreis genau und transparent budgetieren.
nur wesentliche Anforderungen bekannt
bedarfsgerecht
interaktiv/inkrementell
möglich und eingeplant
von großer Bedeutung
häufige und kurze
lauffähige Zwischenergebnisse
Klar formuliert zu Beginn und stabil im Ablauf des Projektes
Umfassend
linear
kaum möglich oder ganz schwierig umsetzbar
es wird wenig kommuniziert
ein großes Release am Ende des Projektes
fertiggestelltes Endprodukt