Agile Grundprinzipien und Methoden
Warum auf Agilität setzen in der Softwareentwicklung?
Das Fundament: Werte des Agilen Manifests
Starre Pläne in einer sich wandelnden Welt führen oft zu Frust. Agile Softwareentwicklung ist flexibler und baut auf vier Kernwerten auf:
- Individuen und Interaktionen vor Prozessen und Werkzeugen: Direkte Kommunikation im Team und mit der Kundschaft löst Probleme effizienter.
- Funktionierende Software vor umfassender Dokumentation: Ein lauffähiges Produkt liefert früh echten Mehrwert und zeigt konkreten Fortschritt.
- Zusammenarbeit mit der Kundschaft vor Vertragsverhandlungen: Kontinuierliches Feedback stellt sicher, dass das entwickelt wird, was die Kundschaft wirklich braucht.
- Reagieren auf Veränderung vor striktem Befolgen eines Plans: Märkte und Anforderungen ändern sich – agile Teams passen sich flexibel an, statt an veralteten Plänen festzuhalten.
Beispiel: Ein agiles Team entwickelt eine erste, schlanke Version einer App (funktionierende Software), holt direktes Feedback von Testnutzer:innen ein (Zusammenarbeit mit der Kundschaft) und passt die nächsten Entwicklungsschritte flexibel an (Reagieren auf Veränderung), anstatt monatelang ein detailliertes Pflichtenheft zu erstellen, das bei der ersten Nutzer:innenrückmeldung schon veraltet sein könnte.
Agil vs. Wasserfall: Zwei Welten im Vergleich
Der traditionelle Wasserfallansatz plant ein Projekt von Anfang bis Ende detailliert durch, wobei eine Phase nach der anderen abgeschlossen wird. Agilität bricht diesen starren Ablauf auf:
- Flexibilität: Agile Modelle begrüßen Änderungen, auch spät im Projekt. Im Wasserfallmodell sind späte Änderungen oft teuer und aufwendig.
- Planung: Agil plant iterativ in kurzen Zyklen (Sprints), lernt aus jeder Iteration und passt die Planung kontinuierlich an. Wasserfall setzt auf einen großen Gesamtplan zu Beginn.
- Risikomanagement: Agil identifiziert Risiken früh durch regelmäßiges Feedback und die Lieferung lauffähiger Software-Inkremente. Im Wasserfallmodell werden Probleme oft erst in späten Testphasen entdeckt.
- Stakeholder-Einbindung: Agil bindet Kundschaft und andere Stakeholder:innen kontinuierlich ein. Im Wasserfallmodell geschieht dies meist nur zu Beginn (Anforderungen) und am Ende (Abnahme).
Beispiel Webanwendung: Ein Online-Shop nach Wasserfall würde alle Funktionen (Produktsuche, Warenkorb, Bezahlung, Kundenbewertungen etc.) vorab detailliert planen. Ein agiler Ansatz könnte mit einer funktionierenden Produktsuche und einem einfachen Warenkorb starten, Nutzer:innenfeedback einholen und dann die Bezahlfunktion oder andere Features basierend auf echten Bedürfnissen und Erkenntnissen entwickeln.
Planung im agilen Fluss: Backlogs und User Stories
Agile Planung ist ein dynamischer und fortlaufender Prozess. Die wichtigsten Instrumente dafür sind:
- Product Backlog: Dies ist die zentrale, priorisierte "Wunschliste" aller bekannten Anforderungen, Features, Verbesserungen und Fehlerbehebungen für das Produkt. Stell es dir vor wie eine ständig wachsende und sich verändernde To-Do-Liste für das gesamte Projekt, die von der verantwortlichen Person (oft Product Owner genannt) gepflegt wird.
- Sprint Backlog: Für jeden kurzen Entwicklungszyklus (Sprint, meist 1-4 Wochen) wählt das Entwicklungsteam Aufgaben aus dem Product Backlog aus, die es in diesem Sprint umsetzen will. Das Sprint Backlog ist der konkrete "Arbeitsplan" für den jeweiligen Sprint.
- User Stories: Anforderungen werden im agilen Kontext oft als User Stories formuliert. Sie beschreiben eine Funktion aus der Perspektive der Nutzer:innen und fokussieren auf deren Mehrwert. Das typische Format ist: "Als [Rolle/Typ von Nutzer:in] möchte ich [Ziel/Aktion], um [Nutzen/Wert]."
- Beispiel: "Als registrierte:r Online-Shop-Kund:in möchte ich meine Bestellhistorie einsehen können, um frühere Einkäufe nachzuverfolgen."
Dieser iterative Ansatz, kombiniert mit regelmäßigem Feedback, stellt sicher, dass das Team stets an den aktuell wichtigsten und wertvollsten Aspekten des Produkts arbeitet und schnell auf neue Erkenntnisse reagieren kann.
Lernziele
- die Kernwerte und Prinzipien agiler Softwareentwicklung, wie im Agilen Manifest formuliert, erklären, indem die Bedeutung von Individuen und Interaktionen, funktionierender Software, Zusammenarbeit mit dem Kunden und Reaktion auf Veränderung hervorgehoben wird.
- agile Vorgehensmodelle mit dem Wasserfallmodell vergleichen, indem die Unterschiede hinsichtlich Flexibilität bei Anforderungsänderungen, Planungsansatz (iterativ vs. sequenziell), Risikomanagement und der Art der Stakeholder-Einbindung analysiert werden.
- den Umgang mit Anforderungen und die Planungsansätze in agilen Projekten erklären, indem die Rolle von User Stories, dem Product Backlog als dynamische Anforderungssammlung, dem Sprint Backlog für die iterative Umsetzung sowie die Prinzipien der iterativen Planung und des kontinuierlichen Feedbacks erläutert werden.