Extreme Programming: Vorgehensmodell zur Software-Entwicklung bei //SEIBERT/MEDIA

Unter 'eXtreme Programming' versteht man eine bestimmte Art Software zu programmieren. Häufig findet sich die Abkürzung 'XP' - nicht zu verwechseln mit 'Windows XP'. Extreme Programming wurde insbesondere von Kent Beck erfunden und entwickelt.

Es handelt sich um den bekanntesten Prozess aus der Klasse der agilen Prozesse der Softwareentwicklung - in logischer Konsequenz wird XP mit Agile Modeling für den Entwurf der Software gekoppelt. In XP wird auf einen strikten Anforderungskatalog des Kunden verzichtet, dafür werden auch Kundenwünsche berücksichtigt, die sich noch während der Softwareentwicklung ergeben. Statt des klassischen Wasserfallmodells durchläuft der Entwicklungsprozess immer wieder in kurzen Zyklen (typ. eine Woche) sämtliche Disziplinen der klassischen Softwareentwicklung (Anforderungsanalyse, Design, Implementierung, Test). Nur die im aktuellen Iterationsschritt benötigten Merkmale werden implementiert.

Die Methode hat die Erfahrung zum Hintergrund, dass der Kunde die wirklichen Anforderungen zum Projektbeginn meist noch nicht komplett kennt. Er fordert Features, die er nicht braucht und vergisst solche, die benötigt werden.

Durch ein Konglomerat aus verschiedenen Maßnahmen soll die Qualität und Flexibilität der Software soweit gesteigert werden, dass der Zusammenhang zwischen dem Zeitpunkt, wann eine Anforderung gestellt wird, und den damit entstehenden Kosten weitgehend linear ist.

Kostenkurve

Bei einem weitgehend linearen Verlauf der Kostenkurve wird auf eine vollständige Erhebung aller Anforderungen zu Beginn des Projektes verzichtet. Stattdessen werden die sich erst im Laufe der Realisierung ergebenden Anforderungen mit berücksichtigt.

Vorteile von eXtreme Programming

  • Schnellere Software-Entwicklung
  • Entwicklung von den Funktionen, die gebraucht werden - nicht denen, die einem zu Beginn einfallen. Änderungen sind auch während des Projekts möglich.
  • Software-Entwicklung, die sich mit dem Tagesgeschäft der Kunden vereinbaren läßt. Projektleiter und Kunden wollen keine Konzepte durchstöbern, sondern möglichst schnell Ergebnisse ansehen und bewerten.
  • Mehr Kommunikation im Projekt durch kürzere Iterationszyklen.
  • Einfachheit in der Software-Entwicklung und dadurch mehr Verständnis, Interesse und Involvierung der Kunden in das Projekt und dessen fachliche Anforderungen.
  • Erheblich geringere Kosten bei großen Software-Projekten
  • Höhere Qualität, Erweiterbarkeit und Nachhaltigkeit der Entwicklung

Nachteile von eXtreme Programming

  • Schlecht bei sehr kleinen Software-Projekten (Wird dort auch selten angewendet.)
  • Unvereinbar mit dem Wunsch eine fest definierte Liste an Funktionsanforderungen zum geringstmöglichen Preis in kürzester Zeit zu erhalten.
  • Sehr hohe Anforderungen an die Qualität der Entwickler (Es müssen Tests entwickelt werden. Die Software muss sozusagen spontan erweitert werden können.)
  • Kunden haben meist nicht ausreichend Zeit, um sich in das Projekt in der von XP geforderten Form einzubringen oder wollen das nicht.
  • Programmierer werden schnell dazu verleitet und teilweise, Software sehr schnell fertigzustellen, was teilweise in dem Auslassen der 'Test-Entwicklung' endet.
  • Kunden müssen Vertrauen in die Kompetenz und Kontinuität des technischen Partners (Programmierer) haben. Im ersten Projekt, wird selten XP angewendet.

//SEIBERT/MEDIA ist sich der Schwächen und Gefahren von eXtreme Programming bewusst und entwickelt Verfahren zu deren Kontrolle und Ausmerzung. In regelmäßigen internen Schulungen und mit einem umfangreichen Literatur-Pool werden die Mitarbeiter in dieses neuartige Vorgehensmodell eingeführt.

Quellen: