Ein neues Programm entwickeln zu lassen, ist aufwendig, braucht Zeit und Ressourcen. Daher ist es besonders wichtig, dass das Ergebnis stimmt. Agile Software­entwicklung ist ein Arbeits­ansatz, der sich von der klassischen Software­entwicklung abhebt und schnell gute Lösungen liefern soll.

Agile Software­entwicklung

Ein neues Programm entwickeln zu lassen, ist aufwendig, braucht Zeit und Ressourcen. Daher ist es besonders wichtig, dass das Ergebnis stimmt. Agile Software­entwicklung ist ein Arbeits­ansatz, der sich von der klassischen Software­entwicklung abhebt und schnell gute Lösungen liefern soll.

Was bedeutet agile Software­entwicklung?

Unter agiler Software­entwicklung versteht man eine Arbeitsweise zur Entwicklung neuer Software­produkte. Dabei handelt es sich nicht um die konkrete Anwendung einer speziellen Methode, sondern vielmehr um einen Denkansatz. Ein agiler Entwicklungs­prozess zeichnet sich durch einen flexiblen, iterativen Prozess aus, der nicht an einem zuvor definierten Plan festhält, sondern darauf ausgelegt ist, das bestmögliche Ergebnis zu schaffen.

Verschiedene Aspekte spielen in der agilen Software­entwicklung eine besondere Rolle:

  • Geschwin­digkeit
  • Flexibilität
  • Transparenz
  • Nutzer­orientiert

Geschwin­digkeit und Flexibilität

Mit der agilen Software­entwicklung kann schneller und flexibler gearbeitet werden als in der klassischen Vorgehens­weise. Es wird versucht, möglichst schnell erste Teilfunk­tionen der Software umzusetzen und in der Praxis zu testen. So steht zum einen ein Teil der Software bereits nach kurzer Zeit zur Verfügung. Zum anderen können durch den direkten Einsatz in der Praxis Fehler und Verbes­serungs­potenziale leicht gefunden und die Software in einem iterativen Prozess optimiert werden. Wenn während des Entwicklungs­prozesses sinnvolle oder notwendige Änderungen auftreten, sollten diese geprüft und ihnen nachgegangen werden. Dabei wird an zeit­intensiven Prozessen wie der Dokumen­tation gespart. Diese erfolgt auf dem notwendigen Mindestmaß.

Transparenz und Nutzer­orientiert

Wird die Software­entwicklung agil gestaltet, ist zudem ein intensiver Austausch mit den späteren Nutzern der Software entscheidend. Durch eine enge Zusammen­arbeit zwischen den späteren Nutzern der Software und den Entwicklern kann sicher­gestellt werden, dass die fertige Software auch genau den Nutzungs­bedürfnissen entspricht. Dies erreicht man durch die Interaktion und den Austausch zwischen den beteiligten Personen und sollte nicht durch die Verwendung von Tools ersetzt werden.

Unter­scheidung von klassischer und agiler Software­entwicklung

Die klassische Methode zur Entwicklung von Software, dem sogenannten Wasserfall­modell, folgt einem Prozess mit mehreren Stufen. Im Unterschied zur agilen Methode wird hier das finale Produkt bereits zu Beginn sehr detailliert in einem Projektplan festgelegt. Dieser wird dann in mehreren Phasen umgesetzt. Erst wenn eine Phase abge­schlossen ist, kann mit der nächsten begonnen werden. Sollten zu einem späteren Zeitpunkt Änderungs­wünsche auftreten, ist eine Anpassung sehr aufwändig. Entwickler können bei dieser Methode nicht so leicht zurück in frühere Phasen des Projekts zurückkehren.

Im Gegensatz dazu kann in der agilen Software­entwicklung flexibler auf Änderungen reagiert werden. Da in iterativen Schritten gearbeitet wird, ist eine ständige Überprüfung der Notwen­digkeit und Anpassung einzelner Entwicklungs­schritte gegeben.

Was sind die Vorteile agiler Software­entwicklung?

Gegenüber der klassischen Software­entwicklung bietet das agile Modell einige Vorteile.

  • Durch die zügige Entwicklung einzelner Teile des Produkts liegen schnell erste funktions­fähige (Teil-)Ergebnisse vor.
  • Diese (Teil-)Ergebnisse können bereits getestet werden, während die Entwicklung noch läuft. Änderungs­wünsche sind so flexibel umsetzbar.
  • Durch die enge Zusammen­arbeit der verschie­denen Projekt­partner entsteht ein speziell auf die Nutzungs­bedürfnisse zugeschnit­tenes Produkt.
  • Durch kurze Kommuni­kations­wege können Fehlent­wicklungen vermieden werden. Dies bedeutet auch eine Minimierung von Kosten und Risiko.
  • Verändern sich während des Entwicklungs­prozesses Nutzungs­anfor­derungen oder der Markt, lässt sich leicht darauf eingehen.
  • Hohe Qualität des Endproduktes.

Welche Nachteile und Heraus­forderungen gibt es in der agilen Software­entwicklung?

Wie alle Prozesse hat agile Software­entwicklung neben vielen Vorteilen auch einige Nachteile. Die enge Zusammen­arbeit zwischen verschieden Abteilungen birgt beispiels­weise immer das Risiko von Interessens­konflikten. Eine agile Arbeitsweise kann nur funktio­nieren, wenn alle Beteiligten konstruktiv auf ein Ziel hinarbeiten.

Software­entwicklung agil durchzu­führen, geht zudem mit einer schlechteren Planbarkeit einher, da Deadlines erst im Projekt festgelegt werden. Daher ist ein hohes Maß an Eigen­verant­wortung und ziel­gerichtetes zügiges Arbeiten durch die Projekt­beteiligten notwendig, um das Projektziel zu erreichen. Gleichzeitig sollten Verträge so ausgehandelt werden, dass sie Sicherheit bieten und Handlungs­spielraum ermöglichen.