Werte, Prinzipien und Praktiken

eXtreme Programming bereichert Softwareprojekte mit fünf Werten grundlegend:

  • Die intensive Kommunikation aller Beteiligten, mit dem Kunden und mit den Team-Mitgliedern.
  • Die schöne Einfachheit eines jeweils minimalen technischen Entwurfs.
  • Das intensive Feedback, das von Anfang an durch Tests und winzig kleine Zyklen bis auf Sekundenbasis entsteht.
  • Der tiefe Respekt vor dem Wert der Arbeit äußert sich im gemeinsamen Streben nach Qualität.
  • Der große Mut, schlechte Arbeit wegzuwerfen oder zu unmöglichen Vorhaben „nein“ zu sagen.

Aus diesen Werten leitet XP Grundprinzipien als Richtlinien für den Arbeitsstil ab. Qualitätsarbeit, das Wollen von inkrementellen Veränderungen, Schlichtheit und unmittelbares Feedback sind hierbei die Essenz. Es gibt darüber hinaus viele weitere nützliche Ideen wie „Lernen lernen“, „Kleine Anfangsinvestition“, „Spielen, um zu gewinnen“, „Instinkte nutzen“, „Verantwortung übernehmen“, „mit leichtem Gepäck reisen“ oder „ehrliches Messen“, die einen großen Fundus zur Entwicklung eines stark am gemeinsamen Erfolg in der Sache orientierten Arbeitsstils bieten.

Die konkrete Umsetzung von XP erfolgt auf Basis von verzahnten Praktiken wie paarweisem Programmieren, Test-First-Entwicklung, kontinuerlicher Integration, Einbeziehung des Kunden, Refactoring und der Einhaltung eines festen und nachhaltigen Arbeitstempos.

XP

Fast alle dieser Praktiken sind für sich alleine genommen wertvolle Bausteine moderner Programmierung geworden, auch wenn sie im Einzelfall nicht alle zusammen benötigt werden. Aber nur die vollständige Akzeptanz aller Werte, Prinzipien und Praktiken führt zu den von Extreme Programming behaupteten extremen Vorteilen und darf sich auch so nennen.

XP im Überblick

Mögen die Ansätze im Einzelnen noch so naiv erscheinen, ensteht durch das Zusammenspiel agiler Werte, Prinzipien und Praktiken die Grundlage für einen hocheffizenten Entwicklungsprozess.

  • Die Entwicklung erfolgt paarweise und testgetrieben. Die Testfälle sind der Anfang, dazu passende Funktionalität wird dann schrittweise so einfach wie möglich entwickelt, bis die Tests erfolgreich sind. Durch ständiges Refactoring und gestützt auf die zahlreichen Tests kann das Design permanent verbessert werden.
  • Manager, Kunde und Entwickler sind gleichgestellte Partner in einem Team. Das selbstorganisierte Team löst in einer produktiven Arbeitsumgebung Probleme so effizient wie möglich. Durch paarweises Entwickeln werden Fehler früher entdeckt, und bei Ausfall eines Team-Mitglieds besteht stets Ersatz selbst mit wenig Dokumentation.
  • Kundenzufriedenheit heißt Erfolg. Und Zufriedenheit stellt sich nicht durch Features ein, die irgendwann einmal in der Zukunft eventuell unter gewissen Umständen gebraucht werden könnten. Der Kunde bekommt in kurzen Abständen die am dringendsten benötigte Funktionalität in höchstmöglicher Qualität. Nicht mehr, aber auch nicht weniger.

Ein beispielhafter Entwicklungszyklus

XP taktet in unterschiedlichen Intervallen im Bereich von Sekunden bis Monaten. Ein Zyklus ist ein in sich geschlossener Ablauf mit dem Quelltext als zentrales Element.

XP

  • Durch Pair Programming wird Code im Sekundentakt entwickelt und gleich durch einen zweiten Entwickler inspiziert.
  • Durch den Test-First-Ansatz enstehen im Minutentakt neue Tests und vergrößern im weiteren das Feedback.
  • Längere Diskussionen zum Entwurf von Code-Abschnitten werden in Pair Negotiations abgehalten.
  • Einchecken von Quelltext und Erstellung der Artefakte durch Continuous Integration finden mehrmals täglich statt.
  • Täglich trifft sich das Team in einem Standup-Meeting und bespricht, was läuft.
  • Mehrtägig bis wöchentlich sollen Produktinkremente testbereit stehen, um Kundenfeedback zu ermöglichen.
  • In Abständen von einem bis drei Monaten werden Releases produktiv gestellt.

 

Und weiter? Wie setze ich Extreme Programming um?

Auch wenn dieser kurze Abriss in keiner Weise dem Umfang von Extreme Programming gerecht wird, hoffen wir doch, dass er ein gutes Grundverständnis für die Methode vermittelt. Der Beginn des Einsatzes von XP und das Meistern im Alltag sind der wirklich spannende Teil.

  • Wie profitiert Extreme Programming von Continuous Integration? Welche Werkzeuge setzt man am besten ein?
  • Wie gehe ich mit Anforderungen und User Stories um?
  • Warum bedeutet Pair Programming nicht doppelte Kosten bzw. halbierte Produktivität?
  • Kann es zu viele Tests geben?

Gerne beantworten wir diese und viele andere Fragen mit Ihnen gemeinsam.

XP mit Braintime