referat „extreme programming“ von irina gimpeliovskaja und susanne richter

Post on 06-Apr-2015

123 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Referat „Extreme Programming“

Von Irina Gimpeliovskaja

und Susanne Richter

1.) Was ist XP?

Überlegte Annäherung an Softwareentwicklung

Prozessmodell für objektorientierte Softwareentwicklung

erfordert gute Teamarbeit zwischen Manager, Kunde und Entwickler

2.) Geschichtliches, Entstehung

1990 - Kent Beck und Ward Cunningham dachten über bessere Entwicklungsstrategien nach

1996 - Beck arbeitet beim Chrysler Projekt C3, heraus kam XP

von Chrysler als gescheitert erklärt, aber von Beck übernommen

XP-Methodik wurde erfolgreich abgeschlossen

damals eingesetzt bei Projekten, bei denen es nichts mehr zu retten gab

3.) Grundprobleme und Lösungen in XP

Terminverzögerungen:– bei XP werden zuerst die wichtigsten

Funktionen programmiert, so dass fehlende Funktionen weniger wichtig sind

3.) Grundprobleme und Lösungen in XP

Projektabbruch:– es wird eine kleinstmögliche Version

ausgewählt, die den erwünschten Vorteil bringt

– so kommt es nicht zu einer untragbaren Verzögerung (hohe Kosten)

3.) Grundprobleme und Lösungen in XP

System wird unrentabel (Kosten/Nutzen-Faktor stimmt nicht):– ständiges Testen sorgt für erstklassigen

Zustand des Systems– Einfachheit des Systems minimiert Kosten

bei Änderung

3.) Grundprobleme und Lösungen in XP

Hohe Fehlerrate (unbrauchbare SW):– ständige Tests durch Kunden und

Entwickler

3.) Grundprobleme und Lösungen in XP

falsch verstandenes Geschäftsziel:– der Kunde wird zu starkes Teil des Teams

3.) Grundprobleme und Lösungen in XP

Geschäftsziel ändert sich:– kein Problem durch die kurzen

Releasezeiten

3.) Grundprobleme und Lösungen in XP

Falsche Funktionen (zu viele):– Funktionen nach Priorität entwickeln– kurze Releaszyklen beibehalten, damit der

Kunde entscheiden kann, welche Funktionen wichtig sind

3.) Grundprobleme und Lösungen in XP

Personalwechsel:– ständige Tests und eine geringe Fehlerrate

verursachen weniger Frustration bei den Programmierern

– weniger Personalwechsel als bei anderen Methoden

4.) Vier essentielle Eigenschaften

diese sollen die Probleme der herkömmlichen Softwareentwicklung zuerst auf relativ abstrakte Weise angehen

später werden gezielte Strategien entwickelt

4.) Vier essentielle Eigenschaften

a) Kommunikation– betrifft sämtliche Bereiche der Entwicklung– XP setzt Coach ein, der speziell zur

Entdeckung und Beseitigung von Kommunikationslücken zuständig ist (er fördert und unterstützt den Kommunikationsfluß)

4.) Vier essentielle Eigenschaften

b) Einfachheit– wie sind die Probleme am einfachsten zu

lösen?– Lösen von zwanghaftem Vorausdenken– Devise: lieber heute etwas Einfaches

herstellen, kompliziert kann man es immer noch morgen machen

4.) Vier essentielle Eigenschaften

c) Feedback– zur realisitischen Einschätzung des Projektstatus– wird erreicht durch Komponententests jeder

Funktion– Feedback des Kunden durch frühe Releases– Feedback desjenigen, der die Arbeit überwacht– je mehr, desto einfacher und ehrlicher ist die

Kommunikation

4.) Vier essentielle Eigenschaften

d) Mut– sich gegen altbewährte Methoden der

Softwareentwicklung durchzusetzten– Änderungen an Programmen, die man

nicht geschrieben hat– lang erarbeiteten Code wegwerfen und

neuen Lösungsansatz bringen

5.) Grundprinzipien

den Eigenschaften werden Prinzipien zugeordnet

es ist immer die Alternative zu wählen, die am ehesten einem oder mehrerer Prinzipien folgt

5.) Grundprinzipien

a)unmittelbares Feedback– vom Kunden– kurze Releasezeiten (< 1 Monat)– vom System durch Komponententests

5.) Grundprinzipien

b) Einfachheit anstreben– Heute aktuelle Arbeit erledigen und das so

einfach wie möglich– komplexere Module kann man später in

der vorher gesparten Zeit hinzufügen

5.) Grundprinzipien

c) inkrementelle Veränderungen– jedes Problem in viele kleine Problemchen

zerlegen– vereinfacht Programmierung und Testen– schnelleres Fehlerfinden

5.) Grundprinzipien

d) Veränderungen wollen– Veränderungen wollen, da sie eine

positiven Effekt haben können– die beste Alternative einer Entscheidung ist

die mit den meisten Optionen

5.) Grundprinzipien

e) Qualitätsarbeit– ist wichtig für den Erfolg und die Motivation

des Teams– also: qualitativ hochwertige Arbeit

anstreben

6.) Die 12 Praktiken bei XP

6.) Die 12 Praktiken bei XP

1) Planungsspiel– Kunde schreibt mehrere User Stories (keine

Details) des Problems– Abschätzen der Kosten pro Story (Zeit: 1-3

Wochen)– nach Priorität bis zum nächsten Release

abarbeiten– insgesamt 80 +/- 20 gute Anzahl für Release Plan

6.) Die 12 Praktiken bei XP

2) kurze Releasezeiten– erstes Release nach 1-2 Monaten, danach alle 2-4

Wochen– nach jedem Release neues Planungsspiel– Nutzen: häufiges Feedback des Kunden,

sichtbarer Projektfortschritt– selbst bei vorzeitigem Abbruch ist etwas

Brauchbares verfügbar

6.) Die 12 Praktiken bei XP

3) System Metaphern– gute Namen für Komponenten des

Projektes finden– Team soll das große Ganze nicht aus den

Augen verlieren

6.) Die 12 Praktiken bei XP

4) Einfaches Design– keine Redundanz, Klassen -und

Methodenanzahl so klein wie möglich, Bestehen aller Tests

– Code und Testfälle sollten Projekt verständlich machen

6.) Die 12 Praktiken bei XP

5) Testen (!!!)– Tests werden vom Programmierer und Kunden

durchgeführt– erst Tests schreiben, dann Funktion

implementieren– erst nach erfolgreichem Test, weiter entwickeln– nach Refactoring alle Testfälle nochmal

durchlaufen

6.) Die 12 Praktiken bei XP

7) Pair Programming– jedes Programmierpaar arbeitet an einer

User Story– einer macht sich Gedanken über

Implementierung, der andere über Testfälle– häufiges Abwechseln der Rollen, auch

Paarkombinationen ändern sich

6.) Die 12 Praktiken bei XP

8) gemeinsame Verantwortung– Code ist kein Privateigentum– jeder darf jeden Code jederzeit ändern

6.) Die 12 Praktiken bei XP

9) Fortlaufende Integration (!!!)– es existiert ein eigener Integrationsrechner– neuen Code nur an diesem Rechner

einpflegen– wenn Tests funktionieren, Code drin

lassen, sonst alles zurücksetzen– (siehe CVS)

6.) Die 12 Praktiken bei XP

10) 40-Stunden-Woche– geregelte Arbeitszeiten sorgen für

ausgeglichene Programmierer :o) und somit für bessere Arbeitsergebnisse

6.) Die 12 Praktiken bei XP

11) Kunde vor Ort– Mitarbeiter des Kunden ist für die

Projektzeit vor Ort, um mögliche Unklarheiten der Funktionen zu klären und User Storys mitzuschreiben

6.) Die 12 Praktiken bei XP

12) Programmierstandards– gemeinsamer Programmierstandard sollte

selbstverständlich sein (Coding standards)– vereinfacht die gemeinsame

Verantwortung für den Code

7.) Vorteile, Nachteile

Vorteile:– Motivation und Freude bei der Arbeit durch

Gleichstellung im Team und gemeinsamen Code

– erstes lauffähiges Programm schnell verfügbar

– hohe Qualität durch Pair-Programming, Reviews, regelmäßiges Refactoring

7.) Vorteile, Nachteile

Vorteile:– dadurch: robuster, wartungsfreundlicher

Code– Einhaltung der Qualitätsanforderung durch

Refactoring– leichte Integration von Anfängern durch

Pair-Programming

7.) Vorteile, Nachteile

Nachteile:– häufig fehlt Dokumentation (nur von

Testfällen und Code), für spätere Änderungen problematisch

– dadurch müssen die Entwickler das Design quasi auswendig kennen (aber dieses wird oft verändert)

7.) Vorteile, Nachteile

Nachteile:– konkurrierende Änderungen an

gemeinsamen Klassen– XP bis jetzt unzureichend dokumentiert– bisher nicht nachgewiesen, daß XP

anderen Strategien überlegen ist

8.) Zielgruppe

kleine Projekte mit unklaren, sich immer wieder verändernden Anforderungen

kleine Gruppen von Mitarbeitern (10-15)

9.) Voraussetzungen

alle Beteiligten müssen sich auf die genannten Praktiken einlassen

alle Programmierer sollten am selben Ort und zur selben Zeit arbeiten (bessere Kommunikation!)

Testläufe sollten nicht zu lange dauern

Vielen Dank!

Viel Spaß beim Einsatz von XP!

top related