22
eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André Janus - IT-Consulting, Karlsruhe Java User Group Karlsruhe 20. Oktober 2010

eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

  • Upload
    hanhi

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming in der Praxis

Dipl. Informationswirt André JanusAndré Janus - IT-Consulting, Karlsruhe

Java User Group Karlsruhe20. Oktober 2010

Page 2: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Inhalt Traditionelle Softwareentwicklungsprozesse

Agile Softwareentwicklungsprozesse

eXtreme Programming

Praxisbeispiel I2-Projekt, T-Systems

Page 3: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Warum Softwareentwicklungsprozesse?

Lehre aus der Softwarekrise Entwicklung in größeren Teams

Page 4: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Warum Softwareentwicklungsprozesse?

Page 5: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Traditionelle (schwergewichtige) Entwicklungsprozesse

Schwergewichtig = viel Detailplanung und Dokumentation

Beispiele Wasserfallmodell V-Modell

Grundmodell: festgelegte Phasen folgen aufeinander

Grundannahme: Anforderungen stehen von Beginn an fest

Page 6: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Traditionelle (schwergewichtige) Entwicklungsprozesse

Probleme Fehler in einer Phase erfordern Neubeginn Vorhandene Arbeit nicht mehr verwendbar

Beispiel: Projektende wg. Budgetüberschreitung: Software nicht lauffähig Projekt komplett gescheitert

Praxiserfahrung zeigt: Anforderungen ändern sich

Page 7: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Leichtgewichtig = ad hoc Planung, min. Dokumentation

Beispiele eXtreme Programming Scrum Feature Driven Development

agil ≠ Planlos Chaotisch „Quick-and-Dirty-Hacking“

Page 8: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Leichtgewichtig = ad hoc Planung, min. Dokumentation

Beispiele eXtreme Programming

Page 9: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Grundmodell: Planung in kleineren Zeiteinheiten Planung in kleineren Realisierungseinheiten

(inkrementell) Wiederholung einzelner Phasen (iterativ)

Grundannahme: Anforderungen ändern sich ( => aktives Risikomanagement)

Page 10: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Beispiel: Projektende wg. Budgetüberschreitung: lauffähige Software verminderter Funktionsumfang Projekt ist nicht komplett gescheitert

Page 11: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Agiles Manifest 2001, Kent Beck et al.

Agile Werte

Individuen und Interaktionen gelten mehr als Prozesse und Tools. Funktionierende Programme gelten mehr als ausführliche

Dokumentation. Die stetige Zusammenarbeit mit dem Kunden steht über Verträgen. Der Mut und die Offenheit für Änderungen steht über dem Befolgen

eines festgelegten Plans.

Page 12: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Agile (leichtgewichtige) Entwicklungsprozesse

Page 13: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Best Pratices „ins extrem getrieben“

zusätzliche Prinzipien zusätzliche Methoden Rollen im Projekt variable Größen

Page 14: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Best Pratices „ins extrem getrieben“

Page 15: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Page 16: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming Kunde

Projektleiter Entwickler

Planning Game

User Stories

Unit-Tests

Acceptance Tests

Integrations-Tests

ReviewsPair-Programming

Continous Integration

Simple Design

Page 17: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Praxisbeispiel I2-Projekt, T-Systems

„Variante“ von eXtreme Programming

zweiwöchiger Entwicklungs-Zyklus Planning Game mit Planing Poker (Aufwandschätzung) Grobschätzung Hauptfunktionen vor Planning Game (~> Festpreis) Feste Puffer für unerwartete Aktivitäten (Bugfixing) User Stories = MiniSpecs (Mini-Spezifikationen) Verfügbarer Kunde = Fachteam (Anforderungsverdichtung) Feedback = Statusmeeting, Umplanungen Entwicklungszyklus != Releasezyklus Continous Integration = Continous Build Tool-Unterstützung für

Requirements Entwickler-Aktivitäten

Page 18: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

Praxisbeispiel I2-Projekt, T-Systems

MoDi Mi Do Fr Mi Do Fr Mo

Planning Game Status Meeting Code FreezeTesting & Bug-Fixing

Di

Entwicklungszyklen

Releasezyklen

Patch

Entwicklungszyklus

(detailliert)

Page 19: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Herausforderungen Kunde ist nicht agil Festpreisprojekte (keine scheinbare Sicherheit) Team-Größe

Page 20: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Herausforderungen Kunde ist nicht agil Festpreisprojekte (keine scheinbare Sicherheit) Team-Größe

Page 21: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

Erfolgfaktoren Prozess muss gelebt werden Vertrauen Individuelle Variante erforderlich

Anpassungen des Prozesses an Projekt Anpassungen des Prozesses an Kunde

Kontinuierliche Verbesserung des „eigenen“ Prozesses

Page 22: eXtreme Programming - jug-karlsruhe.dejug-karlsruhe.de/assets/slides/eXtreme_Programming_in_der_Praxis...eXtreme Programming in der Praxis Dipl. Informationswirt André Janus André

eXtreme Programming

eXtreme Programming => „Das beste, was man für den Preis bekommen kann.“ „Am meisten Software fürs Geld“