Agile Softwareentwicklung
Agile Softwareentwicklung ist eine Familie iterativer, inkrementeller Methoden, die funktionierende Software, Kundenzusammenarbeit und schnelle Reaktion auf Änderungen gegenüber umfassender Vorausplanung und Dokumentation priorisieren.
Definition
Agile Softwareentwicklung ist ein Ansatz, bei dem sich Anforderungen und Lösungen durch kurze, zeitlich begrenzte Iterationen funktionsübergreifender Teams entwickeln, die funktionierende Inkremente liefern und kontinuierlich Stakeholder-Feedback einbeziehen.
Scope
Dieses Thema behandelt die Werte und Prinzipien des Agilen Manifests; konkrete Frameworks wie Scrum, Extreme Programming (XP) und Kanban; Praktiken wie kurze Iterationen, kontinuierliches Feedback, testgetriebene Entwicklung, Paarprogrammierung, Refactoring und häufige Veröffentlichungen; sowie die Rollen, Zeremonien und Artefakte, die agile Teams strukturieren.
Core questions
- Welche Werte und Prinzipien unterscheiden agile Methoden von planungsgetriebener Entwicklung?
- Wie strukturieren Frameworks wie Scrum und XP Iterationen, Rollen und Feedback?
- Welche Engineering-Praktiken ermöglichen eine häufige, zuverlässige Lieferung?
- Wann und wie gut lassen sich agile Methoden auf große oder verteilte Organisationen skalieren?
Key theories
- Werte des Agilen Manifests
- Vier Wertesätze priorisieren Individuen und Interaktionen, funktionierende Software, Kundenzusammenarbeit und das Reagieren auf Veränderungen, mit zwölf unterstützenden Prinzipien, die eine frühe und kontinuierliche Lieferung sowie die Begrüßung sich ändernder Anforderungen betonen.
- Scrum-Framework
- Scrum organisiert die Arbeit in Sprints fester Länge mit definierten Rollen (Product Owner, Scrum Master, Entwickler), Artefakten (Produkt- und Sprint-Backlogs, Inkrement) und Ereignissen (Sprint Planning, Daily Scrum, Review, Retrospektive), um inkrementell Wert zu liefern.
- Extreme Programming Praktiken
- XP kombiniert kurze Iterationen mit disziplinierten Engineering-Praktiken wie testgetriebener Entwicklung, Paarprogrammierung, kontinuierlicher Integration, kollektivem Besitz und Refactoring, um die Kosten von Änderungen gering zu halten.
Clinical relevance
Agile Methoden sind heute der dominierende Ansatz in der kommerziellen Softwareentwicklung, da sie die Reaktionsfähigkeit auf sich ändernde Märkte verbessern und eine häufige Wertlieferung ermöglichen; ihre Wirksamkeit hängt von Ingenieurdisziplin, Team-Empowerment und einer Feedback-Kultur ab, nicht allein von Zeremonien.
Evidence & guidelines
Der Scrum Guide bietet eine weit verbreitete Definition des Scrum-Frameworks, und das Agile Manifest bleibt die grundlegende Aussage agiler Werte; Skalierungs-Frameworks wie SAFe und LeSS erweitern agile Praktiken auf große Organisationen.
History
Leichtgewichtige Methoden wie Scrum und XP entstanden in den 1990er Jahren als Reaktion auf schwergewichtige, dokumentationsgetriebene Prozesse. Im Jahr 2001 veröffentlichten siebzehn Praktiker das Agile Manifest, das diese Methoden unter gemeinsamen Werten vereinte; Agilität wurde anschließend zum Mainstream und brachte in den 2010er Jahren Skalierungs-Frameworks hervor.
Debates
- Skalierung von Agilität in großen Organisationen
- Ob agile Prinzipien ihre Vorteile bei der Skalierung durch Frameworks wie SAFe behalten, ist umstritten; Kritiker argumentieren, dass schwergewichtige Skalierung Bürokratie wieder einführt, während Befürworter eine strukturierte Koordination als notwendig für große Unternehmen ansehen.
Key figures
- Kent Beck
- Ken Schwaber
- Jeff Sutherland
- Martin Fowler
- Alistair Cockburn
Related topics
Seminal works
- beck2001
- beck2004
- schwaber2020
Frequently asked questions
- Ist Agilität das Gegenteil von diszipliniertem Engineering?
- Nein. Effektive Agilität hängt stark von Ingenieurdisziplin wie automatisiertem Testen, kontinuierlicher Integration und Refactoring ab; der agile Schwerpunkt liegt auf der schnellen Anpassung an Veränderungen, nicht auf der Aufgabe von Strenge.
- Was ist der Unterschied zwischen Scrum und Agilität?
- Agilität ist der breite Satz von Werten und Prinzipien; Scrum ist ein spezifisches Framework, das diese mit bestimmten Rollen, Ereignissen und Artefakten implementiert. XP und Kanban sind andere agile Frameworks mit unterschiedlichen Schwerpunkten.