Agile Methoden in der Softwareentwicklung

Die agile Softwareentwicklung gilt besonders in Web 2.0 Projekten als die beste Vorgehensweise in der Umsetzung des Projekts.

Doch was bedeutet es ein Projekt agil umzusetzen? Agilität bedeutet schnell auf Neues reagieren zu können. Seien es Chancen oder Gefahren. Dies ist gerade auf schnelllebigen Märkten wie dem Internet ein enormer Wettbewerbsvorteil. Erreicht wird dieses Ziel indem erstens der Mensch in den Mittelpunkt gerückt wird und von starren Prozessen und Werkzeugen in der Entwicklung Abstand genommen wird. Außerdem wirdzweitens mehr Wert auf das schnelle Entwickeln eines lauffähigen Programms als auf ausführliche Dokumentation gelegt. Auch wird drittens eine enge Beziehung zum Kunden als wichtiger angesehen als feste Verträge. Zuletzt und wird viertens Offenheit gegenüber Veränderungen über das starre Befolgen von zuvor festgelegten Plänen gestellt.

Dies stellen die Werte der agilen Softwareentwicklung dar.

Auf diesen Werten aufbauend folgen die Prinzipien der Agilität. Diese stellen die frühzeitige und häufige Auslieferung funktionsfähiger Software an oberste Stelle. Das heißt die Software muss früh im Entwicklungsstadium lauffähig sein und wird mit jeder Auslieferung an den Kunden funktionsreicher.

Ein weiteres Prinzip ist es schnell auf Veränderungen einzugehen, sei es auch spät in der Entwicklung des Programms, um somit den daraus entstehenden Wettbewerbsvorteil nutzen zu können. Es sollten immer nur die Funktionen umgesetzt werden, die aktuell gebraucht werden und auf eine Vorschau auf eventuell mögliche zukünftige Erweiterungen verzichtet werden.

Testgetriebene Entwicklung ist ebenso ein wichtiger Eckpfeiler der agilen Softwareentwicklung. Hierbei werden zuerst Tests geschrieben, die überprüfen ob eine Funktionalität korrekt ist bevor die eigentliche Funktionalität programmiert wird. Dadurch kann in dem sich häufig ändernden Programm automatisch geprüft werden, ob es noch funktionsfähig ist.

Automatisierte, meist jede Nacht erstellte Versionen der Software stellen sicher, dass die Entwickler schnell Rückmeldung - z.B. durch den Kunden - bezüglich der Funktionsfähigkeit der Software erhalten.

In regelmäßigen Abständen sollte darüber nachgedacht werden wie effektiver gearbeitet werden kann und das Verhalten dementsprechend angepasst werden.

Aus den Prinzipien ergeben sich die eigentlichen Methoden der agilen Programmierung. Diese bestehen aus der Paarprogrammierung, bei der jeweils zwei Entwickler an einem Monitor arbeiten und abwechselnd programmieren, laufende Refaktorisierung, bei der das Programm auf neue Gegebenheiten angepasst wird, "Kundengeschichten", die bestimmte Anwendungsbeispiele des Kunden beschreiben, und ständiger Kontrolle des bereits geschriebenen Programmquelltextes.

Durch die hohe Anpassungsfähigkeit agiler Methoden bei der Softwareprogrammierung entstehen schneller lauffähige Produkte, die wiederum schneller durch Kunden getestet werden können. Dies ist besonders bei den neuen Web-Anwendungen hilfreich. Hier stellen die Nutzer des Internetangebots die Kunden dar, die die Software im Liveeinsatz testen. Bei der Entwicklung kann so schnell festgestellt werden, ob am Benutzer vorbei entwickelt wurde oder welche Funktionen gut angekommen. Hierdurch entsteht ein enormer Kostenvorteil, da Fehler früh erkannt und behoben werden können.

Zusammenfassend ist agile Softwareentwicklung für Web 2.0 Anwendungen unerlässlich. Denn kaum ein Projekt kann es sich leisten den Benutzer bis zum Ende der Entwicklung aussen vor zu lassen nur um dann festzustellen, dass das Projekt nicht die gewünschte Akzeptanz findet.