Agile ist ein Begriff, der verwendet wird, um einen Ansatz zur Softwareentwicklung zu beschreiben, der sich auf die inkrementelle Lieferung, die Zusammenarbeit im Team, die kontinuierliche Planung und das kontinuierliche Lernen konzentriert, anstatt alles auf einmal am Ende zu liefern.
Agile konzentriert sich darauf, den Prozess schlank zu halten und ein Minimum Viable Product (MVP) zu erstellen, wobei mehrere Iterationen durchlaufen werden, bevor das endgültige Ergebnis entsteht. Feedback wird kontinuierlich gesammelt und umgesetzt. Kurz gesagt, es ist ein dynamischerer Prozess, bei dem alle gemeinsam einem Ziel zustreben.

Agile Softwareentwicklung
Scrum und andere führende agile Methoden
Agile ist eine Haltung – ein Satz von Werten und Prinzipien. Es ist eine Art zu denken und zu handeln. Agile bedeutet kurze Zyklen, iterative und inkrementelle Lieferung, schnelles Scheitern, Feedbackgewinnung, frühe Lieferung von Geschäftswert und Fokus auf Menschen, Zusammenarbeit und Interaktion. Agile ist eine Haltung der Transparenz, Inspektion und Anpassung. Allerdings beinhaltet Agile keineRollen, Ereignisse oderArtefakte. Es ist eine Haltung. Zum Beispiel istScrum eines der weit verbreiteten Frameworks unter dem Dach des Agilen, das Ihnen hilft, agiler zu werden. Doch die agile Bewegung umfasst viele andere Frameworks, wie Kanban,XP, Crystal und andere, wie unten gezeigt:

Scrum Agile Dach
Scrum
Scrum ist ein Framework, das Menschen nutzen, um komplexe adaptive Probleme zu lösen, während sie hochwertige Produkte effizient und kreativ liefern. Es wird verwendet, um Softwareprojekte sowie Produkt- oder Anwendungsentwicklung zu managen. Sein Fokus liegt auf adaptiven Produktentwicklungsstrategien, bei denen interdisziplinäre Teams innerhalb von 2 bis 4 Wochen gemeinsam ein gemeinsames Ziel verfolgen (Sprint). Es besteht aus einer Reihe von Werten, Artefakten, Rollen, Zeremonien, Regeln und Best Practices.
Lean
Lean stammt aus dem Toyota-Produktionssystem (TPS), das die Produktion physischer Güter in den 1950er, 60er und darüber hinaus revolutioniert hat. Während Lean in der Fertigung weiterhin eine führende Rolle spielt, hat es auch neue Anwendungen im Wissensarbeiten gefunden, wodurch Unternehmen in allen Branchen **Verschwendung beseitigen, Prozesse verbessern und Innovation fördern**. Die Softwareentwicklung ist eine natürliche Anwendung für Lean-Methoden, da sie wie die Fertigung oft etablierte Prozesse folgt, definierte Akzeptanzkriterien hat und zur Lieferung von greifbarem Wert führt. Die zentralen Konzepte, die alle Lean-Praktiken leiten, werden als Lean-Pfeiler bezeichnet. Sie sind:
- Kontinuierliche Verbesserung
- Respekt vor Menschen
- Leichte Führung
Kanban
Kanban ist eine hochgradig visuelle Methodik zur Arbeitsflusssteuerung, die weithin in Lean-Teams eingesetzt wird. Tatsächlich nutzen 83 % der Lean-Fertigungsteams Kanban, um die Produktentwicklung zu visualisieren und aktiv zu managen, wobei der Fokus auf kontinuierlicher Lieferung ohne Überlastung des Entwicklungsteams liegt. Wie Scrum ist auch Kanban ein Prozess, der darauf abzielt, die Zusammenarbeit von Teams effektiver zu gestalten.
Kanban basiert auf drei zentralen Prinzipien:
- Visualisieren Sie Ihre Arbeit heute (Arbeitsfluss): Alle Elemente im Zusammenhang miteinander zu betrachten, kann reichhaltige, erkenntnisreiche Informationen liefern.
- Begrenzter Arbeitsfortschritt (WIP): Dies hilft, flussbasierte Ansätze auszugleichen, damit Teams nicht sofort zu viel Arbeit beginnen und übernehmen.
- Prozess verbessern: Wenn eine Aufgabe abgeschlossen ist, wird das nächsthöchste Prioritätselement im Backlog aktiviert.
Kanban fördert die kontinuierliche Zusammenarbeit, indem er den optimalen Team-Workflows definiert, und ermutigt zu aktiver, kontinuierlicher Lern- und Verbesserungsarbeit.
Dynamische Systementwicklungsmethode (DSDM)
DSDM ist ein Rahmenwerk, das aus acht Prinzipien besteht, darunter Lebenszyklus und Produkt, Rollen und Verantwortlichkeiten sowie mehrere bewährte Techniken. Diese Prinzipien unterstützen und ermöglichen die frühzeitige Bereitstellung strategisch bedeutender geschäftlicher Vorteile und liefern so die beste Kapitalrendite (ROI) für Organisationen.
DSDM ist eine Methode, die Planung und Qualität gegenüber Funktionen priorisiert. Sie fixiert Kosten, Qualität und Zeit von Beginn an und verwendet die MoSCoW-Priorisierungstechnik, um Projektanforderungen in vier Arten zu unterteilen:
- MMüssen haben
- SSollten haben
- CKönnten haben
- WMüssen nicht haben
Die acht unterstützenden Prinzipien von DSDM Atern [13] leiten Teams in Bezug auf die Haltungen und Einstellungen, die sie annehmen müssen, um kontinuierlich Wert zu liefern.
- Fokus auf geschäftliche Bedürfnisse
- Pünktlich liefern
- Zusammenarbeiten
- Qualität niemals beeinträchtigen
- Schritt für Schritt von einer soliden Grundlage aufbauen
- Iterative Entwicklung
- Kontinuierliche klare Kommunikation
- Kontrolle demonstrieren
Extremes Programmieren (XP)
Ursprünglich beschrieben von Kent Beck,Extremes Programmieren (XP) ist zu einer der beliebtesten und umstrittensten agilen Methoden geworden. XP ist ein disziplinierter Ansatz, um hochwertige Software schnell und kontinuierlich zu liefern. Es zielt darauf ab, die Softwarequalität und die Reaktionsfähigkeit auf sich ändernde Kundenbedürfnisse zu verbessern. Es fördert eine hohe Kundenbeteiligung, schnelle Feedbackzyklen, kontinuierliches Testen, kontinuierliche Planung und enge Teamzusammenarbeit und liefert funktionierende Software in sehr kurzen Intervallen (typischerweise alle 1–3 Wochen).
Der Name der Methode stammt aus der Idee, nützliche Elemente aus traditionellen Praktiken der Softwareentwicklung zu übernehmen und sie auf eine „extreme“ Ebene zu treiben. Zum Beispiel gelten Code-Reviews als nützliche Praxis. In extremer Form wird der Code kontinuierlich durch die Praxis des Pair Programming überprüft.
Das ursprüngliche XP-Framework basiert auf vier Kernwerten – Einfachheit, Kommunikation, Rückmeldung und Mut.
Es umfasst außerdem zwölf unterstützende Praktiken:
- Planning Game
- Kleine Releases
- Kunden-Akzeptanztests
- Einfaches Design
- Pair Programming
- Testgetriebene Entwicklung
- Refactoring
- Kontinuierliche Integration
- Gemeinsame Code-Verantwortung
- Programmierstandards
- Metapher
- Nachhaltige Entwicklung

Extreme Programming
Feature-getriebene Entwicklung (FDD)
Feature-getriebene Entwicklung (FDD) wurde 1997 von Jeff De Luca während eines Softwareentwicklungsprojekts bei einer großen singapurischen Bank eingeführt. Es handelt sich um einen iterativen und inkrementellen Prozess der Softwareentwicklung und eine agile Herangehensweise an die Softwareentwicklung. FDD integriert viele weit verbreitete Branchenbest-Praktiken zu einem kohärenten Ganzen. Diese Praktiken werden aus der Perspektive des Kundenwertes – Features – getrieben. Ihr primäres Ziel ist die wiederholte und termingerechte Lieferung von greifbaren, funktionierenden Softwareprodukten. Ein wesentlicher Vorteil der Verwendung von FDD ist, dass sie dank des Konzepts „Just Enough Design“ (JEDI) auf große Teams skaliert werden kann. Aufgrund ihres featurezentrierten Prozesses ist FDD eine hervorragende Lösung, um die Kontrolle über agile, inkrementelle und inhärent komplexe Projekte zu bewahren. Sie besteht aus fünf Kernaktivitäten:
- Entwickeln eines Gesamtmodells
- Erstellen einer Feature-Liste
- Planen nach Feature
- Design nach Feature
- Erstellen nach Feature

Feature-getriebene Entwicklung (FDD)
Jedes Projekt verfügt über ein eigenes einzigartiges Modell, das eine Feature-Liste generiert. Die letzten drei Aktivitäten sind kurze Iterationen, die jeweils nicht länger als zwei Wochen dauern. Wenn eine Aufgabe länger als zwei Wochen dauert, wird sie in kleinere Features aufgeteilt.
Crystal
Die Crystal-Methoden wurden Anfang der 1990er Jahre von Alistair Cockburn als Reihe von Ansätzen (die Crystal-Familie) entwickelt. Diese Methoden stammen aus Cockburns jahrelanger Erfahrung und Teaminterviews. Cockburns Forschung zeigte, dass die von ihm befragten Teams keine formalen Methodologien verfolgten, dennoch jedoch erfolgreiche Projekte lieferten. Die Crystal-Familie ist Cockburns Art, das zu dokumentieren, was diese erfolgreichen Teams taten. Die Crystal-Methoden konzentrieren sich vor allem auf:
- Menschen
- Interaktion
- Gemeinschaft
- Fähigkeit
- Talent
- Kommunikation
Agile Manifesto
Der Begriff „Agile“ wurde im Agile Manifesto von 2001 geprägt. Das Manifest zielt darauf ab, Prinzipien zu etablieren, die bessere Praktiken im Softwareentwicklungsbereich leiten. Das Agile Manifesto besteht aus vier Kernwerten. Das Lesen des Agile Manifestos bedeutet nicht, dass die Elemente auf der rechten Seite wertlos sind — vielmehr legt Agile mehr Wert auf die Elemente auf der linken Seite.

Agile Manifesto
Lassen Sie uns nun die erste Zeile des Agile Manifestos betrachten. Diese Zeile besagt, dass wir Menschen, ihre Interaktionen, Kommunikation und Zusammenarbeit mehr schätzen als eine Vielzahl breiter Prozesse und Werkzeuge. Natürlich sind Prozesse und Werkzeuge wertvoll, werden aber noch wertvoller, wenn sie tatsächlich Menschen unterstützen, die gemeinsam hochwertige Produkte liefern. Was wir oft in vielen Organisationen beobachten, ist, dass Prozesse und Werkzeuge zu Zielen an sich werden. Aus Sicht der Agilität sehen wir das anders. Prozesse und Werkzeuge sollten Menschen unterstützen, die gemeinsam Wert für Kunden schaffen.
Agile Prinzipien
Als Ergänzung zum Agile Manifesto hat auch die Agile Alliance eine Reihe von 12 Prinzipien definiert, die Anleitung und detailliertere Erklärungen über das Manifest hinaus bieten:

Agile Manifesto-Prinzipien
- Unser höchster Priorität ist die Zufriedenstellung des Kunden durch frühzeitige und kontinuierliche Lieferung wertvoller Software.
- Willkommen sind veränderte Anforderungen, auch spät im Entwicklungsprozess. Agile Prozesse nutzen Veränderungen für den Wettbewerbsvorteil des Kunden.
- Liefere funktionierende Software häufig, von einigen Wochen bis zu einigen Monaten, wobei kürzere Zeiträume bevorzugt werden.
- Geschäftspersonen und Entwickler müssen täglich während des gesamten Projekts zusammenarbeiten.
- Baue Projekte um motivierte Personen herum. Gib ihnen die Umgebung und Unterstützung, die sie benötigen, und vertraue darauf, dass sie die Aufgabe erfüllen.
- Die effektivste Methode, Informationen an ein Entwicklungsteam und innerhalb desselben zu übermitteln, ist das persönliche Gespräch.
- Funktionsfähige Software ist der primäre Maßstab für Fortschritt.
- Agile Prozesse fördern nachhaltige Entwicklung. Die Förderer, Entwickler und Nutzer sollten in der Lage sein, unendlich eine konstante Geschwindigkeit beizubehalten.
- Ununterbrochene Aufmerksamkeit für technische Exzellenz und gute Gestaltung erhöht die Agilität.
- Einfachheit — die Kunst, die Menge an Arbeit, die nicht erledigt wird, zu maximieren — ist entscheidend.
- Die besten Architekturen, Anforderungen und Designs entstehen aus selbstorganisierten Teams. Teams reflektieren regelmäßig, wie sie effektiver werden können, und passen ihr Verhalten entsprechend an.
Zusammenfassung
Agile Entwicklung ist ein beliebter Begriff in der Softwareentwicklung — eine alternative Art, Softwareentwicklungsprojekte zu managen. Es ist keine spezifische Softwareentwicklungsmethode, sondern vielmehr eine Sammlung von Methoden und Praktiken, die auf den Werten und Prinzipien basieren, die im Agile Manifesto formuliert sind. Lösungen entwickeln sich durch die Zusammenarbeit zwischen selbstorganisierten, interdisziplinären Teams, wobei Praktiken eingesetzt werden, die sich an ihrem Kontext orientieren.