Definition „Iterative Development“ Was ist iterative Entwicklung?
Die iterative Entwicklung ist eine Projektstrategie innerhalb der IT, bei der ein Software-Produkt durch fortlaufende Wiederholung, sprich Iteration, optimiert wird. Zum Teil entwickelt sich die Systemarchitektur erst im Rahmen des iterativen Prozesses.
Anbieter zum Thema

Iterative Strategien spielten ursprünglich vor allem in der agilen Softwareentwicklung einer Rolle, werden jedoch auch in anderen Bereichen des Projektmanagements angewendet. So enthält die Projektmanagement-Methode Scrum starke iterative Komponenten. Iterative Entwicklungsprozesse ermöglichen den Projektteilnehmern, Erfahrungen aus vorhergehenden Projektschritten oder aus der Anwendung bereits fertiggestellter Systemkomponenten unmittelbar zu nutzen.
Produktentwicklung durch Wiederholung
Das Prinzip der iterativen Entwicklung beruht darauf, dass ein Produkt durch permanente Wiederholungen (Iterationen) optimiert und zur Anwendungsfähigkeit gebracht wird. Am Anfang des Entwicklungsprozesses steht eine Anwendungs- und Produktidee, die schrittweise realisiert wird. Auch die Systemarchitektur des Programms wird dabei fortlaufend entwickelt, überprüft und angepasst.
Hier liegt ein wesentlicher Unterschied zu inkrementellen Entwicklungsprozessen. Im Rahmen einer inkrementellen Strategie wird zunächst die Systemarchitektur definiert. Die einzelnen Projektschritte orientieren sich daran. Ihre Ergebnisse – die sogenannten Inkremente – bestehen in anwendungsfähigen Produkten, die im Idealfall keiner weiteren Überarbeitung bedürfen.
Dagegen wird jedes Ergebnis einer Iteration auf notwendige Modifikationen untersucht, die außerdem Einfluss auf frühere oder spätere Iterationen haben können. Je nach ihrem Ausmaß können Veränderungen dazu führen, dass der gesamte Entwicklungsprozess wiederholt und noch einmal durchlaufen wird.
Prozessschritte in iterativen Projekten
Die wesentlichen Prozessschritte eines iterativen Projektes lassen sich in eine Initialisierungsphase, eine Iterationsphase und die fortlaufende Kontrolle des Projektfortschritts unterteilen. Ein solches Projekt beginnt mit der Implementierung der bereits bekannten Systemanforderungen auf einer möglichst einfachen, aber ausbaufähigen Basis.
Die Kenntnis der notwendigen und sinnvollen Systemanforderungen entwickelt sich erst im Rahmen des Projektverlaufs, sie ist erst mit der vollständigen Systemimplementierung abgeschlossen. Jede Iteration hat auch eine Anpassung des Projektentwurfs zur Folge. Unterschieden werden die einzelnen Iterationen danach, ob sie der Optimierung der Systemarchitektur oder der Implementierung neuer Funktionalitäten dienen.
Während der Initialisierungsphase wird zunächst ein Prototyp des Systems geschaffen, auf den die Verwender und die Entwickler reagieren können. Mögliche Lösungsansätze für das Gesamtprojekt sind anhand dieses initialen Produkts bereits erkennbar, gleichzeitig werden hierdurch die wesentlichen Aspekte der zu lösenden Probleme stichprobenartig abgedeckt.
Hierdurch kommt auch bei einer iterativen Entwicklung ein inkrementelles Element ins Spiel, da die generellen Anforderungen an das Projekt bereits vorgegeben werden und als Roadmap dienen. Der Iterationsprozess wird anschließend durch eine Projektkontrollliste gesteuert, in der alle zu einem bestimmten Zeitpunkt bekannten Projektaufgaben aufgelistet werden. Zur Definition dieser Aufgaben dienen fortlaufende Analysen, so dass die Kontrollliste bis zum Projektabschluss ständig überarbeitet und ergänzt wird.
Die einzelnen Iterationen beinhalten die Umsetzung einer Aufgabe oder einer definierten Aufgabengruppe aus der Liste. Anschließend wird die aktuelle Version des Gesamtsystems analysiert, woraus sich neue Aufgaben ergeben. Bei der Umsetzung jeder Iteration stehen die Zielsetzungen Einfachheit, Modularität und Transparenz im Fokus. Die Analyse ihrer Ergebnisse erfolgt durch das Feedback der Benutzer sowie die Analyse des Programmes.
Ablauf iterativer Projekte
Die grundsätzliche Ablaufplanung iterativer Projekte wird bereits in der initialen Phase vorgenommen. Hier werden der Projektrahmen, funktionelle und nicht-funktionielle Projektanforderungen sowie wesentliche Risiken ermittelt, um eine grobe Schätzung des Zeit- und Arbeitsaufwandes vorzunehmen. Die Ressourcenplanung wird zusammen mit jeder Iteration einer Überprüfung unterzogen. Auch Produkttests sind ein wesentliches und regelmäßig wiederholtes Element des Gesamtprozesses.
Die Iterationsphase wird in eine Ausarbeitungsphase und eine Konstruktionsphase unterteilt. In der Ausarbeitungsphase entsteht eine funktionsfähige Systemarchitektur, in der Konstruktionsphase werden die produktionsreifen Codes zur Erfüllung der funktionellen Systemanforderungen erstellt.
Iterative Entwicklungsprozesse enden mit einer Transitionsphase, in der sich das entwickelte System bereits im Produktiveinsatz befindet, vor dem endgültigen Projektabschluss jedoch noch Änderungen vorgenommen werden können. Jede dieser Phasen kann eine oder mehrere Iterationen umfassen.
(ID:45256662)