Extreme Programming IEEE-Special von Michael Glögl Gehalten am 09.01.2003.

Slides:



Advertisements
Ähnliche Präsentationen
Vorstellung der Möglichkeiten im Anpassungsmodus
Advertisements

Programmieren im Großen von Markus Schmidt und Benno Kröger.
Kick-off: Projekt-Praktikum Model-Driven Engineering von eingebetteten Systemen Christian Fuß und Christof Mosler Lehrstuhl Informatik III,
V-Modell XT - Ein Überblick
Einführung von Team System Ein Vorgehensvorschlag
Agiles Software- Projektmanagement mit XP Dipl.-Ing. F. Papenfuß Prof. Dr. H. Pfüller Universität Rostock.
Software-Lebenszyklus
eXtreme Programmierung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
eXtreme Programming (XP)
Projekt Web Engineering
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. funktionsorientierte Organisation.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Baustein- vs. Funktionsorientierte Organisation.
Software Design Patterns Extreme Programming (XP).
Vorgehensmodelle: Wasserfallmodell
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Entwicklung verteilter eingebetteter Systeme - Einführung
Anpassung des RUP an ein konkretes Projekt - 1
Vorgehensmodelle: Schwergewichtige Modelle
XP – eXtreme Programming
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Henr Zusammenkunft ist eine Anfang. Zusammenhalt ist einFortschritt. Zusammenarbeit ist der Erfolg. Henry Ford.
Vorgehensmodell mit Scrum-Elementen
Scrum in der Praxis aus Entwicklersicht
Teambildung vs. Entwicklungsmethode
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
VORGEHENSMODELLE.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Testtechniken-Praktikum WS 2005/06 1 Testgetriebene Entwicklung Andreas Höfer Dr. Matthias Müller mit Beiträgen von Johannes Link.
Abschlusspräsentation von Fred. Wolfgang Bischoff, Sebastian Krysmanski, Christoph Müller Fred Abschlusspräsentation von Fred Softwarepraktikums 2006 der.
Melanie König 5Minds IT-Solutions GmbH & Co. KG
Referat „Extreme Programming“
Software Architektur für on-premise und die Cloud Lösungen
Agile Softwareentwicklung
Scrum Andreas Voraberger.
Horw Präsentation Themenarbeit SWE Wyder Aaron Studiengang Informatik SS Semester Juni 2008 Ist Design tot? Evolutionäre.
Lean Software Developement
Max. HWR DECISION TREE Max Jakisch Tobias Lentz Michael Berth Sebastian Möller Christian Güthling.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Test-Driven Development
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Software - Testung ETIS SS05.
SCRUM Informatik IF1 A. Neck.
Modul 223 © 2011 coloSign Modul 223 Multi-User-Applikation objektorientiert realisieren mit VB.NET Gino Colombo Gewerblich-Industrielle Berufsschule.
Software-Delivery auf Knopfdruck IBM Cloud & DevOps.
Hero Quest Verwaltungstool -Projektmanagement Projektplanung für Softwareprojekte: KLips 2.0 Dozent: Prof. Dr. phil. Manfred Thaller Referent: Alexander.
Wöchentliches Meeting
On the edge, we need to soar or dive, or we will fall.
[Name des Projektes] Post-Mortem
Web2001 Redesign des Webauftritts des Instituts für Hygiene und Arbeitsphysiologie.
Daten als Basis für Entscheidungen
Practical Exercises and Theory
Devops David Jaroš
Continuous Integration (Kontinuierliche Integration)
Practical Exercises and Theory
DevOps Michael Minh Pham.
Practical Exercises and Theory
<Fügen Sie den Titel des Problems ein>
 Präsentation transkript:

Extreme Programming IEEE-Special von Michael Glögl Gehalten am

Inhalt Lightweight vs. Heavyweight Probleme von Heavyweight-Prozessen XP – Radikale Ansätze Prinzipien von XP Zusammenspiel der Prinzipien Probleme bei XP

Kein XP - Projekt Ein leider typisches Beispiel

Light-/Heavyweight Heavyweight: –Viele Prinzipien –Komplexe Regeln –Viel Disziplin nötig –Zeitaufwendig Lightweight: –Wenige Prinzipien –Simple Regeln –Wenig Disziplin nötig –Wenig zusätzlicher Zeitaufwand

Probleme bei Heavyw. Schwer zu befolgen –Behindern den Entwickler –Werden vom Entwickler umgangen Komplexe Prozeduren –Schlecht verstanden –Halbherzig befolgt

Probleme bei Heavyw. Zuviel Abstraktion –Zu viele Dokumente in abstrakter Notation –CASE-Tool Wucherung Over-Engineering –Entwurf passt nicht zum Problem –Entwurf schwer einzuhalten –Entwurf zu komplex

Probleme bei Heavyw. Kommunikationsprobleme –Kunde ändert seine Wünsche –Entwickler entwickeln am Kunden vorbei Probleme im Team –Truck-Faktor –Cowboy-Coder

XP – Radikale Ansätze XP als Leichtgewichtiger Prozess Vier Bereiche der XP-Praktiken: –Planning –Coding –Testing –Designing

XP – Radikale Ansätze 4 Kern-Werte: –Einfachheit –Kommunikation –Feedback –Mut

XP – Radikale Ansätze Embrace change Design when needed As simple as it possibly works Frequent integration Pair programming Short releases Collective Code ownership

Planning XP Wie wird geplant in einem XP- Projekt?

Planning XP User Stories –Der Kunde formuliert in kurzen „Geschichten“ was das Produkt können soll –Ca. 3 Sätze –Nur einzelne Teilaspekte des Projekts –Wenig Details – nur zur Zeitabschätzung –Kein Technobabble

Planning XP Release Planning –Zeitplan wird erstellt –Entwickler schätzen den Zeitbedarf der Stories bei idealen Entwicklungsbedingungen –Kunde priorisiert die Stories –Der Umfang der ersten Iteration wird festgelegt

Planning XP Small Releases

Planning XP Im Release Planning Meeting Festgelegt Möglichst oft Releasen Teilfunktionalitäten Wichtigstes zuerst zum Kunden

Planning XP Projektgeschwindigkeit messen

Planning XP Keine umfangreiche Metrik Iterationsgeschwindigkeit: –Summe der Aufwandsschätzungen für die während der Iteration abgearbeiteten Stories –Gummibären - Methode

Planning XP Iterationen –Aufteilung in 1-3 Wochen lange Iterationen –Neuplanung der Aufgaben zu jeder Iteration –Nichts für weitere Iterationen vorausplanen –Iterations-Abschnitte einhalten

Planning XP Iteration Planning Meeting

Planning XP Zu Beginn jeder Iteration Kunde sucht Stories für Iteration aus Umfang: Durchschnittliche Iterationsgeschw. Evtl. Aufteilen der Stories in Tasks

Planning XP Metapher: –Einfaches Leitbild für Gestaltung der Software –Basis für Designentscheidungen

Planning XP Stand-Up-Meeting –Am Anfang des Tages –Nur das Team –Stehend –Probleme, Lösungen, Fokusierung –Kurz

XP Developement Entwickeln in einem XP Projekt

XP Developement Simple Design

XP Developement You ain‘t gonna need it As simple as it possibly works Kein „Upfront Design“ Prioritäten: –Verständlichkeit –kein duplicate Code –so wenig Klassen wie möglich –so wenig Methoden wie möglich

XP Developement Pair Programming

XP Developement Immer 2 Entwickler zusammen Driver / Reviewer wechseln ständig Reduzieren des „Truck-Faktors“ Kontrollieren von Cowboy-Codern Gesteigerte Konzentration Alleine programmiertes kommt nicht ins Projekt

XP Developement Collective Code Ownership –Keine „Arbeitsbereiche“ –Unbequeme Klassen ändern –Keine Blockaden durch Klassen anderer

XP Developement Refactoring –Ständiges Refactoring –Schlechtes Design sofort beheben –Kein „Never Change a Running System“ –ALLES ändern was die interne Struktur verbessert –nur Minuten pro Refactoring

XP Developement Coding Standards –Gemeinsames Regelwerk –Beispiel JCC –Ziel: Nicht unterscheidbar wer Code geschrieben hat –Ziel: Gute Lesbarkeit fremden Codes

XP Developement Continuous Integration –Ständige Integration –mindestens einmal täglich pro Entwicklerpaar –Ziel: tägliche Integrationen pro Team –Unterstützung durch Entwicklungswerkzeuge!

XP Developement On-Site-Customer –Ein Vertreter des Kunden ist vor Ort –Schnelle Möglichkeit für fachliche Rückfragen –Vertreter der Anwender des Systems

XP Developement Dokumentation –Sourcecode als einzige teaminterne Doku –Keine Umfangreichen Papierwüsten

XP Developement 40 Hour Week Spikes Sprints CRC-Cards

XP = Testing Testen, Testen, Testen – und dann nochmal Testen

XP = Testing

Automatisches Testen Konstantes Testen Komponententest Akzeptanztests

XP = Testing Test-Driven-Developement

XP = Testing Komponententest (Unit-Test) –Test-Driven-Developement –Test First –Test – Framework nötig –Fast Feedback –Alle Entwickler schreiben Tests –„Untestbarkeit“ gibt es nicht

XP = Testing Akzeptanztests –Testen die Funktionalität –Werden vom Kunden geschrieben –Entwickler unterstützen nur wenn nötig –Decken die User-Stories ab

XP = Testing Everything that can possibly break

XP = Testing Bug handling

How XP works Wie alles zusammenspielt

How XP works

Problems with XP Die dunkle Seite der Macht

Problems with XP Nicht für große Teams (4-16) Gerade Anzahl Entwickler Nicht für räumlich getrennte Teams On-Site-Customer Psychologie / Politik „Kommunismus-Problem“ technische Probleme

Problems with XP Problemanzeichen: –„Es ist viel besser erst Story C als Story B zu machen, auch wenn der Kunde anders priorisiert hat“ –Deadlines verschieben anstatt Funktionalität reduzieren –„Ich als Programmierer schreibe meine Klasse, und probiere ob sie tut was ich will. Danach schreibe ich keine Tests mehr. Warum auch?“

Problems with XP Problemanzeichen: –„Das Refactoring lässt sich nicht zerlegen“ –Fortlaufende Integration ohne automatische Tests –„Routineaufgaben muss man nicht im Paar programmieren“ –„Dazu muss erst XXX installiert/geschult werden“ –„Da muss erstmal ein ordentliches Konzept gemacht werden“

Ende