Agile Softwareentwicklung

Was ist Agile Softwareentwicklung?

Agile Softwareentwicklung ist ein Oberbegriff für eine Vielzahl von Best Practices bei der Erstellung von Anwendungen und Informationssystemen. Es ist nicht ausschließlich für die Softwareindustrie angelegt, sondern für jedes Unternehmen, das eine nicht lineare Projektplanung benötigt.

Komplexe IT-Projekte sind heutzutage eine normale Anforderung in jeder Branche. Das Ziel ist eine termingerechte Fertigstellung der Projekte, möglichst mit den vorhandenen Ressourcen. Als erfolgreiche Projektmanagement-Methode hat sich in den letzten Jahren das agile Arbeiten als Standard etabliert. Die Methoden rund um die agile Softwareentwicklung haben sich als effektiv im Umgang mit sich ändernden Anforderungen während der Entwicklungsphase erwiesen, die immer wieder auftreten.

Agile Lifecycle. Prozessdiagramm. Agile Software Development Lifecycle.

Copyright © Shutterstock/ astel design

Zum Merken

Auch “schlanke Programmierung” genannt, legen die agilen Methoden den Schwerpunkt auf Teamarbeit, Kundenbeteiligung und vor allem auf die Erstellung kleiner oder einzelner Teile des Gesamtsystems, die dann in einer Benutzerumgebung getestet werden.

Ausgehend von den Werten und Prinzipien des Agile Manifestes wurde es als Antwort auf die Unzulänglichkeiten traditioneller Entwicklungsmethoden wie der Wasserfallmethode geschaffen. Die Softwareindustrie ist ein hart umkämpfter Markt, da Software ständig weiterentwickelt werden kann. Das bedeutet, dass die Entwickler ihre Produkte ständig verbessern und erneuern müssen, um auf dem neuesten Stand zu bleiben – und der lineare, sequentielle Ansatz der Wasserfallmethode hat dies einfach nicht gewährleistet.

Eine kurze Geschichte der agilen Softwareentwicklung

In den 90er Jahren stand die Softwareentwicklung vor einer kleinen Krise. Die Branche hatte erkannt, dass sie sich nicht schnell genug umstellen kann, um die Anforderungen der Kunden zu erfüllen. Damals betrug die durchschnittliche Zeit zwischen dem Geschäftsbedarf und der tatsächlich entwickelten Anwendung etwa drei Jahre. So war es sehr wahrscheinlich, dass sich die Anforderungen und Systeme der ursprünglichen Projektziele bis zur Fertigstellung einer konkreten Anwendung geändert hatten.

Im Jahr 2001 taten sich 13 Fachleute in einer schneebedeckten Skihütte in Utah zusammen, um eine neue Idee der Softwareentwicklungsmethode zu verfolgen. So entstand das “Agile Manifest“. Es setzt sich aus vier Grundwerten und zwölf Schlüsselprinzipien zusammen und soll helfen, bessere Wege zur Entwicklung von Software aufzudecken.

Bestandteile einer agilen Softwareentwicklung

Im Folgenden beschreiben wir einzelne Bestandteile einer agilen Softwareentwicklung:

Als einer der wichtigsten Werte ist die Zusammenarbeit mit dem Kunden ein wichtiger Bestandteil der Methodik für die agile Softwareentwicklung. Durch die konsequente Kommunikation mit dem Entwicklungsteam sollte der Kunde immer über den Fortschritt informiert sein. Anwenderberichte sind ein Werkzeug, mit dem ein Software-Feature aus der Sicht des Endnutzers erklärt wird. Ziel ist, eine vereinfachte Beschreibung einer Anforderung zu erstellen, die hilft, die Grundfunktion eines Features zu erfassen.
Durch kontinuierliche Integration wird der Code auf dem neuesten Stand gehalten. Dazu wird einige Male pro Tag ein sauberer Aufbau des Systems erstellt. Eine Regel lautet: Programmierer sollen am Ende des Tages nie etwas un-integriert lassen. Ziel von kontinuierlicher Integration ist es, den Zeit- und Arbeitsaufwand für jede Integration zu minimieren.
Das Team wird durch automatisierte Tests darüber informiert, welche der Code-Änderungen akzeptabel sind und ob eine Funktionalität wie geplant funktioniert oder nicht.
Die gemeinsame und zeitgleiche Arbeit von zwei Programmierern an einem Schritt (Paarprogrammierung) zielt darauf ab, bessere Designs, weniger Fehler und einen Wissensaustausch innerhalb des Entwicklungsteams zu fördern.
Unter der Wiederholung eines sehr kurzen Entwicklungszyklus, in dem einzelne Anforderungen in kleine Testfälle umgewandelt werden, versteht man die Testgetriebene Entwicklung (TDD). Die Software wird mit dem Ziel verbessert, die neuen Tests zu bestehen.
Eine grafische Darstellung der Arbeit, die noch zu erledigen ist, im Vergleich zu der Zeit, die dafür benötigt wird, wird als Burndown-Diagramm bezeichnet. Die Verwendung eines solchen als Teil Ihres Agile-Projektmanagement-Plans ermöglicht Ihnen die Prognose, wann alle Arbeiten abgeschlossen sein werden.

Methoden und Instrumente für die agile Softwareentwicklung

Scrum

Scrum ist die verbreitetste Methode für die agile Softwareentwicklung mit einigen Eigenheiten. Scrum stützt sich auf die wiederholte Anwendung eines immer ähnlichen Prozesses auf schon erarbeitete Teilschritte, die sich auf Projekte mit fester Länge konzentriert (sogenannte Sprints).

Kanban

Die zweite populäre Methode für agile Softwareentwicklung, Kanban, basiert dagegen auf kontinuierlichen Freigaben. Die Anwendung von Kanban-Instrumenten sieht die Anpassung der Arbeit an die Kapazität des Teams vor. Ziel der Kanban-Methode ist die schnellstmögliche Erledigung der Aufgaben. Kanban ist eine sehr visuelle Methode, die im Rahmen des agilen Projektmanagements weit verbreitet ist.

Weitere, weniger verbreitete Methoden für die agile Softwareentwicklung sind:

  • Extreme Programmierung (XP)
  • Crystal
  • Dynamische Systementwicklungsmethode (DSDM)
  • Feature-Driven Development (FDD)

Weiterführende Links:

agilemanifesto.org

computerwoche.de

agilealliance.org


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenlose SEO Analyse


Weitere Inhalte