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.