23
20.04.10 Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 1 Phänomene der „Softwarekrise“ Terminverzögerungen Projektabbruch Fehlerrate System wird unrentabel Geschäftsprozesse werden falsch verstanden Geschäftsprozesse ändern sich Falsche Funktionsfülle Personalwechsel Gegenmaßnahme: XP Ursprung: Daimler Chrysler XP – eXtreme Programming

XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 1

Phänomene der „Softwarekrise“TerminverzögerungenProjektabbruchFehlerrateSystem wird unrentabelGeschäftsprozesse werden falsch verstandenGeschäftsprozesse ändern sichFalsche FunktionsfüllePersonalwechsel

Gegenmaßnahme: XPUrsprung: Daimler Chrysler

XP – eXtreme Programming

Page 2: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 2

Was ist „extrem“? – alles, was sich bewährt hat wird „extrem“ betrieben

XP – eXtreme Programming

Page 3: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 3

Hoffnungen: Kostenreduktion bei Änderungen

XP – eXtreme Programming

Page 4: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 4

Bedeutung der Planung

XP – eXtreme Programming

Page 5: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 5

Vorteile der XP-Anwendung: Projektrichtung kann einfacher an Umfeld angepasst werden unklare Punkte können aufgeschoben werden (keine unsichere

Investitionen) Projekt kann mit Marktwachstum wachsen Bei Einstellung des Projektes besteht trotzdem ein funktionstüchtiges

Zwischenrelease Der Kunde bekommt den Featureumfang mit der von ihm gewollten

Priorität

XP – eXtreme Programming

Page 6: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 6

die vier Variablen in XP-Projekten Kosten Qualität Zeit Umfang „magisches Quadrat“

XP – Theorie

Page 7: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 7

die vier (sieben) Werte von XP Kommunikation:

mangelnde Kommunikation ist häufige Ursache für Scheitern eines Projektes

Förderung von Kommunikation (z.B. Pairprogramming, tägl. Meetings (im Stehen), Kommunikation mit dem Kunden)

Einfachheit: es wird die einfachste Möglichkeit gewählt, ein Problem zu lösen und nur

das wird realisiert.

Einfachheit reduziert Kommunikationsbedarf

erhöhte Kommunikation liefert „einfachere“ Lösungen

XP – Theorie

Page 8: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 8

die vier (sieben) Werte von XP Feedback:

z. B. durch Partner beim Pairprogramming

durch automatische Modultests am Ende des Tages

der Kunde durch häufige Releases

Mut: jeder soll erkannte Probleme angehen, um den Erfolg des Projektes zu

sichern

es werden nur die Probleme angegangen, die momentan wirklich vorliegen

Eliminierung von überflüssigem Code

XP – Theorie

Page 9: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 9

die vier (sieben) Werte von XP (Respekt)

vor den anderen Projektmitgliedern

(Interesse) am Lernen

(Qualitätsbewußtsein)

XP – Theorie

Page 10: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 10

XP-Prinzipien Umsetzung der Werte in konkrete Anwendungsvorschläge Unterscheidung in primäre und sekundäre Prinzipien Primär:

unmittelbares Feedback

Streben nach Einfachheit

inkrementelle Veränderungen

Änderungen willkommen heißen

Qualitätsarbeit leisten

XP – Theorie

Page 11: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 11

XP-Prinzipien Sekundär:

Lernen lehren

kleine Anfangsinvestitionen

Spielen, um zu gewinnen (keine Sanktionen bei schlechten Nachrichten)

gezielte Experimente

offene, ehrliche Kommunikation

Verantwortung übernehmen

an örtliche Gegebenheiten anpassen

ehrliches Messen

XP – Theorie

Page 12: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 12

Rollen Kunde

aktive Mitarbeit

Vorgabe der Ziele (User-Stories auf Storycards)

Formulierung von Akzeptanztests

Kritikfähigkeit (Einfluss, aber keine Kontrolle) Entwickler, Programmierer

Teamfähigkeit: Teamerfolg steht über Einzelerfolg

Kommunikationsfähig und –bereitschaft

XP – Theorie

Page 13: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 13

Rollen Coach

zuständig für Disziplin

Führen ohne zu bevormunden

zu starke Führung steht im Gegensatz zu den XP Prinzipien

Terminmanager verfolgt Projektstatus

sammelt Aufwand der einzelnen Personen

Reaktion und Einleitung von Gegenmaßnahmen bei Abweichungen vom Plan

Messen und Kontrollieren von Prozessleistungen

XP – Theorie

Page 14: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 14

Rollen Projektmanager (untergeordnete Bedeutung)

präsentieren von Projektergebnissen Tester

Unterstützung des Kunden

eigentliche Aufgabe wird vom Programmierer erledigt Berater

Nebenrolle: ist Ansprechpartner bei technischen Problemen, die das Wissen der einzelnen Entwickler übersteigt

gefordert sind Generalisten, wenige Spezialisten

XP – Theorie

Page 15: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 15

Release: Iterative Vorgehensweise Projektdauer wird in kurze Releasezyklen (einige Monate) unterteilt Kunde und Entwickler legen in Planungsspiel die Funktionen fest

(Releaseplan) Änderungen durch den Kunden sind explizit vorgesehen

Iteration: Release wird in Iterationen unterteilt (1- 3 Wochen) ->Iterationsplanung sehr viele lauffähige Zwischenreleases Software „reift“ unter Beobachtung des Kunden

XP – Projekteinteilung

Page 16: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 16

Vergleich verschiedener Methoden

XP – Projekteinteilung

Page 17: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 17

Planung Planung wichtig, aber nicht nur am Anfang Flexibilität im Umgang mit Kundenanforderungen haben Priorität Planung erfolgen iterationsbezogen Planung erfolgt im Planungsspiel

Kunde formuliert seine Anforderungen auf User Cards

Entwickler schätzt Aufwand ab.

XP – Projekteinteilung

Page 18: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 18

Langzeitplanung nur in groben Zügen Stand up meeting

jeden Tag

5 Minuten

wer hat was gemacht, welche Probleme, nächste Schritte

keine Lösungen Planungsfehler Reduktion der Anforderungen Terminprobleme Reduktion des Umfanges nur 40 h –Woche, keine Überstunden Erhalt der Kreativität

XP – Projekteinteilung

Page 19: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 19

Überblick

XP – Entwicklung

Page 20: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20

Design: konsequentes Refactoring gegen sich ändernde Kundenanforderungen Wegen häufiger Änderungen „einfaches Design“ nach 4 Regeln

einfaches Design muss alle Testanforderungen bestehen, die die Kundenanforderungen validieren

das Design muss jede Idee ausdrücken, die der Entwickler zum Ausdruck bringen muss

kein Programmcode darf doppelt vorhanden sein

das einfachste Design besitzt am wenigsten Klassen und Methoden einfaches Designwenig Aufwand bei Test und Refactoring

Refactoring Verbesserung des Codes und des Designs keine neuen Funktionen, nur Verbesserung

XP – Entwicklung

Page 21: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 21

Programmierung Pairprogramming:

ein Entwickler codiert, der andere kontrolliert

Rollen werden gewechselt Erfahrungsaustausch

trotz Pairprogramming Kostenreduktion um 12 – 15%

Programmierstandards einheitliches Aussehen von Quellcodes

Testen Unit Tests

Entwickler verfassen Testspezifikation

Codierung bis alle Tests erfolgreich sind Akzeptanztest

Validierung der Kundenanforderungen

Verantwortlich: der Kunde

XP – Entwicklung

Page 22: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 22

Voraussetzungen Unternehmenskultur keine risikobehaftete Projekte, da aus Sicherheitsgründen ständige

Releases nicht möglich kleine Teams (-12 Entwickler), sonst Kommunikations- und

Koordinationsprobleme Gewaltentrennung: geschäftliche Entscheidungen fällt der Kunde,

technische der Entwickler Persönlichkeitsprofil der Entwickler (hohe Sozialkompetenz,

Selbstdisziplin) erfahrenes Team automatisierte Tests

XP – Grenzen

Page 23: XP – eXtreme Programmingteam.fh-kl.de/uploads/media/Vorlesung7NG.pdfProf. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 20.04.10 1 Phänomene der „Softwarekrise“ Terminverzögerungen

20.04.10Prof. Dr. Hans-Jürgen Steffens Software-Engineering SS 2010 23

Nachteile fehlendes Risikomanagement keine Dokumentationspflicht, die aber oft vom Gesetzgeber

gefordert wird es kann schnell Chaos entstehen

XP – Grenzen