Gehen Sie mit neuer Software früh produktiv und holen Sie Kosten schnell wieder herein.

Zwei Entwickler diskutieren leidenschaftlich am Rechner.

In dieser Praktik für Softwareentwicklung liegt extremes Potential für Verbesserung

Was ist Extreme Programming (XP)?

Extreme Programming (XP) ist eine agile Entwicklungsmethodik, die agile Prinzipien konsequent umsetzt und als Wegbereiter für andere agile Ansätze wie Scrum gilt. Entwickelt von Kent Beck im Jahr 2000, kombiniert XP Werte, Prinzipien und konkrete Techniken, um Softwareprojekte flexibel, effizient und kundenorientiert zu gestalten. Im Gegensatz zu Scrum sind agile Entwicklungspraktiken fest im Prozess verankert.

 

 

Die Grundlagen von XP

Was sind die Werte von XP?

XP basiert auf fünf zentralen Werten. Sie sind bewusst allgemein formuliert. Getroffene Entscheidungen, Verhalten und Ziele können mit ihnen überprüft werden. 

  • Kommunikation: Direkte, offene und ehrliche Interaktion im Team und mit Kunden.
  • Feedback: Kontinuierliche Rückmeldung von Kollegen, Kunden und durch automatisierte Tests.
  • Einfachheit: Konzentration auf das Wesentliche in Planung, Code und Organisation.
  • Mut: Entscheidungen treffen, auch wenn sie unbequem sind.
  • Respekt: Wertschätzung aller Projektbeteiligten unabhängig von ihrer Rolle.

 

Was sind die Prinzipien von XP?

Werte bieten Orientierung für die daraus abgeleiteten Prinzipien. So leitet sich das Prinzip Menschlichkeit von den Werten Kommunikation und Respekt ab. Wenn wir vermeintlich nach einem Prinzip handeln, dabei aber einen Wert verletzen, ist dies ein starkes Indiz, dass wir etwas falsch verstanden haben. Wenn also das Prinzip Menschlichkeit so gelebt wird, dass wir unangenehme Themen nicht mehr ansprechen, aus Furcht jemanden zu verletzen, so haben wir die Werte Feedback und Mut verletzt. Wir sollten also lernen, wie man Feedback gibt und Konflikte bearbeitet, ohne zu verletzen. 

  • Menschlichkeit: Menschen stehen im Mittelpunkt des Projekts. Ihre Bedürfnisse, Fähigkeiten und Interaktionen sind wichtiger als starre Prozesse.
  • Vielfalt: Unterschiedliche Perspektiven und Kompetenzen im Team werden als Bereicherung angesehen.
  • Wirtschaftlichkeit: Entscheidungen werden auf Basis von Kosten-Nutzen-Abwägungen getroffen, um Ressourcen effizient einzusetzen.
  • Qualität: Frühzeitige Investitionen in Qualität erhöhen Produktivität und Wirtschaftlichkeit.
  • Akzeptierte Verantwortung: Teammitglieder übernehmen Aufgaben freiwillig und tragen die Verantwortung dafür.
  • Gegenseitiger Nutzen: Entscheidungen sollen für alle Beteiligten vorteilhaft sein, um langfristig eine gute Zusammenarbeit zu fördern.
  • Gelegenheiten: Probleme werden als Chance gesehen, um Verbesserungen oder Innovationen umzusetzen.
  • Verbesserung: Stetige Suche nach Verbesserungsmöglichkeiten für Prozesse, Code und Zusammenarbeit.
  • Reflexion: Regelmäßige Retrospektiven und Überprüfungen helfen, den Kurs anzupassen und Fortschritte zu machen.
  • Fehler: Fehler werden als Lernchance betrachtet. Lieber eine falsche Entscheidung treffen als gar keine.
  • Kleine Schritte: Veränderungen und Entwicklungen erfolgen in kleinen, bewertbaren Schritten, um Risiken zu minimieren.
  • Selbstähnlichkeit: Muster, die auf einer Ebene funktionieren, können auch auf anderen Ebenen angewendet werden.
  • Redundanz: Prozesse und Wissen im Team werden so organisiert, dass Ausfälle oder Fehler keine kritischen Probleme verursachen.
  • Fluss: Kontinuierliche Arbeit ohne Verzögerungen sorgt für produktives Arbeiten und vermeidet Stillstand.
  • Probleme als Chancen sehen: Jede Herausforderung wird als Möglichkeit zur Innovation und Verbesserung genutzt.
  • Optimierung für langfristige Vorteile: Entscheidungen werden mit Blick auf nachhaltige Vorteile getroffen.
  • Win-Win-Lösungen: Lösungen sollen für alle Beteiligten Vorteile bieten und keine Partei benachteiligen.

 

Was sind die Techniken von XP?

So wie sich die Prinzipien an den Werten orientieren, orientieren sich die Techniken an den Prinzipien. Techniken sind operativ anwendbar und beschreiben Tätigkeiten der täglichen Arbeit. XP unterscheidet zwischen Primär- und Folgetechniken. Während jedes Team mit den Primärtechniken anfangen kann, ist es für die Folgetechniken oft nötig, etwas Erfahrung gesammelt zu haben.

 

 

Welche Primärtechniken gibt es bei XP?

Pair Programming

Zwei Entwickler arbeiten gemeinsam an einem Computer an einer Aufgabe. Einer ist der "Pilot" (schreibt Code), der andere der "Copilot" (überwacht den Code und denkt strategisch mit). Diese Rollen wechseln regelmäßig. 

Vorteile:

  • Fehler werden schneller erkannt.
  • Know-how verbreitet sich im Team.
  • Zwei Perspektiven führen oft zu besseren Lösungen.
Continuous Integration

Code wird regelmäßig in ein zentrales Repository integriert. Nach jeder Integration werden automatisierte Tests durchgeführt, um sicherzustellen, dass das System stabil bleibt.

Vorteile:

  • Probleme werden sofort sichtbar.
  • Das gesamte Team arbeitet auf der Basis eines stabilen Codes.
Whole Team

Das Team umfasst alle notwendigen Qualifikationen, einschließlich Entwicklern, Testern, Designern und Kundenvertretern.

Vorteile:

  • Weniger Abhängigkeiten von externen Ressourcen.
  • Expertenwissen ist im Team verfügbar.
Informative Workspace

Der Arbeitsraum zeigt alle wichtigen Informationen über den Projektfortschritt. Beispielsweise hängen Story-Karten an Wänden oder Testergebnisse werden auf Bildschirmen angezeigt.

Vorteile:

  • Jeder sieht den Status des Projekts.
  • Probleme werden schnell erkannt.
Stories

Anforderungen werden als kurze Geschichten aus Nutzersicht beschrieben. Diese Stories sind die Grundlage für die Planung und Entwicklung.

Vorteile:

  • Fokus auf echte Benutzerbedürfnisse.
  • Vermeidung unnötiger Komplexität.
Continuous Feedback

Feedback wird auf verschiedenen Ebenen eingeholt: durch Kunden, Teamkollegen, automatisierte Tests und Iterationsreviews.

Vorteile:

  • Probleme werden früh erkannt und behoben.
  • Alle Beteiligten verstehen den aktuellen Stand des Projekts.
Testgetriebene Entwicklung

Bevor der eigentliche Code geschrieben wird, erstellt der Entwickler automatisierte Tests. Diese Tests beschreiben die Anforderungen an die Funktionalität. Der Produktionscode wird so entwickelt, dass er die Tests erfüllt.

Vorteile:

  • Anforderungen werden früh präzisiert.
  • Änderungen am Code brechen seltener bestehende Funktionen.
Wöchentliche Iterationen

Die Entwicklungsarbeit wird in Wochenzyklen organisiert. Jede Woche beginnt mit einer Planungssitzung und endet mit einem Review.

Vorteile:

  • Klare Ziele für kurze Zeiträume.
  • Anforderungen können zwischen den Iterationen angepasst werden.
Incremental Design

Das Systemdesign entwickelt sich schrittweise mit den Anforderungen. Der Code bleibt durch ständiges Refactoring (Verbesserung ohne Änderung der Funktionalität) flexibel und wartbar.

Vorteile:

  • Anpassungen an neue Anforderungen sind einfach.
  • Ressourcen werden nur für aktuelle Bedürfnisse eingesetzt.
Sit Together

Das Team arbeitet in einem gemeinsamen Raum. Diese räumliche Nähe ermöglicht spontane Absprachen und fördert den Teamzusammenhalt.

Vorteile:

  • Fragen können direkt geklärt werden.
  • Gemeinsame Arbeit stärkt das Vertrauen.
Energized Work

Das Team arbeitet in einem konstant produktiven Zustand, ohne Überstunden. Erschöpfung wird vermieden, da sie die Produktivität langfristig senkt.

Vorteile:

  • Langfristig hohe Effizienz.
  • Zufriedene Teammitglieder liefern bessere Arbeit.

Welche Folgetechniken gibt es bei XP?

Diese Techniken bauen auf den Primärtechniken auf und erweitern XP. Folgetechniken empfehlen sich für Teams, die schon etwas Erfahrung mit XP gesammelt haben. Zu früh eingesetzt, können sie sogar Schaden anrichten.
Um zum Beispiel in der Lage zu sein, Daily Deployment einzusetzen, muss unser Code durch testgetriebene Entwicklung qualitätsgesichert und durch Continuous Integration aktuell und regelmäßig gebaut werden.
Sollte dies nicht der Fall sein, ist das Risiko, fehlerhafte Software zu liefern, groß. 

 

Real Customer Involvement

Ein Kunde oder Kundenvertreter arbeitet direkt mit dem Team zusammen. Er priorisiert Anforderungen, klärt Fragen und gibt Feedback.

Vorteile:

  • Anforderungen orientieren sich an echten Bedürfnissen.
  • Änderungen können sofort berücksichtigt werden.
Daily Deployment

Das System wird täglich ausgeliefert. Dadurch können auch kleinere Änderungen sofort verfügbar gemacht werden.

Vorteile:

  • Fehlerbehebungen und Verbesserungen sind schnell verfügbar.
  • Kunden sehen kontinuierlichen Fortschritt.
Root-Cause Analysis

Probleme werden analysiert, indem fünfmal „Warum?“ gefragt wird, um die eigentliche Ursache zu finden.

Vorteile:

  • Statt Symptome zu bekämpfen, wird die Ursache behoben.
  • Gelerntes wird für zukünftige Projekte genutzt.
Single Code Base

Das gesamte Team arbeitet in einer zentralen Codebasis ohne Branches.

Vorteile:

  • Es gibt nur eine Version des Systems.
  • Weniger Komplexität in der Versionskontrolle.
Real Customer Involvement

Ein Kunde oder Kundenvertreter arbeitet direkt mit dem Team zusammen. Er priorisiert Anforderungen, klärt Fragen und gibt Feedback.

Vorteile:

  • Anforderungen orientieren sich an echten Bedürfnissen.
  • Änderungen können sofort berücksichtigt werden.
Shrinking Teams

Teammitglieder, die nicht mehr benötigt werden, wechseln in andere Projekte. Ziel ist es, sich als Team so effizient zu organisieren, dass weniger Personen benötigt werden.

Vorteile:

  • Fokus auf die notwendige Teamgröße.
  • Mitarbeiter sehen ihre Fortschritte.
Slack

Teammitglieder erhalten Freiraum für projektfremde Aktivitäten, um Kreativität und Innovation zu fördern.

Vorteile:

  • Inspiration für Verbesserungen im Projekt.
  • Mitarbeiter können sich weiterentwickeln.
Shared Code

Der Code gehört dem gesamten Team, und jeder darf Änderungen vornehmen.

Vorteile:

  • Alle fühlen sich für den Code verantwortlich.
  • Änderungen können schnell vorgenommen werden.

Fazit

Stärken und Grenzen von XP

Stärken und Grenzen von XP

XP eignet sich besonders für kleine Teams mit enger Zusammenarbeit, schnellen Anpassungsanforderungen und dem Fokus auf produktiven Austausch. Allerdings kann die Einführung anspruchsvoll sein, insbesondere bei größeren Projekten oder hoher Mitarbeiterfluktuation.

In Bereichen mit strengen Dokumentationsanforderungen, wie der Medizin- oder Luftfahrtbranche, sind Anpassungen erforderlich.

Potenzial für jedes Projekt

Auch wenn XP als Ganzes nicht passt, können einzelne Techniken wie automatisierte Tests, Pair Programming oder Refactoring in anderen agilen oder sogar traditionellen Ansätzen wertvolle Ergänzungen sein.

XP bietet nicht nur eine Methodik, sondern auch eine Denkweise, die Teams ermutigt, Prozesse kontinuierlich zu reflektieren und anzupassen – immer mit dem Ziel, hochwertige Software effizient und kundenorientiert zu entwickeln.

Hier ist unser Kollege Andreas zu sehen.

Über den Autor

Andreas Havenstein

Andreas Havenstein ist Trainer, Architekt und Softwareentwickler bei der it-agile GmbH in Hamburg. Seit vielen Jahren begeistert er sich für agile Methoden, testgetriebene Entwicklung und modulare, flexible Architekturen. Er hat eine Cloud-Migration begleitet und beobachtet gespannt, wie sich die Welt in Richtung Serverless bewegt.

Veröffentlichungen (u. a.):

 

E-Mail:LinkedIn:

Mehr von Andreas Havenstein

Unser it-agile Lagerraum

Möchten Sie mehr erfahren?

Tauschen Sie sich mit unseren Expert:innen aus und lassen sich zu Schulungen, Coaching oder Wissensthemen beraten.

 

+ 49 40 4135 848-0    info@it-agile.de    Online Termin buchen

Agile Coaching von it-agile

Kennen Sie eigentlich schon it-agile?

Die Expert:innen zu agiler Arbeit und agilen Methoden

Kund:innen wollen begeistert werden. Mit innovativen Produkten, durch Schnelligkeit, Transparenz und auch Verlässlichkeit. Unsere erfahrenen Agile Coaches sorgen gemeinsam mit Ihren Teams und Führungskräften dafür, auch in komplexer Umgebung Ihre Ziele nicht aus dem Auge zu verlieren und implementieren die richtigen agilen Methoden für nachhaltige Veränderung.

  • Wir integrieren Pragmatismus mit Idealismus
  • Wir befähigen Sie nachhaltig ohne Abhängigkeit von uns
  • Wir erzeugen Kundenfokus mit wirkungsvoller Agilität
agile review Magazin

agile review

Unser Kundenmagazin 

In unserem Magazin stellen wir Artikel rund um agiles Arbeiten für Sie zusammen. Das Spektrum reicht von methodischen Themen wie Scrum und Kanban über Agile Leadership bis hin zu technischen Aspekten wie agilem Testen und flexiblen Architekturen.

  • Als Abo oder Einzelausgabe erhältlich
  • Digital oder Print
  • Einzelne Artikel sofort digital verfügbar

Wissens- und Lesenswertes

Das könnte Sie zu Agiler Arbeit auch interessieren

Vier Haltungen Scrum Master

Agile Leadership

Die wirkungsvolleren Scrum Master, die wir in der Welt da draußen immer wieder antreffen, wechseln fließend zwischen unterschiedlichen Ausprägungen oder Haltungen: der Facilitator:in, der Trainer:in,…

Kanban Cycle Time-Histogram

Kanban

Die Tickets auf einem Kanban-Board sollten Arbeitsaufgaben darstellen, die für den Kunden von Bedeutung sind, d.h. sie spiegeln die gestellte Anforderung wider.

Was ist Lean Forecasting?

Agiles Produktmanagement

Lean Forecasting modelliert künftige Arbeit auf Basis vergangener Arbeit und sagt so den Zeitpunkt der Fertigstellung voraus.

it-agile Newsletter

Sichern Sie sich regelmäßige Neuigkeiten, Inspiration und Tipps zu agiler Arbeit, Konferenzen, aktuelle und neue Termine für unsere Schulungen sowie vieles mehr.


* Benötigte Angaben