Definition

Iterativ

In der Welt der IT und der Computerprogrammierung bezieht sich das Adjektiv iterativ auf einen Prozess, bei dem das Design eines Produkts oder einer Anwendung wiederholte Überprüfungen, Tests und Korrekturen durchläuft.

Insbesondere beim Programmieren bezieht sich iterativ auf eine Folge von Anweisungen oder Code, die wiederholt werden, bis ein bestimmtes Endergebnis erreicht ist. Die iterative Entwicklung wird manchmal als zirkuläre oder evolutionäre Entwicklung bezeichnet. Ein Durchlauf einer Sequenz heißt Iteration. Wenn Sie eine Befehlsfolge immer wieder durchführen, spricht man von einer Schleife, die der Computer durchläuft. In fast allen Computerprogrammen gibt es Iterationen und Schleifen, um bestimmte Aufgaben auszuführen und Lösungen für Probleme umzusetzen.

In der Produktentwicklung und im Projektmanagement erstellt ein Designer einen Entwurf oder ein Muster, das die Kernanforderungen des Kunden oder Benutzers erfüllen soll. Dieses Design überarbeiten Designer und Projektinhaber mehrmals und verfeinern es, bis die bestmögliche Version erreicht ist.

Was ist ein iterativer Prozess?

Der Begriff iterativer Prozess beschreibt die Praxis, ein Produkt, einen Prozess, eine Idee oder eine Initiative durch mehrere Iterationen zu verfeinern und zu verbessern. Diese Iterationen sind Teil eines zyklischen Prozesses, bei dem Schritte wiederholt werden, und nicht eines linearen Prozesses, bei dem jeder Schritt nur einmal stattfindet.

In einer iterativen Umgebung erstellen, testen und überarbeiten Teams ihr Produkt oder ihre Lösung, bis sie einen Konsens über die Qualität des Endergebnisses oder der Leistung erzielen. Daher ist ein iterativer Prozess in gewisser Weise eine Art Trial-and-Error-Methode wiederholter Änderungen und Verbesserungen, um die erklärten Ziele eines Projekts zu erreichen.

Die verschiedenen Schritte des Projektlebenszyklus in einer grafischen Darstellung.
Abbildung 1: Iterative Prozesse unterstützen Entwicklerteams beim Projektmanagement.

Iterative Entwicklung in der Softwareentwicklung

Iterativ beschreibt in der Softwareentwicklung einen heuristischen Planungs- und Entwicklungsprozess. Solche Prozesse sind in der Lean-Softwareentwicklung und im agilen Projektmanagement von entscheidender Bedeutung, kommen aber nicht nur in diesen Zusammenhängen zum einsatz.

Bei der iterativen Softwareentwicklung wird eine Anwendung in kleinen Abschnitten entwickelt, die Iterationen genannt werden. Das Ziel des Prozesses besteht normalerweise darin, die neueste Version oder Iteration des Produkts zu verfeinern oder zu optimieren, um eine nachfolgende Version zu erstellen, welche die Ziele des Produkts besser erfüllt.

Das Entwicklungs- und Testteam – und manchmal auch die Endbenutzer – überprüfen jede Iteration. Sie testen das Produkt, um Fehler oder Funktionsmängel zu finden. Ihre Rückmeldung entscheidet, was der nächste Schritt bei der Entwicklung wird. Diese Erkenntnisse verbessern die Qualität des Produkts, bevor es für Benutzer oder Kunden freigegeben wird.

Eine Herausforderung besteht darin sicherzustellen, dass alle Iterationen kompatibel sind. Entwickler wenden Reverse-Engineering an, um jede neue Iteration zu genehmigen. Sie setzen systematische Iterationsüberprüfungen und Prüfverfahren ein, um die Kompatibilität sicherzustellen.

Datenmodelle oder Sequenzdiagramme bilden die verschiedenen Iterationen ab. Sie helfen Entwicklungsteams auch dabei, nachzuverfolgen, was ausprobiert, genehmigt oder verworfen wurde. Schließlich dienen diese Modelle und Diagramme als eine Art Blaupause für das Endprodukt.

Drei Schritte zum Reverse Engineering: Informationen sammeln, Modellierung, Evaluierung
Abbildung 2: Beim Reverse Engineering durchlaufen Entwickler drei grundlegende Schritte.

Arten von Iterationen in der Computerprogrammierung

Bei der Computerprogrammierung ermöglichen Iterationen Programmierern, Design und Entwicklung zu rationalisieren, da sie wissen, dass bestimmte Schritte wiederholt und viele irrelevante Schritte entfernt werden. Aufgaben, die Teil der Schleife sind, wiederholen sich. Im Code sind diese Zeilen eingerückt, damit es gleich ersichtlich ist, dass sie sich wiederholen.

Die wichtigste Art von Iterationen sind die folgenden.

Zählgesteuerte Schleifen

In dieser Schleife gibt es eine feste Zahl von Iterationen. FOR-Anweisungen regeln die Schleife, wobei for den Startpunkt der Iteration angibt und range die Anzahl der Iterationen angibt. Ein variabler Zähler regelt die Wiederholungen, indem er verfolg, wie oft ein Befehl wiederholt wurde.

Zustandsgesteuerte Schleifen

In diesen Schleifen finden Iterationen kontinuierlich statt, bis eine bestimmte Bedingung erfüllt ist. Diese Schleife wird häufig verwendet, wenn Entwickler noch nicht wissen, wie viele Iterationen notwendig sind.

Bedingungsgesteuerte Schleifen werden mit WHILE-Anweisungen programmiert. Der Code führt abhängig vom Zustand der Bedingungen – wahr oder falsch – einen bestimmten Satz von Befehlen aus. Das Programm wiederholt sich so lange, wie die Bedingung auf wahr seht. Ist sie falsch, stoppt das Programm.

Iterativer Prozess versus inkrementelles Design

Oft werden die Begriffe iterativer Prozess und inkrementelles Design in der IT- und Softwareentwicklung synonym verwendet. Es gibt jedoch Unterschiede zwischen diesen Ansätzen.

Iterative Prozesse beschreiben das Verfeinern und Verbessern eines Softwareprojekts oder -produkts auf der Grundlage von Feedback oder neuen Informationen. Ziel ist es, kontinuierliche Verbesserungen zu erreichen, indem Änderungen nach dem Trial-and-Error-Prinzip vorgenommen werden.

Beim inkrementellen Design werden neue Funktionen als Update oder Upgrade auf eine vorhandene Version aufgebaut. Teams, die diese Vorgehensweise anwenden, veröffentlichen absichtlich eine Bare-Bones-Version eines Produkts, um die Markteinführungszeit zu verkürzen, was zu einem sogenannten Minimum Viable Product führt.

Das Team verbessert das Produkt, das schon am Markt ist, laufend, indem es neue Features und Funktionalitäten hinzufügt. Sie fügen dann so lange neue Funktionen hinzu, bis das Produkt mit dem ursprünglichen Plan übereinstimmt und alle Funktionen hat, die es haben muss.

Einige Teams integrieren Kundenfeedback, wenn sie neue Funktionen hinzufügen. In diesem Sinne ist inkrementelles Design auch iterativ.

Anwendungen iterativer Prozesse

Beispiele für klassische Einsatzszenarien iterativer Prozesse sind:

  • Marketing. Über iterative Prozesse finden Marketingteams heraus, welche Werbetexte die meisten positiven Benutzerinteraktionen erhalten, um festzustellen, welche Markenbilder bei der Zielgruppe ankommen und um zu sehen, welcher E-Mail-Newsletter höhere Klickraten erzielt.
  • Vertrieb. Vertriebsteams verwenden iterative Prozesse, um die besten E-Mail-Betreffzeilen in Bezug auf Öffnungen durch potenzielle Kunden zu identifizieren.
  • Maschinenbau. Engineering-Teams verwenden iterative Prozesse für A/B-Tests, Fehlerbehebungen und zum Entwickeln neuer Funktionen auf der Grundlage von Kundenproblemen oder -bedürfnissen.

Vorteile iterativer Prozesse

Iterative Prozesse bieten viele Vorteile in einer Vielzahl von Umgebungen:

  • Verbesserte Effizienz. Durch Iteration verstehen Teams besser, was funktioniert und können dadurch die Effizienz des Gesamtsystems verbessern.
  • Kostengünstiger. Es ist billiger, ständig kleine Änderungen vorzunehmen, als am Ende des Entwicklungsprozesses eine kostspielige, große Änderung einzuführe.
  • Verbesserte Kommunikation und Zusammenarbeit. Teams arbeiten zusammen, um Probleme in einer Umgebung zu identifizieren und zu beheben. Das verbessert die Kommunikation, minimiert Fehler und reduziert negative Rückmeldungen.
  • Kürzere Fristen. Nicht alle Iterationen hängen von vorherigen Schritten ab, sodass Teammitglieder parallel an verschiedenen Elementen arbeiten können. Das beschleunigt die Entwicklung und verkürzt die gesamte Projektzeit.
  • Reduziertes Risiko und schnellere Problemlösung. Statt zu warten, bis das Endprodukt verfügbar ist, werden Probleme frühzeitig und in jeder Entwicklungsphase erkannt und gelöst. Damit verhindern Teams, dass Probleme eskalieren und später größere Schwierigkeiten verursachen.
  • Einbeziehen von Endbenutzern. Häufig sind Endbenutzer in den Entwicklungsprozess involviert, was dazu beiträgt, eine effektive und zuverlässige Feedback-Schleife für Verbesserungen zu schaffen. Dadurch sollen Produkte entstehen, die den Bedürfnissen und Anforderungen der Benutzer oder des Marktes besser entsprechen.
Diese Definition wurde zuletzt im Februar 2022 aktualisiert

Erfahren Sie mehr über IT-Berufe und Weiterbildung