Extreme Programming (XP) liefert zwar Resultate, aber passt es auch zu Ihnen?

Alicia Raeburn – FotoAlicia Raeburn16. Mai 20229 Minuten Lesezeit
facebooktwitterlinkedin
What is extreme programming (XP) article banner image
Asana testen

Summary

Extreme programming (XP) is an Agile project management methodology that targets speed and simplicity with short development cycles. XP uses five guiding values, five rules, and 12 practices for programming. The structure is rigid, but the result of these highly focused sprints and continuous integrations can result in a much higher quality product.

Wenn Sie bei dem Begriff „Extreme Programmierung“ an die X-Games oder etwa Extremsportarten denken, liegen Sie gar nicht so falsch. Extreme Programming (XP) ist in der Tat eine ziemlich extrem anmutende Art und Weise des Programmierens. Wie auch bei anderen agilen Softwareentwicklungsmethoden wird bei XP eine anpassungsfähige, testbasierte Vorgehensweise für die Softwareentwicklung verwendet. Doch im Gegensatz zu anderen Methoden gibt es bei der extremen Programmierung sehr strikte Regeln und Leitwerte, die bestimmen, wie diese Arbeit ausgeführt werden soll. 

Was ist Extreme Programming (XP)?

Extreme Programming ist eine agile Projektmanagement-Methode, die auf Schnelligkeit und Einfachheit mit kurzen Entwicklungszyklen und weniger Dokumentation abzielt. Die Prozessstruktur wird durch 5 Leitwerte, 5 Regeln und 12 XP-Methoden bestimmt (die wir in diesem Artikel weiter aufschlüsseln werden). 

Wie andere agile Methoden ist XP eine Softwareentwicklungsmethode, die in einzelne Sprints aufgeteilt ist. Agile Frameworks folgen einem schrittweisen Prozess – Sie vervollständigen und überprüfen das Framework nach jedem Sprint, optimieren es für maximale Effizienz und passen es den sich ändernden Anforderungen an. Ähnlich wie bei anderen agilen Methoden ermöglicht XP den Entwicklern, auf Kundenwünsche zu reagieren, sich anzupassen und Änderungen in Echtzeit vorzunehmen. Doch XP ist weitaus strenger und nutzt regelmäßige Code-Reviews und Unit-Tests, um Änderungen in kürzester Zeit durchzuführen. Zudem ist XP sehr kreativ und kollaborativ. Die Zusammenarbeit im Team hat in allen Entwicklungsphasen Priorität.

Extreme Programming vs. Scrum

Scrum ist eine weitere verbreitete Form der agilen Methodik, die von einem Scrum Master geleitet wird. Ähnlich wie bei XP werden bei Scrum Sprints auf der Grundlage von User Stories durchgeführt, um neue Produkt- oder Softwarefunktionen zu entwickeln. Anders als Scrum ist XP jedoch viel rigider, mit strengen Regeln und Richtlinien, die den konstanten Austausch zwischen den Entwicklern und dem Kunden verlangen. Ferner können Sie Scrum für jeglichen Vorgang nutzen, der Iteration und Kundeninput erfordert, während Sie XP ausschließlich im Rahmen der Programmierung einsetzen würden.

Woher stammt die Idee des Extreme Programming?

Die Ursprünge von XP gehen auf die späten 1990er Jahre zurück, in denen es von Kent Beck zur Verwaltung der Entwicklung eines Lohnbuchhaltungssystems für Chrysler, dem so genannten C3-Projekt, entwickelt wurde. Das Ziel von XP war (und ist immer noch), innerhalb von Entwicklungsprojekten jeglichen Widerstand gegen Codeänderungen zu beseitigen. Bei traditionelleren Softwareentwicklungsmethoden wird der Code meist nicht mehr verändert, sobald er geschrieben ist (außer zur Fehlersuche). Mit XP wird der Code derart sorgfältig geprüft, dass die Entwickler nach einer einzigen Iteration beschließen können, ihn komplett neu zu schreiben. 

Wann empfiehlt sich der Einsatz von XP?

Da sich Extreme Programming auf die Softwareentwicklung konzentriert, kommt es in der Regel nur bei Entwicklerteams zum Einsatz. Selbst in Softwareteams funktioniert es nur unter bestimmten Bedingungen. Um den größten Nutzen aus Extreme Programming zu ziehen, sollten Sie diese Methode nur nutzen, wenn die folgenden Kriterien erfüllt sind: 

  • Sie leiten ein kleineres Team. Aufgrund seiner stark kollaborativen Natur funktioniert XP am besten in kleineren Teams mit weniger als 10 Personen. 

  • Sie stehen in ständigem Kontakt mit Ihren Kunden. XP bezieht die Kundenanforderungen in den gesamten Entwicklungsprozess ein und stützt sich sogar bei Tests und Genehmigungen auf diese.

  • Sie arbeiten mit einem flexiblen Team, das Veränderungen (ohne Vorbehalte) akzeptieren kann. Es liegt in der Natur der Sache, dass bei Extreme Programming oft das gesamte Team gezwungen ist, seine harte Arbeit über Bord zu werfen. Zudem gibt es Regeln, die es anderen Teammitgliedern erlauben, jederzeit Änderungen vorzunehmen, was nicht optimal ist, wenn Ihre Teammitglieder einen derartigen Eingriff in ihre Arbeit persönlich nehmen könnten.

  • Sie kennen sich mit den technischen Aspekten der Programmierung bestens aus. XP ist nichts für Anfänger. Sie müssen in der Lage sein, schnell zu arbeiten und Änderungen vorzunehmen.

Der Lebenszyklus von XP

Der XP-Lebenszyklus fordert eine kontinuierliche Integration, bei der die Teammitglieder quasi permanent, d. h. stündlich oder täglich, daran arbeiten. Der gesamte Lebenszyklus gliedert sich jedoch wie folgt:

  • Unvollendete Arbeiten aus User Stories ermitteln 

  • Die wichtigsten Anforderungen zur Priorität machen 

  • Mit der iterativen Planung beginnen  

  • Sorgfältig und ehrlich planen  

  • In ständiger Kommunikation mit allen Stakeholdern bleiben und das Team unterstützen  

  • Das Ergebnis bereitstellen  

  • Feedback erhalten 

  • Zur iterativen Planungsphase zurückkehren und sie nach Bedarf wiederholen

5 Leitwerte von Extreme Programming

Extreme Programming ist wertorientiert. Anstatt externe Motivationsfaktoren zu nutzen, ermöglicht XP Ihrem Team eine weniger komplizierte Arbeitsweise (mit dem Schwerpunkt auf Einfachheit und Zusammenarbeit statt auf komplexen Designs), die auf diesen fünf Leitwerten basiert.

1. Einfachheit

Noch ehe Sie mit einer XP-Arbeit beginnen, sollten Sie sich fragen: Was wäre die einfachste Lösung, die auch funktioniert? Der Aspekt des „Funktionierens“ ist ein wichtiges Unterscheidungsmerkmal – denn das Einfachste ist nicht immer praktisch oder effektiv. Bei XP liegt der Schwerpunkt darauf, die wichtigste Arbeit zuerst zu erledigen. Das bedeutet, dass Sie nach einem möglichst unkomplizierten Projekt suchen, von dem Sie wissen, dass Sie es bewältigen können.

2. Kommunikation

XP ist auf schnelle Reaktionsfähigkeit und effektive Kommunikation angewiesen. Damit das funktioniert, muss das Team offen und ehrlich zueinander sein. Wenn Probleme auftauchen, wird von Ihnen erwartet, dass Sie diese auch ansprechen. Denn die anderen Teammitglieder haben oft schon eine Lösung parat. Und wenn nicht, werden Sie als Gruppe schneller eine Lösung finden, als Sie es alleine könnten.

Lesenswert: So verbessern Sie die Kommunikation in Ihrem Team: 6 Strategien + Tipps

3. Feedback

Wie andere agile Methoden bezieht XP User Stories und Feedback direkt in den Prozess mit ein. Der Schwerpunkt von XP liegt auf der schnellen und einfachen Umsetzung der Arbeit und der anschließenden Weitergabe der Ergebnisse, um nahezu sofortiges Feedback zu erhalten. Daher stehen die Entwickler während des gesamten Prozesses in fast ständigem Kontakt mit den Kunden. Bei XP werden regelmäßig neue Versionen herausgegeben, um frühzeitig und möglichst viele neue Erkenntnisse zu gewinnen. Wenn Sie Feedback erhalten, passen Sie den Prozess an (und nicht das Projekt), um es zu berücksichtigen. Wenn das Feedback etwa unnötige Zeitverzögerungen („lag time“) aufdeckt, passen Sie Ihren Prozess so an, dass ein Entwicklerpaar die Verzögerungszeit verbessert, anstatt das Projekt als Ganzes anzupassen.

Lesenswert: Fällt es Ihnen schwer, Feedback zu geben? Dann sind diese 20 Tipps genau das Richtige für Sie!

4. Mut

XP erfordert eine gewisse Portion Mut. Von Ihnen wird immer erwartet, dass Sie ehrlich über Ihre Fortschritte berichten, was mitunter etwas heikel werden kann. Wenn Sie bei XP eine Frist versäumen, wird Ihr Teamleiter wahrscheinlich nicht über die Gründe sprechen wollen. Stattdessen würden Sie ihm mitteilen, dass Sie die Frist verpasst haben, sich selbst dafür verantwortlich machen und wieder an die Arbeit gehen. 

Wenn Sie ein Team leiten, ist es zu Beginn des XP-Prozesses Ihre Aufgabe, die Erwartungen an den Erfolg zu formulieren und zu definieren, was getan werden soll. Dies kann jedoch auch etwas beängstigend sein, da die Dinge nicht immer wie geplant verlaufen werden. Doch wenn sich die Dinge während des XP-Prozesses ändern, wird von Ihrem Team erwartet, dass es sich anpasst und sich mit ihm verändert. 

5. Respekt

In Anbetracht der Tatsache, dass Kommunikation und Ehrlichkeit bei XP einen so hohen Stellenwert haben, ist es nur folgerichtig, dass auch Respekt eine wichtige Rolle spielt. Damit Teams effektiv kommunizieren und zusammenarbeiten können, müssen sie in der Lage sein, unterschiedlicher Meinung zu sein. Dabei gibt es jedoch Möglichkeiten, dies auf wohlwollende Weise zu tun. Respekt ist eine wichtige Grundlage, die zu Wohlwollen und Vertrauen führt – selbst bei einer großen Portion Ehrlichkeit. Bei Extreme Programming sind das die Erwartungen: 

  • Gegenseitiger Respekt zwischen den Kunden und dem Entwicklungsteam 

  • Gegenseitiger Respekt zwischen den Teammitgliedern 

  • Die Anerkennung, dass jeder im Team etwas Wertvolles zum Projekt beiträgt

5 Regeln der XP-Methode

Die Leitwerte des Extreme Programming sind die eher philosophischen Aspekte. Die Regeln hingegen sind die praktische Umsetzung, wie die Arbeit zu erledigen ist. Sie brauchen beides, um ein effektives XP-Team zu leiten. 

1. Planung

Während der Planungsphase von XP entscheidet sich, ob das Projekt durchführbar und für XP geeignet ist. Zu diesem Zweck prüfen Sie folgende Punkte:

  • Die User Stories werden daraufhin überprüft, ob sie dem Aspekt der Einfachheit gerecht werden, und es wird sichergestellt, dass auch der Kunde für den Prozess verfügbar ist. Wenn die User Story komplexer ist oder von einem anonymen Kunden verfasst wurde, eignet sie sich wahrscheinlich nicht für XP.

  • Der wirtschaftliche Wert und die Priorität des Projekts, um sicherzustellen, dass es mit dem Grundsatz „das Wichtigste zuerst“ in Einklang steht. 

  • In welchem Stadium der Entwicklung Sie sich befinden. XP eignet sich am besten für die frühe Entwicklungsphase und ist für spätere Iterationen nicht mehr so gut geeignet.

Sobald Sie sich davon überzeugt haben, dass das Projekt für XP geeignet ist, erstellen Sie einen Zeitplan für die Veröffentlichung. Dabei sollten Sie jedoch bedenken, dass Sie möglichst frühzeitig und häufig Veröffentlichungen vornehmen sollten, um Feedback zu erhalten. Hierzu sollten Sie Folgendes tun:

  • Unterteilen Sie das Projekt in Iterationen und erstellen Sie einen Plan für jede Iteration. 

  • Setzen Sie realistische Fristen und ein nachhaltiges Arbeitstempo. 

  • Geben Sie Updates weiter, sobald sie stattfinden. Das gibt Ihrem Team die Möglichkeit, transparent zu arbeiten. 

  • Geben Sie Echtzeit-Updates weiter, die dem Team helfen, Änderungen schneller zu erkennen, anzupassen und vorzunehmen. 

  • Nutzen Sie ein Projektmanagement-Tool, um ein Kanban-Board oder eine Zeitleiste zu erstellen und Ihren Fortschritt in Echtzeit nachzuverfolgen. 

2. Verwaltung

Eines der Schlüsselelemente von XP ist der Arbeitsplatz. XP-Puristen empfehlen einen offenen Arbeitsbereich, in dem alle Teammitglieder in einem einzigen großen Raum arbeiten. Da XP so kollaborativ ist, ist es von Vorteil, wenn Sie einen Raum haben, in dem Sie physisch zusammenkommen können. Heutzutage ist dies jedoch nicht immer praktikabel. Wenn Sie in einem dezentralen Team arbeiten, empfiehlt sich eine Plattform, die asynchrones Arbeiten für die ortsunabhängige Zusammenarbeit ermöglicht. Auf diese Weise können alle Teammitglieder weiterhin gemeinsam an dem Projekt arbeiten, auch wenn sie nicht physisch beisammen sind.

Wie bei anderen agilen Methoden sind tägliche Standup-Meetings sinnvoll, um sich abzustimmen und eine konstante, offene Kommunikation zu fördern. Dabei empfiehlt sich sowohl ein wöchentlicher als auch ein vierteljährlicher Zyklus. Während des vierteljährlichen Zyklus überprüfen Sie und Ihr Team die User Stories, die Ihre Arbeit leiten werden. Sie prüfen auch Ihren XP-Prozess und suchen nach Schwachstellen oder Möglichkeiten für Verbesserungen. Dann folgen die wöchentlichen Zyklen, die jeweils mit einem Kundengespräch beginnen. Der Kunde wählt die User Story aus, an der die Programmierer in dieser Woche arbeiten sollen.

Als Manager oder Teamleiter liegt Ihr Schwerpunkt auf der Beibehaltung des Arbeitsfortschritts, der Messung des Tempos, dem Austausch von Teammitgliedern zur Behebung von Fehlern oder Problemen, wenn diese auftreten, oder der Anpassung des XP-Prozesses an das aktuelle Projekt und die Iteration. Bedenken Sie, dass das Ziel von XP darin besteht, flexibel zu sein und zu handeln, so dass Sie sich bei Ihrer Arbeit in hohem Maße auf die aktuelle Arbeit des Teams konzentrieren und auf alle Änderungen reagieren können.

3. Design

Wenn Sie gerade erst mit Extreme Programming beginnen, sollten Sie mit einem möglichst einfachen Entwurf starten. Dabei ist zu bedenken, dass spätere Iterationen die Komplexität erhöhen werden. Fügen Sie in dieser Phase keine frühen Funktionsweisen hinzu, um das Ganze so einfach wie möglich zu halten.

XP-Teams nutzen häufig CRC-Karten (Class-Responsibility-Collaboration), um zu zeigen, wie die einzelnen Objekte im Entwurf zusammenwirken. Durch Ausfüllen der einzelnen Felder auf der Karte erhalten Sie eine visuelle Interaktion aller Funktionen, die miteinander in Beziehung stehen und zusammenwirken. CRC-Karten umfassen: 

  • Class, also die Klasse (Sammlung ähnlicher Objekte)

  • Responsibilities, also Verantwortlichkeiten (bezogen auf die Klasse)

  • Collaborators, also Beteiligte (Klasse, die mit dieser interagiert)

CRCs sind hilfreich, um den gesamten Prozess zu simulieren und potenzielle Probleme aufzudecken. Unabhängig von der Art der Planung sollten Sie ein System nutzen, das potenzielle Engpässe reduziert. Achten Sie deshalb darauf, dass Sie proaktiv nach Risiken suchen. Sobald sich ein mögliches Risiko abzeichnet, beauftragen Sie ein bis zwei Teammitglieder mit der Suche nach einer Lösung für den Fall, dass das Risiko tatsächlich eintreten sollte.

Lesenswert: Der Risikomanagement-Prozess für Projekte in 6 Schritten

4. Entwicklung

Ein besonderer Aspekt von XP ist, dass Sie während des gesamten Entwicklungsprozesses in ständigem Kontakt mit dem Kunden bleiben. Diese Zusammenarbeit ermöglicht es Ihnen, in jeder Iteration zu testen und Feedback einzuarbeiten, anstatt bis zum Ende eines Sprints warten zu müssen. Die Regeln für die Programmierung sind bei XP allerdings ziemlich streng. Einige dieser Regeln sind:

  • Der gesamte Code muss den Standards entsprechen.

  • Mit Hilfe eines Unit-Tests werden die Anforderungen festgelegt und alle Aspekte des Projekts entwickelt.

  • Die Programmierung erfolgt paarweise – zwei Entwickler arbeiten gleichzeitig am selben Computer. Das bedeutet keinen zusätzlichen Zeitaufwand, sondern die doppelte Aufmerksamkeit, um Ergebnisse von höchster Qualität zu erzielen. 

  • Kontinuierliche Integrationen werden genutzt, um neuen Code hinzuzufügen und ihn sofort zu testen.

  • Nur ein Paar kann den Code zu einem bestimmten Zeitpunkt aktualisieren, um Fehler zu vermeiden.

  • Es besteht ein kollektives Mitspracherecht – jedes Teammitglied kann Ihren Code jederzeit ändern.

5. Tests

Während des gesamten XP-Prozesses sollten Sie Tests durchführen. Der gesamte Code muss die Unit-Tests bestehen, bevor er veröffentlicht wird. Wenn Sie während dieser Tests Fehler entdecken, erstellen Sie neue, zusätzliche Tests, um sie zu beheben. Später werden Sie dieselbe User Story, an der Sie gearbeitet haben, in einen Akzeptanztest einbauen. Während dieses Tests überprüft der Kunde die Ergebnisse, um zu sehen, wie gut Sie die User Story im Produkt umgesetzt haben.

Was sind die 12 Methoden von Extreme Programming?

Um den Prozess weiter zu verfeinern, nutzt XP zudem ein Set von 12 Methoden während des gesamten Prozesses. Sie basieren auf dem Manifest für agiles Projektmanagement, sind aber an die Bedürfnisse von XP angepasst:

  1. Planungsspiel: Die XP-Planung dient als Leitfaden für die Arbeit. Als Ergebnis der Planung sollte feststehen, was man bis wann zu erreichen hofft und was man als Nächstes tun wird.

  2. Kunden-Tests: Wenn Sie eine neue Funktion fertigstellen, entwickelt der Kunde einen Akzeptanztest, um festzustellen, wie nah sie an der ursprünglichen User Story ist.

  3. Kleine Releases: XP setzt kleine, routinemäßige Releases ein, um während des gesamten Prozesses Erkenntnisse zu gewinnen. Oft gehen die Releases direkt an die Kunden, sie können aber auch intern erfolgen.

  4. Einfaches Design: Das XP-System ist auf Einfachheit ausgelegt. Sie stellen nur das Nötigste bereit und nicht mehr. 

  5. Paarweise Programmierung: Die gesamte Programmierung erfolgt durch zwei Entwickler, die Seite an Seite sitzen. Bei Extreme Programming findet keine Einzelarbeit statt.

  6. Testgesteuerte Entwicklung (Test-driven development – TDD): Da XP auf Rückmeldungen angewiesen ist, sind umfangreiche Tests erforderlich. In kurzen Zyklen geben die Programmierer automatisierte Tests frei und reagieren dann sofort.

  7. Refactoring: Hier achten Sie auf die Feinheiten der Codebase, entfernen Duplikate und sorgen dafür, dass der Code kohärent ist. Dies führt zu einem guten, einfachen Design.

  8. Kollektive Verantwortung: Jedes Programmiererpaar kann den Code jederzeit ändern, unabhängig davon, ob es ihn entwickelt hat oder nicht. XP entwickelt den Code im Team, und die Arbeit jedes Einzelnen unterliegt den höheren kollektiven Standards.

  9. Kontinuierliche Integration: XP-Teams warten nicht auf abgeschlossene Iterationen, sie integrieren kontinuierlich. Oft integriert ein XP-Team mehrmals am Tag.

  10. Nachhaltiges Tempo: Die Intensität der XP-Arbeit verlangt, dass Sie ein nachhaltiges Tempo festlegen. Die Teams entscheiden, wie viel Arbeit sie auf diese Weise pro Tag und pro Woche leisten können, und legen auf dieser Grundlage Fristen fest.

  11. Metapher: Die Metapher ist, im wahrsten Sinne des Wortes, eine Metapher. Sie wird als Team beschlossen und beschreibt sprachlich, wie das Team funktionieren soll. Zum Beispiel: „Wir sind wie Ameisen, die als Kollektiv arbeiten, um den Ameisenhaufen zu errichten.“ 

  12. Code-Standard: XP-Teams folgen einem Standard. Genauso wie Autoren die Sprache einer Marke übernehmen müssen, um so zu klingen, als würde immer dieselbe Person schreiben, programmieren XP-Entwickler auf dieselbe, einheitliche Weise, so dass es von außen wie ein einziger Entwickler wirkt.

Intensiv, aber effektiv

Inzwischen haben Sie wahrscheinlich verstanden, dass Extreme Programming etwas, nun ja, extrem ist. Der Prozess ist strikt und äußerst strukturiert, doch die Ergebnisse könnten es wert sein. Der einzigartige Entwicklungsprozess von XP, der Kundenfeedback und intensive, kollaborative Programmierung beinhaltet, führt zu hochwertiger Software. 

Optimieren Sie Ihre XP-Planung und -Verwaltung mit einem Work-Management-Tool, das sich genau wie Ihre Arbeit in Echtzeit aktualisiert und anpasst.

Asana kostenlos testen

Weitere Ressourcen

Artikel

Kaizen: Der Leitfaden für kontinuierliche Geschäftsverbesserung