Agile Methodik: Bedeutung, Vorteile, Nachteile & mehr
Veröffentlicht: 2021-03-20Die agile Methodik ist eine Softwareentwicklungsphilosophie, die darauf abzielt, den Kunden einen besseren Mehrwert zu bieten, indem sie kürzere Entwicklungszyklen verwendet und gleichzeitig ständige Überarbeitungen beinhaltet.
Die Softwareentwicklung entwickelte sich aus den Bereichen Mathematik und Naturwissenschaften. Es beinhaltete also ursprünglich die wissenschaftlichen Methoden aus diesen Bereichen.
Diese Methoden entwickelten sich in den 1970er Jahren zum Wasserfallansatz, um den Anforderungen der Zeit gerecht zu werden. Computer und ihre Software waren damals groß, komplex und auf Jahrzehnte ausgelegt. Die Wasserfallmethode passte also gut.
Aber Ende der 1990er Jahre veränderte das Internet die Welt dramatisch und ein neuer Ansatz wurde notwendig. So entstand die agile Methodik.
Im Folgenden sehen Sie sich diese Softwareentwicklungsbewegung genauer an und wie sie Ihnen und Ihrem Team helfen kann.
Inhaltsverzeichnis
Geschichte der agilen Entwicklungsmethode
Die agile Softwareentwicklung entstand in den Boomjahren der 1990er und frühen 2000er Jahre aus dem Internet und seinem unersättlichen Bedarf an Anwendungen.
Dies war auch eine Zeit, in der viele Entwickler ohne Informatikhintergrund auf die Webentwicklung umstiegen, da der massive Bedarf an Websites für verschiedene Gruppen und Branchen bestand.
Natürlich waren die meisten Startups klein. Die meisten Entwicklungen fanden also in kleinen Teams statt, wobei das ultimative Ziel oft eine schnelle Time-to-Market war. Denn zu spät zu kommen bedeutete, Marktanteile zu verlieren.
Um den Einschränkungen des Wasserfallmodells entgegenzuwirken, Produkte so schnell wie möglich auf den Markt zu bringen, entwickelten verschiedene Entwickler in den 1990er Jahren unterschiedliche Methoden. Dazu gehören Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban und andere.
Dann, irgendwann im Jahr 2001, kamen 17 Entwickler, die die eine oder andere Form der frühen agilen Entwicklung praktizierten, in Utah, USA, zusammen. Dann beendeten sie ihr Treffen mit der Veröffentlichung des „Manifests für agile Softwareentwicklung“.
Dieses Manifest basiert auf 4 Werten und 12 Prinzipien.
Die 4 Werte und 12 Prinzipien der agilen Entwicklung
Aus den Erfahrungen, die sie während ihres Treffens gesammelt haben, einigten sich die 17 Entwickler auf eine Reihe von Werten, um Software effizienter zu erstellen.
Diese vier Werte sind wie folgt:
- Individuen und Interaktionen über Prozesse und Tools. Das bedeutet, dass es wichtig ist, Software mit Tools zu entwickeln, während man einem bestimmten Prozess folgt. Aber es ist wichtiger, dass kompetente Leute effektiver zusammenarbeiten.
- Funktionierende Software über umfassende Dokumentation. Dieser greift die Wasserfallmethode an, zuerst Software zu entwerfen und Dokumentation dafür zu schreiben, bevor der eigentliche Softwareentwicklungsprozess beginnt.
- Kundenzusammenarbeit über Vertragsverhandlungen. Nur durch die enge Zusammenarbeit mit dem Kunden oder Anwender können Sie genau das lernen und entwickeln, was der Kunde braucht. Das schafft mehr Wert.
- Auf Veränderungen reagieren, anstatt einem Plan zu folgen. Das Befolgen eines Projektplans ist wichtig. Aber der Plan darf nicht zu starr sein. Es muss Änderungen berücksichtigen, um die Erwartungen der Stakeholder zu erfüllen.
Diese oben genannten Werte des Agilen Manifests basieren auf 12 Prinzipien und lauten wie folgt:
- Kundenzufriedenheit durch frühzeitige und kontinuierliche Lieferung wertvoller Software.
- Begrüßen Sie sich ändernde Anforderungen, auch in der späten Entwicklungsphase.
- Stellen Sie häufig funktionierende Software bereit (Wochen statt Monate)
- Enge, tägliche Zusammenarbeit zwischen Geschäftsleuten und Entwicklern
- Projekte bauen auf motivierte Personen auf, denen man vertrauen sollte
- Das persönliche Gespräch ist die beste Form der Kommunikation (Co-Location)
- Funktionierende Software ist das primäre Maß für den Fortschritt
- Nachhaltige Entwicklung, die in der Lage ist, ein konstantes Tempo beizubehalten
- Kontinuierliche Aufmerksamkeit für technische Exzellenz und gutes Design
- Einfachheit – die Kunst, die Menge an nicht erledigter Arbeit zu maximieren – ist entscheidend
- Die besten Architekturen, Anforderungen und Designs entstehen aus sich selbst organisierenden Teams
- Das Team reflektiert regelmäßig, wie es effektiver werden kann, und passt sich entsprechend an
Iterationen oder Sprints
Iterationen oder Sprints in der agilen Softwareentwicklung sind kurze Zeiträume von meist 1 bis 4 Wochen, in die Entwicklungsarbeit gebrochen wird. Dies erleichtert die Verwaltung, da weniger Planung erforderlich ist.
Jedes Team besteht in der Regel auch aus Mitgliedern mit unterschiedlichen Funktionen, die Planung, Analyse, Design, Codierung und Tests umfassen können.
Das Team arbeitet bei jeder Iteration oder jedem Sprint gemeinsam an der Software. Und sie produzieren am Ende ein funktionierendes Produkt. Diese funktionierende Software ist laut dem Agilen Manifest ein Maßstab für wahren Fortschritt.
Abhängig vom Produkt und den Bedürfnissen des Kunden kann das Produkt einer Iteration auf den Markt gebracht werden oder nicht. Daher sind oft viele Iterationen für eine einzelne Version erforderlich.

Die Vorteile agiler Entwicklung
Wie Sie sich vorstellen können, bringt die agile Methodik viele Vorteile mit sich. Sie sind wie folgt:
- Schnellere Umsetzung von Ideen
- Mehr Flexibilität als der Wasserfallansatz
- Verbesserte Produktivität mit verwalteten Iterationen
- Bessere Produkte durch Benutzerinteraktionen
- Fehler werden schnell erkannt und behoben
Nachteile der agilen Methodik
Es gibt auch einige Nachteile bei der Arbeit mit einer agilen Entwicklungsmethode. Und sie können beinhalten:
- Es kann am Anfang schwierig sein, die Gesamtkosten abzuschätzen
- Es braucht viel Kunden-Input
- Beinhaltet viel ungeplante Arbeit
- Kein klar definiertes Projektende
Wann man agile Methoden einsetzt
- Wenn Sie nicht einschätzen können, was die Software benötigt
- Sie haben ausreichend Zugang zu Kunden
- Sie entwickeln eine Web-App oder ein einfach zu aktualisierendes System
- Sie müssen schnell Marktanteile mit einer frühen Veröffentlichung erobern
Beliebte agile Entwicklungsframeworks
Es gibt viele beliebte agile Entwicklungsframeworks. Einige begannen lange vor dem Agilen Manifest von 2001, während andere später kamen.
Das Ziel eines Frameworks besteht einfach darin, die Regeln einer Methode zu definieren. Während die beliebtesten Frameworks unten als Referenz aufgeführt sind, gibt es noch viele weitere. Und es steht Ihnen auch frei, Ihr eigenes zu erstellen oder ein vorhandenes Framework an Ihr Team anzupassen.
- Scrum : Dieses Framework ist für Teams mit 10 oder weniger Mitgliedern konzipiert. Die Arbeit wird in Sprints von 2-4 Wochen mit täglichen 15-minütigen Meetings aufgeteilt.
- Kanban : Das von Toyota stammende Kanban ist ein japanisches Wort, das Werbetafel bedeutet und sehr hilfreich für Teams ist, die visuelle Hilfsmittel schätzen. Aufgaben werden mithilfe von visuellen Darstellungen wie Haftnotizen oder Apps von einer Phase zur anderen verschoben.
- Rapid Application Development RAD : Dieser Ausdruck kann sich sowohl auf die agile Softwareentwicklung im Allgemeinen als auch auf die James-Martin-Methode beziehen. RAD konzentriert sich auf die Anforderungen an Benutzeroberflächen und verlässt sich stark auf Prototyping.
- Lean Startup : Dieses Framework ist für diejenigen gedacht, die ein Produkt oder eine Dienstleistung entwickeln müssen, aber zuerst ihre Marktfähigkeit bestimmen müssen. Es beinhaltet die Verwendung von Experimenten, um zu sehen, was funktioniert und was nicht.
Andere bemerkenswerte Frameworks sind Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method und das Scaled Agile Framework.
Die Agile- vs. Wasserfall-Methoden
Hier sehen Sie die agilen und Wasserfall-Methoden für die Entwicklung von Software nebeneinander. Es kann hilfreich sein zu wissen, wie sich die einzelnen Methoden gegeneinander schlagen. So können Sie ganz einfach die besten Werkzeuge für Ihre Arbeit auswählen.
Agil | Wasserfall |
---|---|
Inkrementeller & iterativer Ansatz | Lineares und sequenzielles Lebenszyklusmodell |
Flexibel zu ändern | Starre Implementierungen |
Tests und Bewertungen sind im Gange | Nach Fertigstellung gibt es nur eine Testphase |
Anforderungen können sich ändern | Die Anforderungen werden nach der Planung festgelegt |
Eine Sammlung von vielen kleineren Projekten | Ein einziges Projekt |
Mehr Kundenbindung | Weniger Kundenbindung |
Adaptive vs. vorausschauende Entwicklung
Das Ziel der agilen Softwareentwicklung ist die Anpassung an Veränderungen in der realen Welt. Und diese sind oft das Ergebnis der Bedürfnisse eines Kunden oder Benutzers. Anpassung steht in krassem Gegensatz zur prädiktiven Natur des Wasserfallmodells.
Da macht es Sinn, agile Methoden bei der Entwicklung von Systemen anzuwenden, bei denen man sich nicht so sicher ist, wie es ausgeht. Oder wenn es in einer Branche ständige Veränderungen und Weiterentwicklungen gibt. Das Internet ist ein großes Beispiel.
Andernfalls, wenn Sie für ein System oder einen Markt entwickeln, über den Sie alles wissen und der sich kaum ändert oder gegen Änderungen immun ist. Dann könnte die vorausschauende Natur der Wasserfall-Philosophie hilfreich sein.
Software-Handwerk
Software Craftsmanship ist eine weitere Philosophie, die auf agilen Entwicklungsprinzipien aufbaut und sich darauf konzentriert, die Fähigkeiten der an einem Projekt beteiligten Softwareentwickler hervorzuheben.
Die Software-Craftsmanship-Bewegung hat auch ein Manifest, in dem es heißt:
Als aufstrebende Software-Handwerker legen wir die Messlatte für professionelle Softwareentwicklung höher, indem wir sie praktizieren und anderen helfen, das Handwerk zu erlernen. Durch diese Arbeit haben wir zu schätzen gelernt: · Nicht nur funktionierende Software, sondern auch gut gemachte Software · Nicht nur auf Veränderungen reagieren, sondern auch stetig Mehrwert schaffen · Nicht nur Einzelpersonen und Interaktionen, sondern auch eine Gemeinschaft von Fachleuten · Nicht nur Zusammenarbeit mit Kunden, sondern auch produktive Partnerschaften Das heißt, bei der Suche nach den Gegenständen auf der linken Seite haben wir festgestellt, dass die Gegenstände auf der rechten Seite unverzichtbar sind. 2009, der Unterzeichnete. Diese Erklärung darf in jeder Form frei kopiert werden, jedoch nur in ihrer Gesamtheit durch diese Mitteilung
Fazit
Am Ende unseres Blicks auf die agile Methodik und Softwareentwicklung können Sie sehen, dass es so viele Möglichkeiten gibt.
Jedes Team ist anders. Und genauso wie verschiedene Teams ihre unterschiedlichen Methoden entwickelt haben, um sich an veränderte Zeiten anzupassen. Auch Sie müssen sich anpassen, indem Sie entweder auf ein bereits etabliertes Framework zurückgreifen oder es an Ihr Team anpassen.