Definition „Extremprogrammierung“ Was ist Extreme Programming?

Autor / Redakteur: HJL / Stephan Augsten

Der Begriff „Extreme Programming (XP)“ beschreibt im Wesentlichen die Art und Weise, wie Software programmiert wird. Agile Prozesse, kurze Entwicklungszyklen und schnelle Reaktionszeiten auf neue oder sich ändernde Anforderungen stehen dabei im Vordergrund.

Anbieter zum Thema

Beim Extreme Programming stehen möglichst kurze Iterations- und Entwicklungszyklen sowie die Kundenorientierung im Vordergrund.
Beim Extreme Programming stehen möglichst kurze Iterations- und Entwicklungszyklen sowie die Kundenorientierung im Vordergrund.
(Bild: geralt - Pixabay.com / CC0 )

Als Vater des Extreme Programming gilt der amerikanische Software-Ingenieur Kent Beck. Gemäß Insidern aus der Software-Programmierer-Szene beschreibt XP den extremsten Fall hinsichtlich agiler Vorgehensmethodik bei der Software-Programmierung. Die „Feuertaufe“ bestand XP in den Jahren 1997-1998 bei der programmtechnischen Umsetzung des Daimler-Chrysler „Project C“ – Chrysler Consolidated Compensation.

Das interne Softwareprogramm für eine neue Mitarbeiter-Gehaltsabrechnung war in eine kritische Sackgasse geraten. Eine vom Autobauer engagierte Software-Entwicklungsgruppe um Kent Beck setzte das Projekt, basierend auf der Methode „Extreme Programming“ neu auf. Der neue Weg war von Erfolg gekrönt.

Beck fasste die in diesem Projekt gesammelten Erfahrungen in seinem Buch „Extreme Programming Explained“ zusammen. Als Gerüst für die Rahmenbedingungen der Extremprogrammierung bezeichnet der Autor darin die drei Hauptbestandteile

  • Werte (Values),
  • Prinzipien (Principles) und
  • Techniken (Practices).

Charakteristisch: zyklische Vorgehensweise

Charakteristisch beim Extreme Programming ist die zyklische Verfahrensweise auf den Entwicklungsprojekt-Ebenen. Diese Struktur betrifft die eigentliche Programmierung. Sie wirkt aber auch prägend auf die obligatorische Abstimmung im Entwicklungsprojekt-Team.

Diesem Zyklus unterliegt letztlich auch das gemeinsam mit dem Kunden definierte Anforderungsmanagement. Spätestens an dieser Stelle wird deutlich, dass XP auf einen vom Kunden strikt vorgegebenen Projekt-Anforderungskatalog bewusst verzichtet.

An seine Stelle tritt das sogenannte „Agile Modeling“. Es ermöglicht die Berücksichtigung von Kundenwünschen im Laufe der voran schreitenden Software-Entwicklung. So entstehen Entwicklungszyklen in Einheiten von einem Tag bis zu einer Woche. Sämtliche Themeninhalte einer komplexen Programmentwicklung, zum Beispiel

  • Analyse der Anforderungen
  • Produkt Design
  • Implementierung
  • Testphasen und Testtiefe

werden in diesen kurzen Zyklen aktualisiert und in den weiteren Entwicklungsprozess implementiert.

Diese zeitnahe und problemorientierte Verfahrensweise trägt der Erkenntnis Rechnung, dass Kunden und Auftraggeber die tatsächlichen Anforderungen und Leistungsprofile bei Projektbeginn oft nicht im Detail kennen. Die Erfahrung bei der klassischen Projektvorgabe zeigt auf, wie Pflichtenhefte häufig mit entbehrlichen Features belastet werden, während essentielle Funktionen vergessen werden.

Vorteile von XP bei komplexen Entwicklungsprojekten

Die Vorteile von Extreme Programming entfalten insbesondere bei komplexen Software-Entwicklungsprojekten ihre problemorientierte Wirkung. An die Stelle einer komplexen, starren Projektvorgabe tritt die in kürzere Iterationszyklen unterteilte Vorgehensweise.

Auf diesem Wege wird die Software-Entwicklung vereinfacht, was die aktive Einbindung der Kunden und Auftraggeber in das Projekt ermöglicht. Insbesondere diese Möglichkeit der Kommunikation mit dem Kunden gibt den nächsten Programm-Entwicklungsschritten eine konkrete Richtung. Kundenwünsche lassen sich zeitnah korrigieren, revidieren oder ergänzend konkretisieren.

Die Software-Entwicklung lässt sich dank dieser zyklischen Vorgehensweise signifikant beschleunigen. Auch der mit dem reduzierten Zeitaufwand gekoppelte Kostenaspekt birgt Einsparpotenziale. Im günstigsten Falle bewirkt das Zusammenspiel erfahrener Programmierer in Verbindung mit aktiv eingebundenen Kunden Projektvorteile, die sich mit Hilfe des Extreme Programming in Form eines qualitativ hochwertigen, passgenauen Software-Programms darstellen.

Zu guter Letzt sollte noch einmal darauf hingewiesen werden, dass das in Verbindung mit der Extremprogrammierung und ihrer Organisationsform anzutreffende Kürzel „XP“ keinerlei Bezug zum Betriebssystem Windows XP hat, bei dem es für Experience stand.

(ID:45073954)