../../icons/Logo.png


Agile Softwareentwicklung

Agile Vorgehensweisen haben in den letzten zwanzig Jahren die Softwareentwicklung, man könnte sagen, revolutioniert. Aus der Sicht klassischer Softwareentwicklung und -projekte ist das Agile Manifest [14] revolutionär, stellt es doch die die Organisation und prinzipiellen Vorgehensweisen nahezu auf den Kopf.

Durch Extrem Programming (XP) wurde agile Softwareentwicklung begründet. Betrachtet man XP genauer, stellt sich allerdings heraus, dass es weniger revolutionär als konsequent ist.

Das Paradigma agiler Softwareentwicklung wird am besten durch sein Manifest klar:

Manifest für Agile Softwareentwicklung

Wir erschließen bessere Wege, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen. Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:

t_green
Individuen und Interaktionen
mehr als Prozesse und Werkzeuge
t_green
Funktionierende Software
mehr als umfassende Dokumentation
t_green
Zusammenarbeit mit dem Kunden
mehr als Vertragsverhandlung
t_green
Reagieren auf Veränderung
mehr als das Befolgen eines Plans

Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.

Dieses Manifest wurde unmittelbar aus [15] übernommen.

Extreme Programming (XP)

Extreme Programming [16] bedeutet lax gesprochen einerseits nichts neues:

Es werden einige lang bekannte, bewährte Methoden und Verfahren des Software-Engineerings eingesetzt.

Andererseits ist es revolutionär:

Diese Methoden und Verfahren werden extrem präzise eingesetzt.

Der Prozess unter Extreme Programming ist interessant:

XP_Prozess.png

Bild 17: Der prinzipielle Prozess im Extreme Programming

Grundsätzlich ist der XP-Prozess sowohl inkrementell als auch evolutionär.

Im Iterationsplanspiel wird im Zuge inkrementeller Entwicklung die vorgebende Produktversion optimal entwickelt.

Es kann sich aber auch herausstellen, das die Planung für die Produktversion korrigiert werden muss. Dann ist eine Iteration der Planung notwendig.

Eine evolutionäre Iteration erfolgt nach der Freigabe einer Produktversion insbesondere unter Beteiligung des Kunden.

Interessant ist die Spike-Aktivität. Es ist klassisches Prototyping, um während der Planung mögliche Alternativen frühzeitig zu untersuchen.

Scrum

Scrum [17] ist neben Extreme Programming eine der bekanntesten agilen Vorgehensmodelle. Es handelt sich um evolutionäre Entwicklung.

SCRUM.png

Bild 18: Der Scrum Prozess

Interessant ist der tägliche Scrum. Es ist ein essentieller Bestandteil des Scrum-Prozesses. Er soll die Zusammenarbeit der Teammitglieder hinsichtlich Fortschritt, Probleme und nächste Zeile fördern.

Die Sprint Retrospektive betrifft nicht das Produkt selbst, sondern den Scrum-Prozess, d.h. nicht die Prozessstruktur, sondern die eingesetzten Arbeitstechniken und -methoden und die Zusammenarbeit der Beteiligen.

Verlauf agiler Entwicklung

Verlauf_Agil.png

Bild 19: Verlauf agiler Entwicklung

In Bild 19 wird die Menge der Artefakte im Verlauf von fünf agilen Iterationen dargestellt. Während der ersten Analyse A wird die Spezifikation vollständig erstellt. Im darauf folgenden Design D, Implementation I und Test T wird nur ein Teil der Spezifikation realisiert.

In den nachfolgenden Iterationen werden sowohl Anforderungen verworfen als auch neue hinzugenommen. In jedem iterativen Durchlauf werden dann Artefakte verworfen und neue erstellt. Bis schließlich das System in der letzten Iteration vollständig erstellt wurde. Die Entwicklung verläuft im wesentlichen evolutionär.

Wesentliche Merkmale agiler Entwicklung sind kurze Zyklen und evolutionäre Vorgehensweise.