Extreme Programming (XP)

XP ist ein Ansatz der Softwareentwicklung, der verschiedene, bereits etablierte Verfahren der Softwareentwicklung neu miteinander kombiniert.

eXtreme Programming (kurz XP) geht davon aus, dass Softwareprojekte von vier Variablen abhängig sind: Zeit, Umfang, Ressourcen und Qualität. Da Zeit, Ressourcen und Qualität meistens fix gegeben sind, kann während der Projektlaufzeit nur der Umfang geändert werden um den Erfolg im Projekt zu garantieren.

Ein Vorgehensmodell

Extreme Programming (XP), auch Extremprogrammierung, ist ein flexibles Vorgehensmodell in der Softwaretechnik, das sich den Anforderungen des Kunden in wiederholten kleinen Schritten unter Verwendung von Rückkoppelungen (SPRINT), sowie einer kommunikationsintensiven Herangehensweise zielgerichtet annähert.

XP bejaht die Ungewissheit, mit der die Softwareentwicklung verbunden ist, stellt aber keinen Freibrief zum Chaos aus. Es folgt vielmehr einem klaren, strukturierten Vorgehen und stellt die Teamarbeit, Offenheit und stetige Kommunikation zwischen allen Beteiligten in den Vordergrund und legt einige XP Werte fest.

Das Team soll ferner gegen Krankheit Einzelner nicht mehr so anfällig sein. Ein ehrlicher Umgang mit dem Kunden möchte die Glaubwürdigkeit und Zufriedenheit steigern und die Angst minimieren, die gewöhnlich zwischen Kunde („Was werden die wohl liefern?“, „Haben die mich verstanden?“) und Entwicklung („Was will er eigentlich genau?“, „Ob er zufrieden sein wird mit dem, was wir liefern?“) vorherrscht.

Aufwandsabschätzungen werden verlässlicher, da sie im Team getroffen und ständig einer kritischen Überprüfung (Review) unterzogen werden. Teamgeist wird laut XP gefördert. Jedem sollte klar sein, dass das Ziel nur als Einheit erreichbar ist. Sollte ein Projekt, zum Beispiel aus Kostengründen, vorzeitig eingestellt werden, besteht durch die regelmässigen Iterationen (Wiederholungen;) dennoch ein zumeist einsatzfähiges Produkt.

Entwicklungszyklus

Ein XP-Projekt wird in eine Serie von "Releases", oder auf deutsch ausgedrückt, Versionen aufgeteilt. Unter einem Release verstehen wir eine innerhalb einer festgesetzten Zeit implementierte Anzahl Software-Leistungsmerkmale, die ein geschäftliches Erfordernis (Geschäftswert) erfüllen. Die genaue Vorgehensweise ist im Planungs- und Iterationsspiel angegeben. Durch die Anwendung von SCRUM ergibt siche ein Release Zyklus von 30 Tage. Dabei werden die verschiedene Ticket's in einen SPRINT anhand der Funktionalität und Kundenpriorisierung umgesetzt.

Planungsspiel

Der Kunde schreibt seine Wünsche an die Software kurz, in ein bis zwei Sätzen, auf sogenannte "story-cards". Diese werden im Product Backlog festgehalten.

Iterationsspiel (Sprint)

Die Programmierer schreiben die für eine bestimmte Geschichte benötigten Aufgaben an die Software kurz, in ein bis zwei Sätzen, auf sogenannte "task-cards". Diese werden im Sprint Backlog festgehalten.