Extreme Programming (XP) ist ein iteratives Vorgehensmodell der Softwaretechnik, welches eine sehr flexible Arbeitsweise erlaubt. Es wurde von Kent Beck, Ward Cunningham und Ron Jeffries entwickelt.
XP basiert auf 5 zentralen Werten:
- Respekt
- Kommunikation
- Einfachheit
- Feedback
- Mut
Auf diesen Werten basierende Praktiken bilden das Vorgehensmodell Extreme Programming. Kent Beck hat diese in Extreme Programming zusammengefasst:
- Das Planungsspiel – Der Umfang einer Version wird festgelegt, indem Geschäftsprioritäten mit technischen Aufwandsschätzungen kombiniert werden. Der Plan muss ständig an die Realität angepasst werden.
- Kurze Releasezyklen – Ein einfaches System soll so schnell wie möglich in Produktion gehen. Darauf folgend sollen in möglichst kurzen Iterationsschritten neue Versionen eingeführt werden.
- Metapher – Sämtliche Entwicklungen werden an einer gemeinsamen, einfachen Metapher ausgerichtet. Diese Metapher soll für Geschäftsseite und Entwicklerseite gleichermassen verständlich sein. Dadurch soll die einfache Kommunikation zwischen Kunden und Entwicklern sichergestellt werden.
- Einfaches Design – Das System soll zu jedem Zeitpunkt so einfach wie möglich strukturiert sein.
- Testen – Es werden für jeden Teil des Systems fortwährend Komponententests geschrieben, die fehlerfrei ausgeführt werden müssen.
- Refactoring – Das System unterliegt einem ständigen Refactoring, um Redundanzen zu verhindern, den Programmcode zu vereinfachen oder flexibler zu gestalten.
- Programmieren in Paaren – Der gesamte Produktionscode wird von 2 Programmierern geschrieben, die gemeinsam an einem Rechner sitzen.
- Gemeinsame Verantwortlichkeit – Jeder kann jederzeit beliebigen Code im System ändern.
- Fortlaufende Integration – Das System wird ständig integriert. Immer dann, wenn eine Aufgabe erledigt worden ist.
- 40 – Stunden Woche – Man arbeitet prinzipiell nicht mehr als 40 Stunden in der Woche. Überstunden werden nie länger als eine Woche geleistet.
- Kunde vor Ort – Dem Team soll ein echter, lebender Benutzer angehören, der während der gesamten Arbeitszeit zur Beantwortung von Fragen zur Verfügung steht.
- Programmierstandards – Programmierer schreiben sämtlichen Code entsprechend der Regeln, die die Kommunikation mithilfe des Codes erleichtern.
Diese Best Practices waren schon vorher bekannt und werden teilweise bereits lange genutzt. XP fasst diese Praktiken zu einem funktionierenden Gesamtkonzept zusammen, definiert diese jedoch nicht als Allheilmittel. Wo sie nicht den individuellen Anforderungen eines Projektes genügen, sollen sie angepasst werden.
Dieser Artikel wurde bereits am 16.08.2008 auf jensjaeger.de/extreme-programming/ veröffentlicht.