Schon an der Bezeichnung erkennt man die Ziele der agilen Softwareentwicklung: eine flexible und schlanke Entwicklung von Software soll erreicht werden. Das Ziel selbst soll wieder in den Fokus gerückt werden, weniger der Weg dahin. Die agile Softwaretechnik ist dabei die Reaktion auf die als „schwer“ und „bürokratisch“ angesehenen Entwicklungsmodellen wie RUP oder das Spiralmodell.
Die Werte der agilen Softwareentwicklung bilden das Fundament und sind im sogenannten Agile Manifesto formuliert:
„Wir erschließen bessere Wege, Software zu entwickeln,
indem wir es selbst tun und anderen dabei helfen.
Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans
Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden,
schätzen wir die Werte auf der linken Seite höher ein.“
Siebzehn Erstunterzeicher haben das Manifest im Februar 2001 formuliert, inzwischen haben sich tausende weitere angeschlossen. Neben den Werten umfasst das Manifest auch noch die folgenden zwölf Prinzipien:
- Höchste Priorität ist die Zufriedenstellung des Kunden durch frühe und kontinuierliche Auslieferung von wertvoller Software
- Agile Prozesse nutzen Veränderungen (selbst spät in der Entwicklung) zum Wettbewerbsvorteil des Kunden.
- Lieferung von funktionierender Software in regelmäßigen, bevorzugt kurzen Zeitspannen (wenige Wochen oder Monate)
- Nahezu tägliche Zusammenarbeit von Fachexperten und Entwicklern während des Projektes (Bsp.: Gemeinsamer Code-Besitz (Collective Code Ownership))
- Bereitstellung des Umfeldes und der Unterstützung, welche von motivierten Individuen für die Aufgabenerfüllung benötigt wird
- Informationsübertragung nach Möglichkeit im Gespräch von Angesicht zu Angesicht
- Als wichtigstes Fortschrittsmaß gilt die Funktionsfähigkeit der Software
- Einhalten eines gleichmäßigen Arbeitstempos von Auftraggebern, Entwicklern und Benutzern für eine nachhaltige Entwicklung
- Ständiges Augenmerk auf technische Exzellenz und gutes Design
- Einfachheit ist essenziell (KISS-Prinzip)
- Selbstorganisation der Teams bei Planung und Umsetzung
- Selbstreflexion der Teams über das eigene Verhalten zur Anpassung im Hinblick auf Effizienzsteigerung
Agile Prozesse
Im Laufe der Zeit haben sich die unterschiedlichsten agilen Prozesse herausgebildet. Die bekanntesten dürften wohl Scrum und Extreme Programming (XP) sein. Doch es gibt weitaus mehr als XP und Scrum. Nachfolgenden weitere bekannte agile Prozesse, ohne Anspruch auf Vollständigkeit:
- Adaptive Software Development (ASD)
- Crystal
- Extreme Programming (XP)
- Feature Driven Development (FDD)
- Kanban
- Scrum
- Agiles Testen
- Behavior Driven Development (BDD)
Ähnliche Themen: