Extreme Programming (XP)



Ähnliche Dokumente
Agile Softwareprozess-Modelle

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

- Agile Programmierung -

Project roles and responsibilities


Extreme Programming: Überblick

Software Systems Engineering

Agile Software Development

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Methoden in der Softwareentwicklung

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

ZuuL - Entwicklung eines Adventures

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Modulare Programmierung

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Agile Softwareentwicklung

Die 10 größten Probleme bei der Durchführung von IT-Projekten

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Agile Programmierung: Case Studies

Extreme Programming. Frank Gerberding LINEAS Informationstechnik GmbH Theodor-Heuss-Straße 2 D Braunschweig

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Lösungen zum Test objektorientierter Software

Vorstellung. Wie entsteht Architektur in Scrum

Agile Systemadministration (ASA)

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Am Beispiel Pair-Programming

CONTINUOUS LEARNING. Agile Anforderungsanalyse mit Impact Mapping

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Rezension des Papers Recovery, Redemption and Extreme Programming von Peter Schuh

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Online Intelligence Solutions TESTABLAUF. 7 Schritte für ein erfolgreiches Testing.

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Der Kopf ist rund, damit das Denken die Richtung

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Software Engineering

Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht

Unser verflixtes 7. Jahr im Testmanagement. Bernd Schindelasch 26. Juni 2013

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Softwareentwicklungsprozesse optimieren. wie Sie die Vorteile klassischer und agiler Methoden erfolgreich kombinieren

Projektplan. Software Engineering Projekt. November 11 Fachbereich Informatik Software Engineering Projekt Sebastian Proksch 1

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Die Wirtschaftskrise aus Sicht der Kinder

GRS SIGNUM Product-Lifecycle-Management

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

3. Vorgehensmodelle Software Engineering. Prof. Dr. Bernhard Humm Hochschule Darmstadt, 23. Oktober 2006

«PERFEKTION IST NICHT DANN ERREICHT, WENN ES NICHTS MEHR HINZUZUFÜGEN GIBT, SONDERN DANN, WENN MAN NICHTS MEHR WEGLASSEN KANN.»

Soft Skills als Erfolgsfaktoren im anforderungsorientierten, agilen Projektmanagement am Beispiel der IT- Softwareentwicklung

(und was wir davon lernen können!)

Konzentration auf das. Wesentliche.

d i e J E D E R s c h o n m o r g e n f r ü h s ta r te n k a n n!

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Agile Management Einführung in agiles Management

Arbeiten mit UMLed und Delphi

Marketing-Leitfaden zum. Evoko Room Manager. Touch. Schedule. Meet.

Kapitel 10: Dokumentation

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann

Projekt- Management. Landesverband der Mütterzentren NRW. oder warum Horst bei uns Helga heißt

Software-Entwicklung

FRONT CRAFT.

Application Requirements Engineering

360 - Der Weg zum gläsernen Unternehmen mit QlikView am Beispiel Einkauf

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Test-Driven Design: Ein einfaches Beispiel

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

Umfrage zum Informationsbedarf im Requirements Engineering

DevOps in der Praxis. Alexander Pacnik

SWOT Analyse zur Unterstützung des Projektmonitorings

Extreme Programming ACM/GI Regionalgruppe Bremen,

Was sind Jahres- und Zielvereinbarungsgespräche?

Formwerk AG. Die Sicherstellung konsistenter Nutzungserlebnisse über den gesamten SW-Produktlebenszyklus durch Human Centered Design.

9 Auto. Rund um das Auto. Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu.

teischl.com Software Design & Services e.u. office@teischl.com

Geld Verdienen im Internet leicht gemacht

OpenProposal: Anwendervorschlägen für. 27. November 2008 WIR FORSCHEN FÜR SIE. Asarnusch Rashid Herbert Schäfler FZI Forschungszentrum

Übungen zur Softwaretechnik

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

BSV Ludwigsburg Erstellung einer neuen Internetseite

Freie Software: Was bringt s mir? Peter Bubestinger, David Ayers. 17. Mai 2008

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Persönliche Einladung. Zur IT Managers Lounge am 4. November 2009 in Köln, Hotel im Wasserturm.

Agile Methoden. David Tanzer. Oliver Szymanski

30 Multiple Choice-Fragen - pro Frage gibt es immer 1-4 richtige Antworten

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

Social Media Monitoring Was wird über Sie und Ihre Wettbewerber gesagt?

Softwaretechnik. Lean Software Development. Prof. Dr. Matthias Hölzl Joschka Rinke. 21. Januar 2016

EchoLink und Windows XP SP2

Softwareentwicklung aus Sicht des Gehirns

Benchmark zur Kompetenzbestimmung in der österreichischen SW Industrie. Mag. Robert Kromer NCP / AWS Konferenz Wien,

Wir nehmen Aufgaben und Ideen wahr. Wir suchen Lösungen zu Ideen.

Oktober 2014 PRODUKTENTWICKLUNG. Dr. Ralf Lauterbach

REQUIREMENTS ENGINEERING KONSTRUKTIVE QS REQUIREMENTS ENGINEERING 1

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Some Software Engineering Principles

Transkript:

Yvonne Höller Christian Lercher Sebastian Stenger Alexander Zrinyi Universität Salzburg FB Computerwissenschaften 16. Jänner 2009

Gliederung Werte Variablen Prinzipien

Gliederung Werte Variablen Prinzipien

Geschichte von XP Kent Beck, Ward Cunningham, Ron Jeffries. Projekt Comprehensive Compensation System (Daimler Chrysler). 1995 2000. dann Bücher (z. B. [BECK 2000]).

Einordnung Schwer Mittel Leicht ( Agil ) V-Modell Spiralmodell XP Wasserfallmodell ASD Klass. Sequenzmodell Scrum......... Kriterium: Formalisierungsgrad und Anzahl der Zwischenprodukte. [POMBERGER und PREE 2004]

Besonderheiten extrem : treibt die besten Strategien der traditionellen Softwareentwicklung in den Extrembereich. [ANGIONI et al. 2006] agile Entwicklungsmethode: Welt ist nicht vorhersagbar Mit Veränderung arbeiten. [BECK 2000], [DYBÅ und DINGSØYR 2008] XP Programmierer denken mehr über Design nach. Zuerst Testen, dann Programmieren. [DAMM et al. 2005] [BECK 2001], [BECK 2003]

XP ist wie Autofahren: Es geht nicht darum, das Auto auf die richtige Bahn zu bringen. Auch wenn gerade alles perfekt läuft, darf man die Augen nicht von der Strasse lassen. Man muss ständig aufmerksam sein und kontinuierlich kleine Korrekturen anbringen. [BECK 2000]

Gliederung Werte Variablen Prinzipien Werte Variablen Prinzipien

Feedback des Kunden. [BECK 2000] 4 Zentrale Werte Werte Variablen Prinzipien Kommunikation Stetige Kommunikation im Team (Pair-Programming, Räumlichkeiten, Besprechungen,... ) Kommunikation mit dem Kunden (Storys, Interaktion,... ) Feedback Unit tests. Feedback des Programmieres. Feedback des Managers.

Veränderung auch von fremdem Code. [BECK 2000] 4 Zentrale Werte (Forts.) Werte Variablen Prinzipien Einfachheit So einfach wie möglich. Redundanz vermeiden. Lieber heute einfach und morgen etwas Komplexes einbauen, statt heute komplex, was morgen nicht in der antizipierten Form genutzt wird. Mut Ehrliche und offene Kommunikation. Fehler zugeben und Konsequenzen ziehen.

Gliederung Werte Variablen Prinzipien Werte Variablen Prinzipien

Die vier Variablen Werte Variablen Prinzipien 1. Kosten Durch XP senken. Marktparameter. [BECK 2000], [VOSS 2005] 2. Zeit Durch Testen Zeitaufwand senken. Verluste minimieren durch kleine Schritte. [BECK 2000], [DAMM et al. 2005]

Die vier Variablen (Forts.) Werte Variablen Prinzipien 3. Qualität Testgeleitetes Entwickeln ist der Wasserfallmethode überlegen. Mehr Code. [GEORGE und WILLIAMS 2004] [DAMM et al. 2005], [DYBÅ und DINGSØYR 2008] 4. Umfang Am einfachsten anzupassende Variable. Indem man nicht zu viel macht, ist man in der Lage, die geforderte Qualität zeitgerecht zu produzieren. [BECK 2000]

Gliederung Werte Variablen Prinzipien Werte Variablen Prinzipien

Werte Variablen Prinzipien Zusammenfassend: Wichtigste Prinzipien Schnelles Feedback. Einfachheit. Inkrementelle Veränderung. Qualitätsarbeit. [BECK 2000]

Gliederung Werte Variablen Prinzipien

Programmieren Programmierer produzieren Code, viel Code. Besser zu zweit: Pair Programming! Höhere Qualität. Wissenschaftlich belegt. [BECK 2000] [DICK und ZARNETT 2002] [HAZAAN und DUBINSKY 2003] [WILLIAMS und KESSLER 2003] [BRYANT et al. 2008] [ERICKSON et al. 2005]

Testen Notwendiges Übel? Testgeleitetes Entwickeln. Schnelle, isolierte, automatisierte Tests. [BECK 2000] [BECK 2003] [MAXIMILIEN und WILLIAMS 2003] [BECK 2000]

Testen (Forts.) Gleich viel Code für Programm und für Tests. Testen der Funktionalität und der Performanz. [HAYES 1995] Arten: Komponententests (Unit-Tests) von Programmierern, Funktionalitätstests (bestimmt) von den Kunden. [ANGIONI et al. 2006]

Design erstellen Testgeleitete Entwicklung ist Design-Technik. [DAMM et al. 2005] Schwierig. [DYBÅ und DINGSØYR 2008] Anforderungen: Erweiterbar, modular, eng geknüpft an Organisation der Daten, vermeidet Redundanz,...

Zuhören Programmierer müssen den Kunden wirklich zuhören. nur die Kunden wissen, was sie brauchen Kommunikation allgemein: Strukturierte, Regelmäßige Kommunikation. Sicherstellung, dass das Mitgeteilte auch verstanden wird. [BECK 2000]

Gliederung Werte Variablen Prinzipien

Planen Spielerisch: The planning game. Benutzergeschichten. Unterteilung in kleine und kleinere Schritte: 1. Herausgabe Wochenaufgabe - Tagesplan - Stunden, Minuten,... [BECK 2000] [BECK 2000]

Testen... und dann Aufräumen Je einfacher das Design, um so einfacher Programmieren und Testen. Tests bedeuten Verantwortung. Programmieren und Refactoring ergänzen sich. Funktionalität [BECK 2000] [RUMPE 2001] Programmierung Refactoring Qualität des Designs

Gliederung Werte Variablen Prinzipien

Beginn Exploration von Technik, Architektur, Design; Performance des Systems, Effizienz des Programmierens. Grober großer Plan. Definition erster naher Ziele. [BECK 2000]

Produktion Früher Termin für Produktion. Enge Feedbackschleifen. Kurze Arbeitseinheiten. Kurze Zeitspanne zwischen Versionsherausgaben. [BECK 2000]

Instandhaltung und Abschluss Normalzustand eines XP Projekts. Oft neue Versionen, damit Veränderungen nicht allzu groß sind. Das Ende eines Projekts ist erreicht, wenn... der Kunde keine Wünsche mehr hat und die Software fehlerfrei läuft. Zum Abschluss: Dokumentation. [BECK 2000]

Gliederung Werte Variablen Prinzipien

Projekte Veränderung als einzige Konstante (bzw. häufig). [BECK 2000], [POMBERGER und PREE 2004] Vage Anforderungen. [POMBERGER und PREE 2004] Grüne Wiese. [GITTINS et al. 2002] Optimaler Bereich: Kleinere, weniger kritische Projekte. [MCCORMICK 2002]

Methode Als Trickkiste. Schrittweise. [MCCORMICK 2002] [GITTINS et al. 2002]

Gegenanzeigen XP ist nicht gut einsetzbar, wenn: Entwicklung verteilt, langlebig fehlende Dokumentation. [GITTINS et al. 2002], [POMBERGER und PREE 2004] Unternehmensstruktur starr traditionell, mit wenig effektiver Kontrolle/Steuerung, mit Fachleuten besetzt, die XP ablehnen. [GITTINS et al. 2002], [MCCORMICK 2002]

Gliederung Werte Variablen Prinzipien

Positiv Dokumentation durch Tests und Code stets automatisch aktuell. Lauffähige Versionen frühzeitig vorhanden Laufende Anpassung an Kundenwünsche. Qualität hat höchste Priorität (vor Kosten/Zeit/Umfang). Einfachheit als Ziel. [GITTINS et al. 2002], [BECK 2000] [SANZ 2002]

Belege? Oft rein akademisch. Wenige Daten aus echten Projekten. Wenige formale Studien. Glaubenssystem, "Kein Zweifel", Dogma. [SANZ 2002] [MCCORMICK 2002], [SANZ 2002]

Anwendbarkeit? Allgemein sind die extremen Ausprägungen der Arbeitsweisen schwer anwendbar. Kunde vor Ort -Prinzip eher Luxus. Metaphern zu finden ist schwierig. Multidisziplinäre Mitarbeiter zu finden ist schwierig. [DYBÅ und DINGSØYR 2008] Einfaches Design: Manchmal zu einfach; zukünftige Erweiterungen sollten nicht immer ignoriert werden! [GITTINS et al. 2002] [SANZ 2002]

ANGIONI, M., D. CARBONI, S. PINNA, R. SANNA, N. SERRA und A. SORO (2006). Integrating XP project management in development environments. Journal of Systems Architecture, 52(11):619 626. BECK, KENT (2000). Extreme Programming Explained. Embrace Change. Addison Wesley Longman, Inc., Massachusetts. BECK, KENT (2001). Aim, Fire [test-first coding]. IEEE Software, 18(5):87 89. BECK, KENT (2003). Test Driven Development - by example. Addison Wesley.

BRYANT, SALLYANN, P. ROMERO und B. DU BOULAY (2008). Pair programming and the mysterious role of the navigator. International Journal of Human-Computer Studies, 66(7):519 529. DAMM, LARS-OLA, L. LUNDBERG und D. OLSSON (2005). Introducing Test Automation and Test-Driven Development: An Experience Report. Electronic Notes in Theoretical Computer Science, 116:3 15. DICK, A. und B. ZARNETT (2002). Paired programming and personality traits.. DYBÅ, TORE und T. DINGSØYR (2008).

Empirical studies of agile software development: A systematic review. Information and Software Technology, 50(9-10):833 859. ERICKSON, J., K. LYYTINEN und K. SIAU (2005). Agile Modeling, Agile software development, and extreme programming: the state of research. Journal of Database Management, 16(4):88 100. GEORGE, BOBY und L. WILLIAMS (2004). A structured experiment of test-driven development. Information and Software Technology, 46(5):337 342. GITTINS, ROBERT, S. HOPE und I. WILLIAMS (2002). Qualitative Studies of XP in a Medium Sized Business. UPGRADE, The European Journal for the Informatics Professional, 3(2):18 21.

HAYES, L.G. (1995). The Automated Testing Handbook. Software Testing Institute. HAZAAN, O. und Y. DUBINSKY (2003). Bridging cognitive and social chasms in software development using extreme programming. MAXIMILIEN, E.M. und L. WILLIAMS (2003). Assessing test-driven development at IBM. In: Software Engigneering: Proceedings. 25th International Conference on, S. 564 569. IEEE. MCCORMICK, MICHAEL (2002). Programming Extremism. UPGRADE, The European Journal for the Informatics Professional, 3(2):9 10.

POMBERGER, GUSTAV und W. PREE (2004). Software Engineering : Architektur-Design und Prozessorientierung. Carl Hanser Verlag, München, Wien. RUMPE, BERNHARD (2001). Extreme Programming - Back to Basics?. Technischer Bericht, Technische Universität München. SANZ, LUIS FERNÀNDEZ (2002). XP and Software Engineering: an opinion. UPGRADE, The European Journal for the Informatics Professional, 3(2):23 25. VOSS, RÖDIGER (2005). BWL kompakt - Grundwissen Betriebswirtschaftslehre. das Kompendium. Merkur Verlag, Rinteln.

WILLIAMS, L. und R. KESSLER (2003). Pair Programming Illuminated. Addison-Wesley, Boston.