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.