Was versteht man unter agiler Softwareentwicklung?
Die agile Softwareentwicklung beschreibt einen Entwicklungsprozess, der die Flexibilität und Transparenz erhöht, sodass dieser fortlaufend optimiert werden kann. Teilprozesse sollen demnach von selbstorganisierenden Teams möglichst einfach und beweglich (=agil) gehalten werden, sodass entwickelte Systeme schneller eingeführt werden können.
Im Vergleich zu klassischen Vorgehensmodellen (z. B. Rational Unified Process und V-Modell) helfen agile Methoden unter anderem dabei, komplexen Prozessen eine Struktur zu geben, auf Veränderungen schnell zu reagieren und die Produktivität der Entwickler zu erhöhen, während die Software an Qualität gewinnt.
Durch die ständige Kommunikation mit dem Kunden und das flexible Eingreifen in den Prozess soll das unternehmerische Risiko minimiert und bessere Endergebnisse herbeigeführt werden.
Die agile Arbeitsweise beruht auf vier Werten und zwölf Prinzipien, die 2001 im „Manifest für agile Softwareentwicklung“ festgeschrieben wurden.
Die vier Werte des Agilen Manifests:
- Individuen und Interaktionen haben Vorrang vor Prozessen und Werkzeugen
- Funktionsfähige Produkte haben Vorrang vor umfassender Dokumentation
- Zusammenarbeit mit den Kunden hat Vorrang vor Vertragsverhandlungen
- Das Eingehen auf Änderungen hat Vorrang vor strikter Planverfolgung
Was sagen diese Werte aus?
Eigentlich ist das ganz leicht erklärt, denn für die erfolgreiche Entwicklung einer Software sind zwar bestimmte standardisierte Prozesse und formale Grundlagen Voraussetzung, dennoch sind Kommunikation, Interaktion und flexibles Agieren in einem solchen Prozess mindestens genauso wichtig.
Welche Vorteile ergeben sich für den Kunden?
Flexibel: Es werden keine Pflichtenhefte benötigt, sodass der Prozess ohne Verzögerung gestartet werden kann. Während des Projekts können bei neuen Anforderungen flexibel Änderungen vorgenommen werden, die für ein erfolgreiches Endergebnis enorm wichtig sind.
Zeitsparend: Die agile Methode setzt neben den Technologien auf eine ständige und direkte Kommunikation mit dem Kunden, sodass Details schnell geklärt und Unklarheiten aus der Welt geschafft werden, ohne das schriftliche Anfragen den Prozess verzögern. Ein regelmäßiges Feedback vom Kunden sorgt dafür, dass es nicht zu negativen Überraschungen kommt und sowohl der Kunde als auch die Entwickler auf demselben Stand sind.
Wettbewerbsfähig: Die schnelle und einfache Kommunikation zwischen dem Entwickler-Team und dem Kunde sorgt dafür, dass die Software schneller fertiggestellt ist, wodurch ein klarer Wettbewerbsvorteil entsteht. Dem Kunden sind bestimmte Elemente des Systems wichtiger? Die agile Methode macht es möglich, dass diese Teile der neuen Software zuerst fertiggestellt werden, um schon früher eingesetzt werden zu können.
Wo liegen die Vorteile für Entwickler?
Die agile Softwareentwicklung kommt auch den Entwicklern zugute, da sie nicht starr Vorgaben abarbeiten müssen, sondern flexibel Handeln und Aufwände selbst abschätzen können. Das Übernehmen von Eigenverantwortung macht den Entwicklern nicht nur Spaß, sondern führt auch zu wichtigen Lernerfolgen. Außerdem wächst durch die direkte Kommunikation mit dem Team und dem Kunden sowohl das Vertrauen als auch die gegenseitige Wertschätzung der Arbeit.