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:
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:
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.
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 Ziele 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.
Eine Aktivität
Ein Artefakt
Ein Startknoten
Ein Endknoten
Ein Übergang
Verlauf agiler Entwicklung
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.