Extreme Programming (XP)
Agile Software-Entwicklungsmethode mit Fokus auf technische Exzellenz, Kundennähe und iteratives Feedback.
Klassifikation
- KomplexitätMittel
- AuswirkungOrganisatorisch
- EntscheidungstypOrganisation
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Übermäßiger Fokus auf Teampraktiken ohne strategische Ausrichtung
- Unzureichende Architekturpflege bei kurzem Iterationsfokus
- Abhängigkeit von Schlüsselpersonen trotz Pairing-Versuchen
- Priorisiere kleine, wertorientierte Stories
- Automatisiere Tests und Integration frühzeitig
- Pflege gemeinsame Definitionen von Done und Qualität
I/O & Ressourcen
- Produkt-Backlog mit priorisierten Stories
- CI/CD-Pipeline mit automatisierten Tests
- Routinen für Kundenfeedback und Reviews
- Regelmäßige, getestete Releases
- Verbesserte Codequalität und geringer technischer Rückstand
- Schnelles Nutzerfeedback und Validierung
Beschreibung
Extreme Programming (XP) ist ein leichtgewichtiges, teamzentriertes Entwicklungsparadigma, das kurze Iterationen, kontinuierliche Integration und enge Zusammenarbeit mit dem Kunden betont. Es kombiniert konkrete Praktiken wie Pair Programming und Test-First-Entwicklung, um Qualität und Anpassungsfähigkeit in wechselnden Anforderungen zu sichern.
✔Vorteile
- Höhere Qualität durch TDD und Pair Programming
- Schnellere Reaktion auf geänderte Anforderungen
- Verbesserte Wissensverteilung im Team
✖Limitationen
- Benötigt disziplinierte Teams und stabile Kundenverfügbarkeit
- Skalierung über viele Teams erfordert zusätzliche Koordination
- Nicht immer geeignet für stark regulierte Umgebungen ohne Adaptionsspielraum
Trade-offs
Metriken
- Durchschnittliche Zykluszeit
Zeit von Anforderung bis zur Auslieferung eines Inkrements.
- Testabdeckungsrate
Prozentsatz des Codes, der durch automatisierte Tests abgedeckt ist.
- Fehlerdichte nach Release
Anzahl der Fehler pro ausgeliefertem Funktionsumfang nach Release.
Beispiele & Implementierungen
Early XP-Projekte (Beispielfirma)
Fallstudien aus frühen XP-Einführungen zeigen erhöhte Lieferqualität bei kurzen Iterationen.
TDD-Einführung in Produktteams
Teams berichten von weniger Regressionen und höherem Vertrauen in Releases nach TDD-Umsetzung.
Pair Programming zur Wissensverteilung
Pair Programming reduzierte Einarbeitungszeiten und erhöhte Codequalität in mehreren Teams.
Implementierungsschritte
Start mit Pilotteam: Schulung in TDD und Pair Programming
Aufbau einer CI/CD-Pipeline und Basis-Test-Suite
Iterative Erweiterung der Praktiken auf weitere Teams und Refactoring-Routine etablieren
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichend refaktorierte Codebasen nach schneller Entwicklung
- Überlastete Test-Suites ohne strategische Pflege
- Fragmentierte Build- und Deployment-Pipelines
Bekannte Engpässe
Beispiele für Missbrauch
- XP-Praktiken eingeführt, aber Produktpriorisierung fehlt
- Nur tägliche Rituale, keine echte Kundenintegration
- Vernachlässigung der Architektur bei verkürzten Iterationen
Typische Fallen
- Fokus auf Geschwindigkeit statt auf nachhaltige Qualität
- Unterschätzung des Aufwands für Testwartung
- Fehlende Unterstützung durch Management bei notwendigen Änderungen
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Regulatorische Anforderungen können Iterationen verlängern
- • Budgetbegrenzungen für Automatisierung
- • Organisatorische Widerstände gegen Pairing oder TDD