eXtreme Programming (XP)
Hermann Götz
Sergij Paholchak
Agenda








Was ist XP?
Grundprinzipien
Der Entwicklungsprozess
Die Projektplanung
Praktiken
Vorteile und Nachteile
Wann macht XP Sinn für ein Projekt?
Einführung von XP in einem Projekt
Was ist XP?

Eine leichte Software-Entwicklungs-Methodik



für kleine Projekt-Teams ...
für Projekte mit sich ändernden oder entwickelnden Anforderungen.
Die Methodik besteht aus Praktiken




welche nicht neu sind und sich bereits bewahrt haben
die auf bestimmten Grundprinzipien beruhen
Praktiken, welche der Arbeitsweise der Entwickler entgegenkommen
die aber auch für das Projektmanagement von Vorteil sind.
Grundprinzipien

Schneller und häufiger Feedback


Erwarte Einfachheit


kleine Schritte sind einfacher und schneller
Berucksichtige und Arbeite mit Veränderung


es wird noch früh genug kompliziert, es soll aber nicht komplizierter
sein als nötig
Inkrementelle Veränderung


je mehr Feedback, auf jedem Level, desto besser
es ist besser zu lernen, wie man auf Veränderung reagieren kann, als
versuchen, alles vorauszusehen
Qualitätsarbeit

das Team muss Stolz auf seine Arbeit sein können.
Kunde
Der Entwicklungsprozess
Stories /
Anforderungen
Neue Stories
Entwicklung
Planning
Game
Architektur,
Technologien
Vorbereitung
Story
Schätzung
Story
Verfeinerung
Entwicklung
Test
Prototypen
Spike Solution
Iterationen
Systemtest /
Produktion
Die 4 Variablen
Qualität
Scope*
Kosten
Zeit
Immer sichtbar für die Projekt-Beteiligten !
* Scope: Anforderungen, Funktionalität, Features
Umgang mit den 4 Variablen
Steuerung des Projekts




Die Qualität darf nicht verändert werden, da dies
allerhöchstens kurzfristig helfen würde
Zeit, Kosten und Scope beeinflussen sich gegenseitig.
Scope ist die am einfachsten und am effektivsten zu
steuernde Variable.
Dadurch dass Scope als Projektsteuerungsvariable
verwendet wird, können jederzeit veränderte
Anforderungen oder Prioritäten berücksichtigt werden.
Das Planning Game




Mit Planning Game werden alle Planungsaktivitäten
bezeichnet, bei welchen sowohl Kunden wie auch
Entwickler beteiligt sind
Die Planung erfolgt grundsätzlich gemeinsam. Dabei ist
klar definiert, wer welche Entscheidungen treffen darf
und muss.
Das Projekt wird in Releases aufgeteilt. Ein Release
sollte zwischen 2-6 Monaten dauern.
Jeder Release wird in Iterationen von ca. 1 Monat
Dauer aufgeteilt.
Planung in XP





Zeit und Kosten bzw. Ressourcen werden definiert /
fixiert
Die Stories werden geschatzt -> pro Story gibt es einen
„Preis“ = Aufwand
Für eine Iteration / Release wird der Gesamtpreis
ausgerechnet : Gesamtpreis = ((Kalenderzeit * Anz.
Entwickler) - Abwesenheiten)
Für den Gesamtpreis können Stories „gekauft“ werden“.
Die Auswahl der Stories sollte primär nach zwei
Gesichtspunkten erfolgen : Wichtigkeit für die Kunden
sowie Risiko bei der Implementierung
Vorteile aus Sicht des
Kunden






Risikoverminderung durch schnelles, frühes Feedback
Anforderungsänderungen können (schnell)
berücksichtigt werden
Das System hat zu jedem Zeitpunkt den
grosstmöglichen Wert
Das System kann frühestmöglich in Produktion gehen
Weniger Stress für das Entwicklungsteam -> grossere
Zufriedenheit der Mitarbeiter
Bessere Wissensverteilung im Team -> weniger Risiko
bei Fluktuation
Vorteile aus Sicht des
Entwicklers






Die Praktiken konzentrieren sich auf das Hauptergebnis
Dadurch dass die Entscheidungen von den richtigen
Leuten getroffen werden -> bedeutet weniger Stress.
Mehr Erfolgserlebnisse durch kurze Releases.
Mehr und früheres Feedback, ob das Implementierte
tatsachlich Sinn macht aus Sicht des Benutzers.
Weniger Stress bei Änderungen durch die Unit Tests.
Mehr Spaß an der Entwicklung durch gemeinsame
Erfolgserlebnisse beim Pair Programming.
Nachteile / Probleme





Management und Kunden müssen Vorteile des
Prozesses begreifen
Nicht für alle Entwickler geeignet
Am Anfang ist Coaching notwendig, bis das Team die
Kontrolle über den Prozess übernehmen kann
Projektgrösse muss relativ stabil sein, oder es müssen
recht schnell Subprojekte eingeführt werden
Nicht geeignet zur Einführung in kurzen Projekten, die
Praktiken müssen sich über einige Iterationen im Team
einspielen
Wann macht XP Sinn für ein
Projekt ?







Kleines Entwicklungs-Team ( < 10)
Genügend lange Entwicklungszeit zum etablieren der
Praktiken (> 3 Monate)
Das Entwicklungsteam ist offen und bereit für
Veränderungen
Gute, offene Kommunikation mit dem Kunden
Die Anforderungen sind Änderungen unterworfen oder
entwickeln sich weiter
Einsatz von Technologie, die Veränderung unterstutzt
Die Tests können innert Minuten wann immer notwendig
ausgeführt werden
Einführung von XP in einem
Projekt





Finde einen Coach
Identifiziere das grösste Problem
Löse das Problem mit den notwendigen XP Praktiken
Überprüfe ob das Problem damit kleiner wurde
Identifiziere das nächste zu lösende Problem
Danke für Ihre Aufmerksamkeit.

ppt