Extreme Programming (XP)


Extreme Programming (XP) ist ein leichtgewichtiger, durch Risikomanagement und Software-Struktur gesteuerter Prozess zur Softwareentwicklung.

Es handelt sich um ein Konglomerat aus verschiedenen Ideen, insbesondere

  • Arbeit vor Ort
    Die Entwickler arbeiten in großen Teilen ständig vor Ort im Umfeld der beteiligten Mitarbeiter des Kunden.
    • Fragen werden kurzfristig geklärt, häufige Zwischenstände der Arbeit präsentiert.
    • Ziel: Reduzierung oder Verzicht auf Pflichtenheftphasen. Schnelle Entwicklung bei gleichzeitigem Know-How-Transfer durch direkte Mitwirkung.  
  • Pair-Programming 
    • Zwei Programmierer teilen sich eine Tastatur und Monitor - einer codiert, einer denkt mit
    • Vorgegebener Wechsel an der Tastatur
    • Täglicher Wechsel der Programmierpartner und damit auch der Programmieraufgabe
    • Wenn möglich Integration von Mitarbeitern des Kunden in die Arbeit und damit praktischer Know How Transfer
    • Ziel: jeder Programmierer kennt jeden Teil der Software, die Software ist hervorragend dokumentiert, Spezialisten sitzen immer an der Stelle an der Sie gebraucht werden. Know-How Transfer in der Praxis und nicht alleinig nur auf Schulungsbasis.
  • Integration in kurzen Abständen
    • Die Aufgaben werden in Teilstücke mit nicht mehr als 6 Personentagen zerlegt
    • Ziel: Überschaubare Aufgabenteile, bessere Budget und Zeitplanungsmöglichkeiten  
  • Ständiger Test (alle, auch Kunden testen laufend)
    • Zu jedem Teilstück werden automatische Test geschrieben- Automatische Tests werden vor der Implementierung erstellt
    • Werden zwei Teilstücke zusammengefügt müssen die Tests durchlaufen werden
    • Ziel: Fehlerfreie Software
  • Laufende Refaktorisierung, ständige Architektur-Verbesserung
    • Programmteile werden während der Entwicklung überarbeitet, wenn dies notwendig ist
    • Ziel: Performante Software

Es hat sich als sehr lohnenswert erwiesen Teile des Softwareentwicklungsprozesses „extreme Programming“ in die tägliche Programmierarbeit zu übernehmen, mit dem Ziel Projekte in der vorgegebenen Zeit und innerhalb des Budgets abwickeln zu können.

Exreme Programming eignet sich für größere Projekte, die nicht an ein starres Pflichtenheft gekoppelt entwickelt werden sollen, sondern flexibel ... auch während der Entwicklung ... auf Kundenwünsche reagieren können oder für Projekte, bei denen zu Beginn der Arbeiten nicht alle Schritte und Zusammenhänge bekannt sind.

Extreme Programming ist eine Alternative zum Pflichtenheft.