•     •   10 min read

Extreme Programming (XP):
Nicht für Zartbesaitete

Extreme Pro­gram­ming (XP) ist eine agile Soft­wa­reen­twick­lungsmethodik. Wie andere agile Meth­o­d­en hat XP seine einzi­gar­ti­gen Werkzeuge, Prozesse und Rollen. Der Schöpfer von XP, der amerikanis­che Entwick­ler Kent Beck, hat nichts völ­lig Neues erfun­den, son­dern die besten Prak­tiken der agilen Entwick­lung aufge­grif­f­en und bis zum Extrem ver­stärkt, daher der Name Extreme Programming.

Der Autor der Methodik, Kent Beck, leit­ete Ende der 90er Jahre das Chrysler Com­pre­hen­sive Com­pen­sa­tion Sys­tem-Pro­jekt, in dem er erst­mals XP-Prak­tiken anwandte. Er doku­men­tierte seine Erfahrun­gen und das ent­standene Konzept in dem Buch Extreme Pro­gram­ming Explained”, das 1999 veröf­fentlicht wurde. Auf dieses Buch fol­gten weit­ere, die XP-Prak­tiken detail­liert beschreiben. Zu den Miten­twick­lern der Methodik gehören Ward Cun­ning­ham, Mar­tin Fowler und andere.
Im Gegen­satz zu anderen agilen Meth­o­d­en wird XP exk­lu­siv in der Soft­wa­reen­twick­lung ver­wen­det. Es kann nicht auf andere Geschäfts­felder oder das tägliche Leben wie Scrum, Kan­ban oder Lean angewen­det werden.
Das Ziel von XP ist es, mit ständig wech­sel­nden Anforderun­gen an das Soft­ware­pro­dukt umzuge­hen und die Entwick­lungsqual­ität zu verbessern. Daher ist XP für kom­plexe und unsichere Pro­jek­te geeignet.

XP dreht sich um vier Ker­nak­tiv­itäten: Codieren, Testen, Entwer­fen und Zuhören. Darüber hin­aus hat Extreme Pro­gram­ming grundle­gende Werte: Ein­fach­heit, Kom­mu­nika­tion, Feed­back, Mut und Respekt.

13 Prak­tiken des Extreme Programming

1. Das gesamte Team

Alle Pro­jek­t­teil­nehmer, die XP ver­wen­den, arbeit­en als ein einziges Team. Dieses Team muss einen Kun­den­vertreter umfassen, vorzugsweise einen echt­en End­be­nutzer, der über die Geschäftswelt informiert ist. Der Kunde legt die Pro­duk­tan­forderun­gen fest und pri­or­isiert die Funk­tion­al­itäten. Busi­ness-Ana­lysten kön­nen den Kun­den unter­stützen. Von der Seite der Aus­führen­den umfasst das Team Entwick­ler, Tester, manch­mal einen Coach, der das Team anleit­et, und einen Man­ag­er, der Ressourcen bereitstellt.

2. Pla­nungsspiel

Die Pla­nung in XP erfol­gt in zwei Phasen: Release-Pla­nung und Iterationsplanung.
  • Release-Pla­nung: Das Pro­gram­mi­er-Team trifft sich mit dem Kun­den, um die gewün­schte Funk­tion­al­ität für das näch­ste Release zu bes­tim­men, typ­is­cher­weise in 2 – 6 Monat­en. Da die Anforderun­gen des Kun­den oft vage sind, klären die Entwick­ler diese und brechen sie in Auf­gaben herunter, die in einem Tag oder weniger abgeschlossen wer­den kön­nen. Der Kunde muss das betriebliche Umfeld ver­ste­hen, in dem das Pro­dukt arbeit­en wird.

    Die Auf­gaben wer­den auf Karten fest­ge­hal­ten, und der Kunde pri­or­isiert sie. Die Entwick­ler schätzen dann die Zeit, die für jede Auf­gabe benötigt wird. Sobald die Auf­gaben beschrieben und geschätzt sind, über­prüft der Kunde die Doku­men­ta­tion und genehmigt den Beginn der Arbeit­en. Für den Pro­jek­ter­folg ist es entschei­dend, dass der Kunde und das Pro­gram­mi­er-Team auf dem­sel­ben Spielfeld spie­len: der Kunde wählt tat­säch­lich notwendi­ge Funk­tion­al­itäten inner­halb des Bud­gets aus, und die Pro­gram­mier­er richt­en die Anforderun­gen des Kun­den angemessen auf ihre Möglichkeit­en aus.
  • Iter­a­tions­pla­nung: Find­et alle zwei Wochen statt, manch­mal häu­figer oder sel­tener. Der Kunde ist anwe­send, um die Funk­tion­al­ität für die näch­ste Iter­a­tion zu definieren und Änderun­gen an den Pro­duk­tan­forderun­gen vorzunehmen.

3. Kleine Releases

XP-Releas­es sind häu­fig, aber mit begren­zter Funk­tion­al­ität. Dieser Ansatz erle­ichtert das Testen und die Wartung der Betrieb­ssicher­heit des Sys­tems und stellt dem Kun­den in jed­er Iter­a­tion eine funk­tionale Geschäftswert-Funk­tion­al­ität zur Verfügung.

Kun­den­tests

Der Kunde legt automa­tisierte Abnah­me­tests fest, um die Funk­tion­al­ität des Pro­duk­ts zu über­prüfen. Das Team schreibt diese Tests und nutzt sie, um den Code zu testen.

Gemein­same Code-Eigentümerschaft

In XP kann jed­er Entwick­ler jeden Teil des Codes ändern, da der Code nicht dem Autoren gehört, son­dern dem gesamten Team.

Kon­tinuier­liche Integration

Neue Code-Teile wer­den sofort in das Sys­tem inte­gri­ert – XP-Teams veröf­fentlichen alle paar Stun­den oder häu­figer einen neuen Build. Diese Prax­is stellt sich­er, dass die Auswirkun­gen der kür­zlich vorgenomme­nen Änderun­gen am Sys­tem sofort sicht­bar sind. Wenn ein neuer Code-Teil etwas kaputt macht, ist die Iden­ti­fizierung und Behe­bung des Fehlers viel einfacher.

Codierungs­stan­dards

Mit der gemein­samen Code-Eigen­tümer­schaft ist es entschei­dend, gemein­same Codierungs­stan­dards zu ver­ab­schieden, um sicherzustellen, dass der Code aussieht, als wäre er von einem einzi­gen Fach­mann geschrieben wor­den. Teams kön­nen eigene Stan­dards entwick­eln oder beste­hende annehmen.

Sys­tem­meta­pher

Die Sys­tem­meta­pher ist ein Ver­gle­ich mit etwas Ver­trautem, um eine gemein­same Vision inner­halb des Teams zu schaf­fen. Typ­is­cher­weise erfind­et die Per­son, die die Architek­tur entwick­elt und das Sys­tem als Ganzes sieht, die Metapher.

Nach­haltiges Tempo

XP-Teams arbeit­en mit max­i­maler Pro­duk­tiv­ität, während sie ein nach­haltiges Tem­po beibehal­ten. Extreme Pro­gram­ming ermutigt nicht zu Über­stun­den und fördert eine 40-Stunden-Arbeitswoche.

Test­getriebene Entwick­lung (TDD)

Ein­er der her­aus­fordernd­sten Prak­tiken in XP. Pro­gram­mier­er schreiben Tests, bevor sie den zu tes­ten­den Code schreiben. Dieser Ansatz stellt sich­er, dass jedes Funk­tion­se­le­ment voll­ständig durch Tests abgedeckt ist. Wenn Entwick­ler Code einpfle­gen, wer­den sofort Unit-Tests aus­ge­führt, und alle Tests müssen beste­hen, um sicherzustellen, dass das Team in die richtige Rich­tung arbeitet.

Pair Pro­gram­ming

Stellen Sie sich zwei Entwick­ler vor, die an einem Com­put­er an einem einzi­gen Funk­tion­se­le­ment arbeit­en. Diese Prax­is ist Pair Pro­gram­ming, die umstrit­ten­ste Prax­is in XP. Das Sprich­wort Zwei Köpfe sind bess­er als ein­er” ver­an­schaulicht ihren Kern gut. Von zwei Lösun­gen eines Prob­lems wird die beste gewählt, der Code wird sofort opti­miert und Fehler wer­den ver­mieden, bevor sie auftreten, was zu sauberem Code führt, der von bei­den Entwick­lern ver­standen wird.

Ein­fache Gestaltung

Ein­fache Gestal­tung in XP bedeutet, nur das zu tun, was jet­zt benötigt wird, ohne zu ver­suchen, zukün­ftige Funk­tion­al­itäten vorherzusagen. Ein­fache Gestal­tung und ständi­ge Refak­torisierung erzeu­gen einen syn­er­gis­tis­chen Effekt – wenn der Code ein­fach ist, lässt er sich leichter optimieren.

Refak­torisierung

Refak­torisierung ist der fort­laufende Prozess der Verbesserung des Sys­temde­signs, um neuen Anforderun­gen gerecht zu wer­den. Dazu gehört das Ent­fer­nen von Code-Dup­lika­tio­nen, das Erhöhen der Kohä­sion und das Reduzieren von Kop­plun­gen. XP erfordert ständi­ge Refak­torisierung, damit das Code-Design immer ein­fach bleibt.

Vorteile und Nachteile von XP

XP ist umstrit­ten und wird oft von denen kri­tisiert, die es nicht erfol­gre­ich imple­men­tieren kon­nten. Die Vorteile sind jedoch offen­sichtlich, wenn das Team min­destens eine XP-Prak­tik voll ausnutzt.

Zu den Vorteilen des Strebens nach XP gehören:

  • Kun­den­zufrieden­heit: Kun­den erhal­ten das Pro­dukt, das sie benöti­gen, auch wenn sie anfangs keine klare Vision haben.
  • Flex­i­bil­ität: Das Team nimmt schnell Codeän­derun­gen vor und fügt neue Funk­tion­al­itäten hinzu, dank ein­fach­er Codegestal­tung, häu­figer Pla­nung und Releases.
  • Zuver­läs­sigkeit: Der Code funk­tion­iert immer auf­grund ständi­ger Tests und kon­tinuier­lich­er Integration.
  • Wart­barkeit: Das Team kann den Code prob­lem­los warten, da er nach einem ein­heitlichen Stan­dard geschrieben und ständig refak­to­ri­ert wird.
  • Pro­duk­tiv­ität: Schnelles Entwick­lung­stem­po durch Pair Pro­gram­ming, keine Über­stun­den und Kundenbeteiligung.
  • Hochw­er­tiger Code
  • Risiko­min­derung: Entwick­lung Risiken wer­den ver­ringert, da die Ver­ant­wor­tung gle­ich­mäßig verteilt ist und das Pro­jekt nicht durch das Ver­lassen oder den Ein­tritt von Team­mit­gliedern gefährdet wird.
  • Kosten­ef­fizienz: Die Entwick­lungskosten sind niedriger, da sich das Team auf Code anstelle von Doku­men­ta­tion und Meet­ings konzentriert.

Trotz sein­er Vorteile funk­tion­iert XP nicht immer und hat mehrere Schwächen:

  • Kun­den­beteili­gung: Der Erfolg hängt von der Kun­den­beteili­gung ab, was schwierig zu erre­ichen sein kann.
  • Unvorherse­hbare Zeit­pläne: Es ist schwierig, die zeitlichen Kosten eines Pro­jek­ts vorherzusagen, da die voll­ständi­ge Liste der Anforderun­gen zu Beginn unbekan­nt ist.
  • Abhängigkeit vom Fähigkeit­sniveau: XP hängt stark vom Fähigkeit­sniveau der Pro­gram­mier­er ab und funk­tion­iert am besten mit erfahre­nen Fachleuten.
  • Wider­stand des Man­age­ments: Das Man­age­ment wider­spricht oft Pair Pro­gram­ming und hin­ter­fragt die Notwendigkeit, zwei Pro­gram­mier­er anstelle von einem zu bezahlen.
  • Kosten: Häu­fige Meet­ings mit Pro­gram­mier­ern kön­nen für Kun­den teuer sein.
  • Kul­turelle Verän­derun­gen: Die Imple­men­tierung von XP erfordert erhe­bliche kul­turelle Veränderungen.
  • Fehlende Struk­tur: Die fehlende Struk­tur und Doku­men­ta­tion bei XP macht es ungeeignet für große Projekte.
  • Nicht-funk­tionale Anforderun­gen: Funk­tionale Anforderun­gen sind schwierig als Benutzer­sto­ry in agilen Meth­o­d­en zu beschreiben.

Prinzip­i­en von XP

In seinem ersten Buch skizzierte Kent Beck die fol­gen­den Prinzip­i­en von XP: Ein­fach­heit, Kom­mu­nika­tion, Feed­back und Mut. In ein­er späteren Aus­gabe fügte er ein fün­ftes Prinzip hinzu – Respekt.

1. Ein­fach­heit

Die Entwick­lung in XP begin­nt mit der ein­fach­sten Lösung, die den aktuellen funk­tionalen Bedarf deckt. Die Team­mit­glieder berück­sichti­gen nur das, was jet­zt zu tun ist, und inte­gri­eren keine Funk­tion­al­itäten, die möglicher­weise in Zukun­ft benötigt werden.

2. Kom­mu­nika­tion

Die Kom­mu­nika­tion in XP erfol­gt live und nicht durch Doku­men­ta­tion. Das Team kom­mu­niziert aktiv miteinan­der und mit dem Kunden.

3. Feed­back

Feed­back in XP wird auf drei Arten implementiert:
  1. Sys­tem-Feed­back: Durch ständi­ge Modultests.
  2. Kun­den-Feed­back: Der Kunde ist Teil des Teams und beteiligt sich am Schreiben der Abnahmetests.
  3. Team-Feed­back: Während der Pla­nung, hin­sichtlich der Schätzun­gen der Entwicklungszeit.

4. Mut

Einige XP-Prak­tiken sind so unkon­ven­tionell, dass sie Mut und ständi­ge Selb­stkon­trolle erfordern.

5. Respekt

Respekt in XP bedeutet, das Team und sich selb­st zu respek­tieren. Team­mit­glieder soll­ten keine Änderun­gen vornehmen, die die Kom­pilierung, Mod­ul­tests oder die Arbeit der Kol­le­gen behin­dern. Jedes Mit­glied strebt nach der höch­sten Code- und Designqualität.

Imple­men­tierung von XP und der Arbeitsablauf

Kent Beck emp­fiehlt die Imple­men­tierung von XP zur Lösung von Pro­jek­t­prob­le­men. Das Team wählt das drin­gend­ste Prob­lem aus und löst es anhand ein­er der XP-Prak­tiken. Dann gehen sie zum näch­sten Prob­lem über und ver­wen­den eine andere Prax­is. Dieser Ansatz stellt sich­er, dass Prob­leme die Moti­va­tion zur Ein­führung von XP fördern und das Team nach und nach alle Meth­o­d­en­werkzeuge beherrscht.

Um XP in ein beste­hen­des Pro­jekt zu imple­men­tieren, nehmen Sie die fol­gen­den Prak­tiken schrit­tweise an:

  • Testen: Das Team erstellt Tests, bevor es neuen Code schreibt, und refak­to­ri­ert nach und nach alten Code.
  • Design: Das Team refak­to­ri­ert ständig alten Code, nor­maler­weise bevor neue Funk­tion­al­ität hinzuge­fügt wird.
  • Pla­nung: Das Team muss eng mit dem Kun­den interagieren.
  • Man­age­ment: Die Man­ag­er stellen sich­er, dass alle Team­mit­glieder die neuen Regeln befolgen.
  • Entwick­lung: Begin­nen Sie mit der Organ­i­sa­tion von Arbeit­splätzen für Pair Pro­gram­ming und ermuti­gen Sie Paare, die meiste Zeit zusam­men zu programmieren.

Beispiel eines Work­flows unter Ver­wen­dung von XP

Wer nutzt XP

Nach ein­er Umfrage von Ver­sionOne aus dem Jahr 2016 ver­wen­den nur 1% der agilen Unternehmen XP in sein­er reinen Form. Weit­ere 10% ver­wen­den eine Hybrid­form aus Scrum und XP.
Obwohl XP nicht die gängig­ste Methodik ist, wer­den ihre Prak­tiken von den meis­ten Unternehmen, die agile Meth­o­d­en anwen­den, genutzt. So führt Piv­otal Soft­ware, Inc. seinen Erfolg auf XP zurück.

Piv­otal Soft­ware, Inc.

Piv­otal Soft­ware, Inc. entwick­elt Geschäft­s­analyse basierend auf Big Data und bietet Beratungs­di­en­ste an. Ihre Pro­duk­te wer­den von Unternehmen wie Ford, Mer­cedes, BMW, GAP, Humana, großen Banken, Regierungs­be­hör­den und Ver­sicherung­sun­ternehmen genutzt.

Piv­otal unter­stützt agile Meth­o­d­en als entschei­dend für mod­erne Entwick­lun­gen. Unter den agilen Vari­anten wählten sie XP, einen Win-Win-Ansatz für Kun­den und Pro­gram­mierteams. Ihr Arbeit­stag begin­nt mit Stand-up-Meet­ings und endet um 18:00 Uhr — keine Über­stun­den. Piv­otal nutzt Pla­nungsspiele, Pair Pro­gram­ming, ständi­ge Tests, kon­tinuier­liche Inte­gra­tion und andere XP-Praktiken.

Was Sie lesen soll­ten, um XP zu verstehen

  1. Extreme Pro­gram­ming Explained,”, Plan­ning Extreme Pro­gram­ming”, Test-Dri­ven Devel­op­ment” von Kent Beck: Diese Büch­er des Erfind­ers von XP bieten ein tiefes Ver­ständ­nis der Methodik und ihrer Vorteile.
  2. Refac­tor­ing: Improv­ing the Design of Exist­ing Code” von Mar­tin Fowler: Ein Buch eines XP-Mitschöpfers, das die Prinzip­i­en und Tech­niken der Refak­torisierung erklärt.
  3. Extreme Pro­gram­ming Applied: Play­ing to Win” von Ken Auer und Roy Miller: Ein prak­tis­ch­er Leit­faden zu XP-Prak­tiken mit Beispielen.

Werkzeuge zur Imple­men­tierung von XP in Teams

Red­mine

Ein kosten­los­es, Open-Source-Auf­gaben­man­age­mentsys­tem mit Funk­tio­nen wie Unter­stützung für mehrere Pro­jek­te, flex­i­ble Auf­gabev­er­wal­tung, Gantt-Dia­gramme, Zeitver­fol­gung, Doku­men­ta­tionsver­wal­tung und Auf­gaben­er­stel­lung per E‑Mail.

Base­camp


Ein ein­fach­er, benutzer­fre­undlich­er Dienst für die kol­lab­o­ra­tive Pro­jek­tar­beit, ein­schließlich eines Auf­gaben­man­agers, Mes­sage Boards, inte­gri­ertem Chat, Dateis­pe­icherung und Kalender.

Jira


Ein leis­tungsstark­er Dienst, der für agile Pro­jek­ten­twick­ler konzip­iert wurde und einen Fehlerver­fol­ger und ein Pro­jek­t­man­age­ment-Tool mit vie­len Funk­tio­nen und Syn­chro­ni­sa­tion­s­möglichkeit­en kombiniert.

Work­sec­tion


Ein sicher­er Dienst für Pro­jek­tar­beit, der das Set­zen von Auf­gaben und die Prozesskon­trolle, die Nachver­fol­gung von Kor­re­spon­den­zen, die Anpas­sung von Fil­tern, die Zeit- und Finanzver­fol­gung sowie die Dateiver­wal­tung ermöglicht.

Faz­it

Extreme Pro­gram­ming ist eine agile Methodik, die sich auf die Her­stel­lung von hochw­er­tigem, funk­tionalem Code mit ein­er ein­fachen Architek­tur konzen­tri­ert. Ihr Zweck ist es, Unsicher­heit­en in Pro­jek­ten zu reduzieren und flex­i­bel auf sich ändernde Pro­duk­tan­forderun­gen zu reagieren. 

XP ist auss­chließlich für die Soft­wa­reen­twick­lung gedacht und lässt sich nicht auf andere Unternehmen anpassen. 
Es ist eine der her­aus­fordernd­sten Method­olo­gien zur Imple­men­tierung auf­grund sein­er dreizehn Prak­tiken. Den­noch sind seine Prak­tiken in agilen Pro­jek­ten weit ver­bre­it­et und beweisen ihre Wirksamkeit.

Die Autoren rat­en dazu, die XP-Prak­tiken schrit­tweise zu beherrschen, während sie Pro­jek­t­prob­leme lösen. Wenn Sie die Vorteile sehen, fahren Sie im sel­ben Geist fort. Es beste­ht keine Verpflich­tung, XP entwed­er voll­ständig oder gar nicht zu imple­men­tieren. Schließlich soll­ten agile Meth­o­d­en flex­i­bel in der Anwen­dung sein – angepasste Lösun­gen an die Bedürfnisse des jew­eili­gen Projektteams.

esc
Teilen auf
или
PM-Schule
Warum der Zeitverfolger von Worksection die beste Wahl zur Kontrolle von Projektressourcen ist Stunden werden aus dem Gedächtnis und oft mit Verzögerungen erfasst. Zeitenblätter sind nicht mit Aufgaben...
2 Mai 2025   •   8 min read
PM-Schule
Verstreute Aufgaben in Chats und Boards erschweren die Kontrolle der Projektausführung. Das Management muss den Großteil seiner Zeit damit verbringen, das Team zu synchronisieren, um den aktuellen Stand...
1 Mai 2025   •   8 min read
PM-Schule
Ein Mangel an Verständnis für Projektzeitpläne, ständige Verzögerungen, Schwierigkeiten bei der Koordination von Prozessen mit Auftragnehmern. Das Budget wächst, und das Ergebnis wird ständig verschoben...
30 April 2025   •   8 min read
Jetzt loslegen
Bitte geben Sie Ihre echte E-Mail-Adresse ein 🙂