Extreme Programming: XP Revisited

Die abgeflachte Kostenkurve

Der Untertitel von Becks grundlegendem Buch über XP lautete: „Embrace Change“. Weil die Anforderungen sich in vielen Projekten effektiv nicht in der Anfangsphase endgültig festlegen lassen, sondern erst in der Auseinandersetzung mit entstehender Software klar werden oder sich durch äußere Ereignisse später ändern, wollte Beck den Entwicklungsprozess XP so konstruieren, dass er Veränderungen nicht als Unfall, sondern als Normalfall antizipiert und effizient darauf reagiert. Dass ein solcher Ansatz nicht nur für Sonderfälle, sondern auch für durchschnittliche Projekte vernünftig ist, begründete er mit der Feststellung, die klassische, exponentielle Kostenkurve für Fehler und Änderungen sei durch große Fortschritte bei Programmiersprachen, Compilern, Datenbanken usw. abgeflacht. Die Binsenweisheit, dass das späte Feststellen von Fehlern im Prozess und der daran anschließende Änderungsbedarf viel (exponentiell) teurer sei als bei einem früheren Auffinden, gelte darum so nicht mehr. Daraus folgerte er, dass die dem „Wasserfallmodell“ des Softwareentwicklungsprozesses zu Grunde liegende Zielsetzung, Planänderungen im Projektverlauf um jeden Preis zu vermeiden, nicht mehr allgemeingültig sei.

Die These von der abgeflachten Kurve ist in dieser Allgemeinheit meines Wissens nicht belegt und bleibt umstritten; unstrittig ist dagegen, dass in vielen Softwareentwicklungsprojekten allein schon aus Markterfordernissen heraus noch zu einem späten Zeitpunkt Änderungswünsche umgesetzt werden müssen.

Ein wichtiges Argument für XP, das Beck an dieser Stelle nicht ins Feld geführt hat, besteht darin, dass das dort praktizierte Vorgehen in Iterationen, die jeweils Anforderungsanalyse, Entwurf, Umsetzung und Test umfassen, durch die engen Rückkopplungszyklen die Wahrscheinlichkeit später negativer Überraschungen (Fehler) reduziert – also auch bei Annahme der klassischen Kostenkurve Vorzüge besitzt – und gleichzeitig gutartig mit Veränderungen umgeht. Deshalb ist die Annahme der flachen Kostenkurve für die Begründung von XP gar nicht so essenziell, wie zum Teil unterstellt wird.

Vier Variablen

Kennzeichnend für XP (und agile Vorgehensmodelle im Allgemeinen) ist der bewusste Umgang mit der Tatsache, dass die vier „Variablen“ Kosten, Zeit, Qualität und inhaltlicher Umfang (Scope) so eng miteinander zusammenhängen, dass für ein gegebenes Projektsetting jede einzelne Variable als Determinante der anderen drei betrachtet werden kann. Da ein Mindest-Qualitätsniveau angenommen werden kann und Kosten und Zeit in vielen Projekten eng vorgegeben sind, zielt XP darauf ab, einen intelligenten und optimierenden Umgang mit dem Scope zu finden. Die Leitlinie lautet, zu jedem Zeitpunkt des Projektverlaufs in der Umsetzung den bestmöglichen Geschäftswert erzielt zu haben. XP versucht dies zu erreichen, indem der Kunde den Erkenntnisgewinn nutzt, der im Projektverlauf eintritt und ihm unter anderem ermöglicht, wertvolle und weniger wertvolle Funktionalitäten immer klarer zu differenzieren. Mit diesem Wissen zieht der Kunde wichtige Features vor und lässt unwichtige fallen. Eben dieses Nachsteuern ist von Iteration zu Iteration zentraler Bestandteil von XP.

Vier Werte

Als „philosophischen Überbau“ von XP benennt Beck vier zentrale Werte: Kommunikation, Einfachheit, Rückkopplung (Feedback) und Mut.

Der Wert Kommunikation unterstreicht die Bedeutung eines engen und vertrauensvollen Austauschs zwischen den Projektbeteiligten und insbesondere zwischen Entwicklungsteam und Kunden. Er dient als Argument für direkte, verbale Verständigung und gegen eine Konzentration auf umfangreiche schriftliche Dokumente sowie gegen eine zu stark arbeitsteilige Organisation.

Der Wert Einfachheit zielt im Kern auf die Programmierung ab und steht für die gute Verständlichkeit einfacher Entwürfe; auch wird er herangezogen, um sich gegen eine Entwicklung von „Technologie auf Vorrat“ auszusprechen, die immer dann geschieht, wenn Softwareentwickler universell wiederverwendbare Komponenten schaffen wollen, bevor sie überhaupt ein konkret vorliegendes Problem gelöst haben.

Abb. 1: Rückkopplungsebenen in XP

Der Wert Rückkopplung (Feedback) ist der XP vermutlich am meisten kennzeichnende Wert, denn die kurzen Rückkopplungszyklen sind die wichtigste Grundlage dafür, notwendige Anpassungen rechtzeitig zu erkennen und dann auch kontrolliert umsetzen zu können. Fast alle XP-Techniken tragen etwas zur Rückkopplung in unterschiedlichen Zeitebenen bei, ob bei der Programmierung oder im Verhältnis zum Kunden (Abb. 1).

Der Wert Mut komplettiert die Werte und soll das Team daran erinnern, dass Mut für unangenehme Wahrheiten und schwere Entscheidungen vorhanden sein muss, wenn das Projekt erfolgreich sein soll.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.