Der V-Zyklus wurde in den 1980er Jahren eingeführt und ist die "traditionelle" Methode des Projektmanagements. Er beruht auf der Tatsache, dass ein Projekt in eine Reihe von Schritten aufgeteilt wird: Bedarfsanalyse, Erstellung der funktionalen Spezifikationen, Umsetzung, Unit-Tests, Integrationstests, Validierungstests und Abnahmetests. Jeder Schritt ist mit einer Validierungsphase verbunden. Seine Hauptvorteile beruhen auf seiner einfachen Umsetzung und dem Tunneleffekt, der verhindert, dass man zurückgehen muss. Aber dieser Tunneleffekt ist auch das, was ihm vorgeworfen wird, denn er lässt keinen Raum für Änderungen während der Entwicklung und damit für Anpassungsfähigkeit und Reaktionsfähigkeit. Und das Problem heute ist, dass es komplex ist, alle Situationen vorherzusehen und daher Anforderungen dagegen zu stellen.
Es ist dieser Mangel an Flexibilität, der der Agile-Methode zu ihrer Entwicklung und ihrem Erfolg verholfen hat. Die Agile Methode fördert die Kommunikation und Zusammenarbeit zwischen selbstorganisierten, multidisziplinären Teams und stellt den Kunden in den Mittelpunkt des Projekts. Sie folgte auf die Beobachtung einer hohen Misserfolgsrate bei Projekten in den 1990er Jahren. Im Jahr 2001 trafen sich 17 Experten für Softwareentwicklung in den USA und legten ihre jeweiligen Methoden zusammen. " Agiles Manifest ".
Das Agile Manifest gilt als kanonische Definition der agilen Entwicklung und besteht aus vier Werten und zwölf Grundprinzipien.
"Wir entdecken bessere Ansätze für die Softwareentwicklung, indem wir sie praktizieren und anderen helfen, sie zu praktizieren. Diese Arbeit hat dazu geführt, dass wir Wert auf :
auf Menschen und ihre Interaktionen statt auf Prozesse und Werkzeuge ;
zu einer funktionierenden Software statt zu einer umfassenden Dokumentation ;
auf die Zusammenarbeit mit den Kunden statt auf Vertragsverhandlungen ;
auf die Anpassung an Veränderungen statt auf die Ausführung eines Plans.
Das bedeutet, dass wir zwar Wert in den Elementen am Ende haben, unsere Präferenz aber den Elementen im ersten Teil des Satzes gilt."
1. Unsere höchste Priorität ist es den Kunden zufriedenstellen indem wir schnell und regelmäßig Funktionen mit hohem Mehrwert liefern.
2. Begrüßen Sie Änderungen der Bedürfnisse positiv, auch spät im Projekt. Agile Prozesse nutzen Veränderungen, um dem Kunden einen Wettbewerbsvorteil zu verschaffen.
3. Liefern Sie häufig funktionierende Software in Zyklen von Wochen bis Monaten, wobei kürzere Zyklen bevorzugt werden.
4. Die Nutzer oder ihre Vertreter und die Entwickler sollten während des gesamten Projekts täglich zusammenarbeiten.
5. Führen Sie Projekte mit motivierten Personen durch. Stellen Sie ihnen das Umfeld und die Unterstützung zur Verfügung, die sie benötigen, und vertrauen Sie ihnen, dass sie die gesteckten Ziele erreichen.
6. Die einfachste und effektivste Methode, um Informationen an und innerhalb des Entwicklungsteams zu vermitteln, ist der persönliche Dialog.
7. Funktionierende Software ist der wichtigste Maßstab für den Fortschritt eines Projekts.
8. Agile Prozesse fördern ein nachhaltiges Entwicklungstempo. Gemeinsam sollten Auftraggeber, Entwickler und Nutzer in der Lage sein, auf unbestimmte Zeit ein konstantes Tempo beizubehalten.
9. Ein kontinuierlicher Fokus auf technische Exzellenz und gutes Design.
10. Einfachheit - d. h. die Kunst, die Menge an unnötiger Arbeit zu minimieren - ist von entscheidender Bedeutung.
11. Die besten Architekturen, Spezifikationen und Designs gehen aus selbstorganisierten Teams hervor.
12. In regelmäßigen Abständen denkt das Team über mögliche Wege nach, um effizienter zu werden. Dann passt es sich an und ändert seine Arbeitsweise entsprechend.
Anstatt langfristige Ziele zu setzen, beruht die agile Methodik auf kurzfristigen Zielen. Alles wird nach und nach erledigt. Und da die Zufriedenheit des Kunden an erster Stelle steht, wird jeder Schritt von ihm bestätigt. So kann man sich leichter und schneller auf Änderungen oder Unvorhergesehenes einstellen und die Erwartungen des Kunden erfüllen. Es besteht eine echte Beziehung und Zusammenarbeit zwischen dem Team und dem Kunden, die es allen ermöglicht, effizient voranzukommen und auf der gleichen Wellenlänge zu sein.
Der agile Ansatz ist eine sehr weiche und flexible Methode des Projektmanagements. Fast alles ist anpassungsfähig. Die Qualität ist es vielleicht etwas weniger, aber alles, was den Umfang, das Budget und die Zeit betrifft, kann leicht geändert werden, je nachdem, welche Methode (Scrum, Kanban) verwendet wird. Dadurch kann man besser auf Probleme reagieren, die Leistung des Teams steigern, aber auch die Kontrolle über das Endprodukt gewinnen und damit dessen Qualität verbessern. Und ein qualitativ hochwertiges Endprodukt bedeutet zufriedene Nutzer, die eher bereit sind, Geld auszugeben!
Achtung: Agilität ist keine magische Lösung, die man auf jede Organisation und jedes Projekt anwenden kann. Damit sie funktioniert, müssen bestimmte Voraussetzungen erfüllt sein: eine Organisationskultur, die die Zusammenarbeit fördert und nicht auf zu starren Strukturen beruht, ein multidisziplinäres Team und ein Kunde, der verfügbar und bereit ist, sich in das Projekt einzubringen.
Außerdem gibt es einige Grenzen der Agilität. Zum Beispiel fördert das Fehlen eines klar definierten Prozesses zwar die Unabhängigkeit der Teams, kann sie aber auch ablenken. Daher ist es wichtig, Mittel zur Koordination der einzelnen Akteure und auch Mittel zur Messung des Fortschritts einzuführen, z. B. durch die Festlegung von KPIs, damit man sich nicht zu sehr verzettelt. Andererseits ist es durch die Unvorhersehbarkeit der agilen Methodik schwierig, die Kosten, die benötigten Ressourcen und die Zeit des Projekts zu bestimmen, und das sollte man bedenken, bevor man loslegt.
Und wenn die Agile-Methode die "beste" Lösung zu sein scheint, sie steht eigentlich nicht im Gegensatz zum V-Zyklus, der je nach Projekt immer noch sehr geeignet ist. Alles eine Frage des Kontexts und es ist daher sinnvoll, beide Methoden zu untersuchen, um festzustellen, welche für das eigene Projekt am besten geeignet ist.
Was die Frage betrifft: "Wie kann man die agile Methodik im Bereich des Testens verankern?", so wird dies Gegenstand eines nächsten Artikels sein! Wir müssen Ihnen ja Lust machen, wiederzukommen 😉.