Agile Entwicklung
Agile Softwareentwicklung ist der Oberbegriff für den Einsatz von Agilität (lat. agilis 'flink, beweglich') in der Softwareentwicklung. Je nach Kontext bezieht sich der Begriff auf Teilbereiche der Softwareentwicklung – wie im Fall von Agile Modeling – oder auf den gesamten Softwareentwicklungsprozess – exemplarisch sei Extreme Programming angeführt. Agile Softwareentwicklung zeichnet sich durch geringen bürokratischen Aufwand und wenige, flexible Regeln aus.
Die agilen XP Werte bilden das Fundament der Agilen Softwareentwicklung und wurden im Februar 2001 als „Agiles Manifest“ (englisch Manifesto for Agile Software Development oder kurz Agile Manifesto) formuliert:
- Individuen und Interaktionen gelten mehr als Prozesse und Tools
- Funktionierende Programme gelten mehr als ausführlicher Dokumentation
- Die stetige Zusammenarbeit mit dem Kunden steht über Verträgen
- Der Mut und die Offenheit für Änderungen stehen über dem Befolgen eines festgelegten Plans
Das Agile Manifesto beschreibt keine eigentlicher Prozess für die Software Entwicklung oder Projekt Management.
Auf der Basis des Manifesto konnten sich einige Methodiken durchsetzen:
- SCRUM
Scrum ist ein Management Rahmen zur agilen Steuerung iterativ-inkrementeller Projekte. Scrum macht keine Aussagen zur Art der Programmierung und zur Form der Anforderungsdefinition. - Extreme Programming (XP)
Extreme Programming ist die bekannteste Methodik. Sie beschreibt eine Sammlung von XP Praktiken und Arbeitstechniken auf drei Ebenen: Programmierprozess, Teamarbeit und Prozesssteuerung.
Da SCRUM primär die Management Ebene der Software Entwicklung betrachtet, kann es leicht mit anderen Methoden kombiniert werden, welche auf die Entwicklungspraktiken fokussieren. Dies wurde vor allem mit Extreme Programming (XP) versucht (SCRUM und XP). Dabei zeigte sich, dass sich die beiden Methoden sehr gut ergänzen.