Agile Softwareentwicklung

Die agile Softwareentwicklung ist ein Sammelbegriff für verschiedene Methoden und Praktiken. Das übergeordnete Ziel ist, kleine Teile funktionsfähiger Software möglichst schnell verfügbar zu machen, sodass die Kundenzufriedenheit insgesamt verbessert wird.

Was bedeutet agile Softwareentwicklung?

Die agile Softwareentwicklung ist ein Sammelbegriff für verschiedene Methoden und Praktiken. Das übergeordnete Ziel ist, kleine Teile funktionsfähiger Software möglichst schnell verfügbar zu machen, sodass die Kundenzufriedenheit insgesamt verbessert wird.

In der Regel findet agile Softwareentwicklung in überschaubaren Teams statt, die aus Entwicklern und Unternehmensvertretern bestehen. Ein kontinuierlicher Austausch ist dabei essentiell und Veränderungswünsche des Kunden stets willkommen.

Agile Manifesto

Als Reaktion auf das sogenannte Wasserfallmodell, bei dem die Lieferung funktionsfähiger Software häufig mehrere Jahre dauerte, formulierte eine Gruppe um den Informatiker Kent Beck Anfang der 2000er Jahre ein neues Konzept der Softwareentwicklung. Ihr Anliegen: Der Entwicklungsprozess sollte insgesamt schlanker und flexibler gestaltet werden, um Zeit und Ressourcen zu schonen. Klassische Modelle der Softwareentwicklung wurden als zu schwergewichtig und bürokratisch empfunden. Bei dem agilen Konzept können anders als bei dem Wasserfallmodell mehrere Sequenzen gleichzeitig ausgeführt werden, ohne das diese abgeschlossen sein müssen; Entwicklungs- und Testphase also parallel zueinander stattfinden.

Das Manifest umfasst neben zwölf formulierten Prinzipien, folgende Leitsätze:

Personen und Interaktionen haben Vorrang vor Prozessen und Tools.

Funktionsfähige Software ist wichtiger als eine umfassende Dokumentation.

Zusammenarbeit mit dem Kunden steht über den Vertragsverhandlungen.

Eingehen auf Veränderungen ist wichtiger als die strikte Ausführung eines Plans.

Die Autoren des Manifests betonen, dass alle aufgeführten Punkte einen Wert an sich besitzen. Würden jedoch die hervorgehoben Prinzipien bei der Zusammenarbeit stärker berücksichtigt werden, können sich die Resultate deutlich verbessern. Der Erfolg ihres Ansatzes gab den Autoren recht: Bereits 2013 wurde die agile Softwareentwicklung von etwa 80% der Unternehmen eingesetzt. 2016 waren es sogar 95%.

Was sind die agilen Frameworks?

Um die Prinzipien des Agile Manifestos umzusetzen, werden verschiedene agile Frameworks genutzt, wie zum Beispiel Extreme Programming (XP), Scrum oder Kanban. Sie bilden die Grundlage für Softwareentwicklungsprozesse wie DevOps und CI/CD (Continuous Integration/Continuous Delivery). Scrum wird heutzutage am häufigsten verwendet.

Hier erfahren Sie mehr dazu, wie Extreme Programming (XP) umgesetzt wird.

Was charakterisiert die agile Softwareentwicklung?

  • Anforderungen müssen bei Projektbeginn noch nicht klar definiert sein.
  • Flexible Änderungen sind erwünscht.
  • Anforderungsbeschreibung erfolgt aus Kundensicht.
  • Fokus liegt auf kleinen, selbstorganisierten Teams.
  • Kunde erhält Zwischenergebnisse und soll diese bewerten.

Welche Vorteile bietet die agile Softwareentwicklung?

  • Es wird insgesamt weniger Zeit benötigt, bis funktionsfähige Ergebnisse vorliegen.
  • Risiken und Fehlentwicklungen werden minimiert, und auch die Entwurfsphase möglichst kurz gehalten, um früh zu einer ausführbaren Software zu gelangen.
  • Software lässt sich leicht anpassen, sofern sich während der Zusammenarbeit markt- oder kundenspezifische Veränderungen ergeben.
  • Während des Entwicklungsprozesses erfolgt die Abstimmung mit dem Kunden in kurzen Zeitabständen, sodass die Zufriedenheit mit dem Produkt insgesamt erhöht wird.