Agile Softwareentwicklung

Extreme Programming

30.08.2010
Extreme Programming (XP) wurde Mitte der 90er Jahre von Kent Beck, Ward Cunningham und Ron Jeffries entwickelt. Es handelt sich um ein iteratives, inkrementelles Vorgehensmodell.

Extreme Programming setzt sich zusammen aus Werten, Prinzipien, Techniken und Rollen.

Die Werte des XP

  • Kommunikation

  • Einfachheit

  • Mut

  • Feedback

  • Respekt

Kommunikation: Permanente und intensive Kommunikation der Entwickler untereinander sowie mit den Kunden erlaubt schnellstmögliches Feedback sicherzustellen, unnötige Funktionalität zu verhindern, entstehende Probleme so schnell wie möglich zu lösen und das Problem der fehlenden Dokumentation zu mildern.

Einfachheit: Die Software soll so einfach wie möglich gestaltet werden, keine Vorbereitung möglicher zukünftiger Erweiterungen, keine redundante oder unnötige Funktionalität und keine redundanten Strukturen sind geduldet. Dadurch bleibt das System einfach und wartbar. Dies basiert auf der Annahme, dass es effizienter ist, heute etwas einfaches zu erstellen und morgen etwas mehr Aufwand zu investieren, um Änderungen einzubauen, als heute Komplexes zu entwickeln, das morgen nicht oder nicht in der antizipierten Form genutzt wird.

Mut: Die Umsetzung der Prinzipien und Werte erfordert Mut. Dazu gehört, die Wahrheit über den Projektfortschritt und Aufwände zu kommunizieren, nicht nach Entschuldigungen für Fehler zu suchen und Änderungen anzunehmen, wann immer sie auftreten.

Feedback: Viele heutige Projekte scheitern an Missverständnissen zwischen Entwickler und Anwendern. Evolutionäre Entwicklung des Systems in möglichst kleinen Releases und eine permanente Verfügbarkeit der Kunden erlaubt schnelles Feedback und dadurch eine flexible Steuerung des Projektfortschritts. Eine weitere wichtige Quelle des Feedbacks ist die Entwicklung von Tests auf verschiedenen Ebenen (Unit-Tests, Test-Stories), um zu prüfen, ob die realisierte Funktionalität korrekt und robust ist und gegebene Anforderungen erfüllt.

Respekt: Jeder gibt und empfängt den Respekt, den er als Teammitglied verdient. Jeder liefert seinen Beitrag zum Erfolg, auch wenn es nur Begeisterung ist. Entwickler respektieren die Expertise der Kunden und umgekehrt.