Agile vs. traditionelle Softwareentwicklungsmethodik
Es gibt eine Reihe verschiedener Softwareentwicklungsmethoden, die heute in der Softwareindustrie verwendet werden. Die Methode der Wasserfallentwicklung ist eine der frühesten Methoden der Softwareentwicklung. V-Model, RUP und einige andere lineare, iterative und kombinierte linear-iterative Methoden, die nach der Wasserfallmethode kamen, sollten viele Probleme der Wasserfallmethode auslöschen. Alle diese früheren Methoden werden als traditionelle Softwareentwicklungsmethoden bezeichnet. Das Agile-Modell ist ein neueres Software-Entwicklungsmodell, das eingeführt wurde, um die Mängel der traditionellen Modelle zu beheben. Das Hauptaugenmerk von Agile besteht darin, möglichst frühzeitig zu testen und eine funktionsfähige Version des Produkts zu veröffentlichen, indem das System in sehr kleine und handhabbare Teile zerlegt wird.
Was ist die traditionelle Softwareentwicklungsmethodik??
Softwaremethoden wie die Waterfall-Methode, V-Model und RUP werden als traditionelle Softwareentwicklungsmethoden bezeichnet. Die Wasserfallmethodik ist eines der frühesten Softwareentwicklungsmodelle. Wie der Name vermuten lässt, handelt es sich um einen sequentiellen Prozess, bei dem der Fortschritt mehrere Phasen (Anforderungsanalyse, Entwurf, Entwicklung, Test und Implementierung) von oben nach unten durchläuft, analog zu einem Wasserfall. V-Model wird als Erweiterung des Waterfall-Softwareentwicklungsmodells betrachtet. Das V-Modell verwendet die gleichen Beziehungen zwischen den im Wasserfallmodell definierten Phasen. Statt jedoch linear abzusteigen (wie beim Waterfall-Modell), steigt das V-Modell diagonal ab und bewegt sich dann nach der Kodierungsphase wieder nach oben. Die Form des Buchstabens V zu bilden, ist jedoch ein anpassungsfähiger Prozessrahmen (nicht ein einzelner konkreter Prozess), der von der Entwicklungsorganisation entsprechend ihren Bedürfnissen angepasst werden kann. Etwas ähnlich wie der Wasserfall, hat es feste Phasen wie Entstehung, Ausarbeitung, Konstruktion und Übergang. Im Gegensatz zum Wasserfall ist RUP ein iterativer Prozess.
Was ist agil??
Agile ist eine sehr neue Softwareentwicklungsmethodik (oder richtiger eine Gruppe von Methoden), die auf dem Agile-Manifest basiert. Dies wurde entwickelt, um einige Mängel bei traditionellen Softwareentwicklungsmethoden zu beheben. Agile Methoden basieren darauf, der Kundenbeteiligung früh im Entwicklungszyklus hohe Priorität einzuräumen. Es wird empfohlen, den Kunden frühzeitig und möglichst oft zu testen. Der Test wird an jedem Punkt durchgeführt, an dem eine stabile Version verfügbar ist. Die Gründung von Agile basiert darauf, dass die Tests vom Beginn des Projekts an beginnen und bis zum Ende des Projekts andauern. Scrum und Extreme-Programmierung sind zwei der beliebtesten Varianten der Agile-Methode.
Der Schlüsselwert von Agile ist "Qualität ist die Verantwortung des Teams", die betont, dass die Qualität der Software in der Verantwortung des gesamten Teams liegt (nicht nur des Testteams). Ein weiterer wichtiger Aspekt von Agile ist die Aufgliederung der Software in kleinere, handhabbare Teile und die schnelle Lieferung an den Kunden. Die Lieferung eines funktionierenden Produkts ist äußerst wichtig. Dann verbessert das Team die Software kontinuierlich und liefert kontinuierlich bei jedem wichtigen Schritt. Dies wird erreicht, indem sehr kurze Release-Zyklen (in Scrum Sprints genannt) und am Ende eines jeden Zyklus Feedback zur Verbesserung erhalten. Mitwirkende ohne große Interaktionen des Teams, wie z. B. Entwickler und Tester in den früheren Methoden, arbeiten jetzt innerhalb des Agile-Modells zusammen.
Was ist der Unterschied zwischen der agilen und der traditionellen Softwareentwicklungsmethodik??
Obwohl die Agile-Methode als Teil der traditionellen Ansätze auf iterativer Entwicklung basiert, weisen die Agile- und die Traditional-Methodik wesentliche Unterschiede auf. Traditionelle Ansätze verwenden Planung als Kontrollmechanismus, während agile Modelle das Feedback der Benutzer als Hauptsteuerungsmechanismus verwenden. Agile kann als ein auf den Menschen ausgerichteter Ansatz als traditionelle Methoden bezeichnet werden. Das Agile-Modell bietet im Vergleich zu herkömmlichen Methoden eine sehr frühe Version des Produkts, sodass der Kunde einige Vorteile frühzeitig erkennen kann. Die Testzykluszeit von Agile ist im Vergleich zu herkömmlichen Methoden relativ kurz, da die Tests parallel zur Entwicklung durchgeführt werden. Die meisten traditionellen Modelle sind sehr steif und relativ weniger flexibel als das Agile-Modell. Aufgrund all dieser Vorteile wird Agile derzeit den traditionellen Methoden vorgezogen.