extreme Programming (XP)



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


Extreme Programming: Überblick

Agile Softwareprozess-Modelle

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" bei AGFA HealthCare

Einführung in Scrum. Agiles Projektmanagement. Martin Krüger Entwicklung von Workflowanwendungen

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

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

Extreme Programming ACM/GI Regionalgruppe Bremen,

ZuuL - Entwicklung eines Adventures

Sollten folgende drei Fragen durch das Team positiv beantwortet werden, sind wichtige SCRUM-Elemente in Ihrem Team erfolgreich installiert.

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

Gelebtes Scrum. Weg vom Management hin zur Führung

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

Agile Methoden. David Tanzer. Oliver Szymanski

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

Agile Softwareentwicklung mit Scrum

Agile Software Development

Trotz Agilität nicht ins Abseits geraten Modellierung in einem agilen Umfeld. Susanne Mühlbauer, Philip Stolz, HOOD GmbH MID Insight 2012

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

Scrum in der Praxis (eine mögliche Umsetzung)

Projektmanagement durch Scrum-Proxies

Agile Entwicklung nach Scrum

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

Extremes Programmieren

Agile Programmierung - Theorie II SCRUM

Lösungen zum Test objektorientierter Software

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Scrum ist ein agiles Framework zur Software-Entwicklung. SCRUM bei Festo. Was ist SCRUM? Frank M. Hoyer, House of Software

07. November, Zürich-Oerlikon

- Agile Programmierung -

Qualitätssicherung leicht gemacht: Open Source Tools sinnvoll einsetzen und verzahnen

Software Systems Engineering

Agilität auf Unternehmensebene - Was hält uns davon ab?

Qualifikationsbereich: Application Engineering Zeit:

Scrum. Übung 3. Grundlagen des Software Engineerings. Asim Abdulkhaleq 20 November 2014

Globale Scrum Retrospektive

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

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

Risikomanagement. und es ist noch immer gut gegangen SENS Michael Jerger. (c) Michael Jerger SENS e.v., Stuttgart

IT-Projekt-Management

Scrum mit User Stories

Agiles Requirements Engineering mit Scrum. Rainer Fetscher Neuss, 16. November 2010

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Markup-basiertes Spezifikationsund Anforderungsmanagement in agilen Softwareprojekten

Agile Softwareentwicklung

Projektmanagement. Dokument V 1.2. Oliver Lietz - Projektmanagement. Probleme bei Projekten

Oktober 2014 PRODUKTENTWICKLUNG. Dr. Ralf Lauterbach

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

Erfahrungsbericht Agile Entwicklung einer BI Anwendung für das Meldewesen

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Agile Softwareentwicklung. Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger

Stuttgart, Scrum im Wasserfall... oder wie kann Agilität dem Kunden schmackhaft gemacht werden?

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

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

Agile Methoden einführen

Scrum. Agile Software Entwicklung mit. Agile Software Entwicklung mit. Scrum. Raffael Schweitzer 18. November 2003

BSV Ludwigsburg Erstellung einer neuen Internetseite

Grundlagen Software Engineering

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

Vergleich von klassischer und agiler Entwicklungsmethodik anhand der Entwicklung eines in Statemate simulierbaren Modells eines Türsteuergeräts

Extremes Programmieren

Ringvorlesung: SW- Entwicklung in der industriellen Praxis ( )

Software entwickeln mit extreme Programming

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Projektmanagement im Wandel

1 Was ist das Mediencenter?

Der Faktor Mensch in IT-Projekten

Einführungsstrategien komplexer IT-Lösungen

Chancen agiler Softwareentwicklung. Dipl.-Inform. Henning Wolf Geschäftsführer der akquinet agile GmbH

Praxisbericht und Demo-Projektabwicklung mit der ATLASSIAN Toolchain und Continuous Integration. Markus Stollenwerk, Noser Engineering AG

FAMILIENSTAND ALLEINERZIEHENDE MÜTTER

Inhaltsverzeichnis. Ralf Wirdemann. Scrum mit User Stories ISBN: Weitere Informationen oder Bestellungen unter

Andrea Grass & Dr. Marcus Winteroll oose Innovative Informatik GmbH. Geschäftsprozessmanagement und Agilität geht das zusammen?

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

SCRUM. Software Development Process

Zweisprachigkeit im Dokumentationsportal

Michael Franken. Serum für bummies. Übersetzung aus dem Niederländischen (/on Susanne Bonn. WlLEY. WILEY-VCH Verlag GmbH & Co.

Agile Management Einführung in agiles Management

NeFa: Auf dem Weg zum Justizarbeitsplatz der Zukunft

Zusammenarbeit im Projekt

SCRUM. Legalisierung der Hackerei? GI Regionalgruppe Dortmund Dipl.-Inform. (FH) Dirk Prüter.

16.4 Wiederverwendung von COTS-Produkten

Testen im Software- Entwicklungsprozess

Umfrage zum Informationsbedarf im Requirements Engineering

MOBILE USABILITY. Johannes Ewald peerigon UG

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Agiles Projektmanagement nach Scrum mit Projektron BCS - Erfahrungsaustausch -

WIE MACHT MAN EINE INVESTORENPRÄSENTATION?

Scrum for Management Praxis versus Theorie oder Praxis dank Theorie. ALM Day 26.Oktober 2011 Urs Böhm

RE-Metriken in SCRUM. Michael Mainik

Support-Tipp Mai Release Management in Altium Designer

Transkript:

Softwaretechnik SS2005 Tobias Giese Masterstudiengang Informatik HS-Harz

Agenda Allgemeines Vorgehensmodell Kommunikation und Arbeitsphilosophie Entwicklungsphasen / Extreme Rules Planung Entwurf Implementierung Testen Management von XP-Teams

Extreme Programming? Allgemeines bekanntes agiles Vorgehensmodell erste Publizierung: Kent Beck basiert auf Erfahrungen und Best-Practises extreme = Praktiken in extremen Umfang fordert strenge Disziplin- und Prinzipientreue Anpassung des Entwicklungsprozesses an örtliche Gegebenheiten Extreme Programming = Extreme Rules

Extreme Rules Vorgehensmodell iteratives und evolutionäres Vorgehen (kleine Releases) permanentes Testen 2-12 Entwickler knappe Analyse- und Designphase (Anforderungen u. Architekturentwurf) flexibles Anforderungsmanagement Refactoring (Designverbesserung) kleine Releases = voll lauffähige Softwaresysteme (Abnahme) frühzeitiges Feedback höhere Agilität (Design + Features) periodische Release Planning Meetings für Synchronisierung

Planning Designing Coding User Stories Fakten Anforderungsdokument (~ Use-Cases) Unterschiede: Detailgrad generischer Ansatz enthalten reine Anforderungen (Technologien Algorithmen) 2 Phasen während der Entwicklung 1. in der Analysephase (grob) : Abschätzung, Planung 2. in der Implementierungsphase (fein) : Kontakt mit Kunden vom Kunden angefertigt (Lastenheft) dienen als Testszenario für den Akzeptanztest (Abnahmekriterien) Ziel in XP: 80 User-Stories (+/-20) Erstellung: Release Plan Stories Entwicklung einer Stories zusammenfassen User-Stories unterteilen Entwicklungszeit 0 1 2 3 4 in Wochen

Planning Designing Coding User Stories / Release Planung - Überblick

Planning Designing Coding Kommunikation und Arbeitsphilosophie enge Zusammenarbeit der Teammitglieder (fachlich wie physikalisch) Pair Programming Trainings verhindert Wissensinseln Wissensweitergabe gleichverteiltes Wissen gleichverteilte Arbeitsbelastung (flexibles Load-Balancing) Tägliche Stand Up Meetings (nur ein Meeting mit allen Entwicklern, statt vieler kleiner, meist vor Iterationsplanung) im Stehen -> agil keine Überstunden! (senkt Geist & Motivation) Optimierungen erst am Ende Make it work, make it right, then make it fast. (Kent Beck) Retrospektiven (was war nicht so gut Verbesserungen) Whiteboardeinsatz

Planning Designing Coding Iterative Entwicklung - Fakten 12 Iteration a 1-3 Wochen (konstante Länge) Kern von XP unterstützt das Messen der Projektfortschrittes kick-off: Iterations-Planungs-Meeting (Just-in-Time) Agilität Entwicklungsstrategie: straight forward (most-important-story) Iterations Deadlines haben hohe Priorität Wenn Regeln gebrochen Iterations Planungs Meeting Kundenanforderungen haben Vorrang (Kunde priorisiert User- Stories) ausgewählt aus Release Plan User-Stories (Kunde) Tasks (Entwickler) = Index Karten, die als detailierter Plan für die Iteration dienen Abschätzung der Dauer durch den Entwickler der den Task bearb.

Planning Designing Coding Iterative Entwicklung - Überblick

Planning Designing Coding Tobias Giese Design oberste Maxime: Einfachheit Keep things as simple as possible as long as possible by never adding functionality before it is scheduled. (Kent Beck, Extreme Programming Explained) einheitlicher Coding Style (Klassen-/Methodenbezeichner) Class Responsebilities Collaboration = einheitliche Sprache des Teams Cards für den Entwurf Vorteil: alle Teams können den Entwurf mitgestalten ständiges Refactoring (Entfernen von Redundanzen / Funktionalitäten, Designverbesserung) Straight-forward = refactor mercilessly

Planning Designing Coding Coding laufender Kundenkontakt (Teil von XP) Kunde verantwortlich für User-Stories Verfeinerung der User-Stories Programmer Tasks 1.Schritt: Programmierung der Unit Tests Fixierung der Anforderungen im Test keine Mißverständnisse (ausführbare Spezifikation) sofortiges Feedback (wann bin ich fertig?) besseres, einfacheres Design (Test-Driven-Development) 2. Schritt: Programmierung des Codes Sequentielle Integration in das Code-Repository (single threaded) nur jeweils ein Developer-Pair darf Code einchecken (lock) alle paar Stunden jeder Developer arbeitet an akt. Version

Planning Designing Coding Pair Programming paarweises Arbeiten an Design und Code minütlich frühe Fehlererkennung höherer Produktivität höherer Spaßfaktor starker Informationsaustausch Paare wechseln stündlich doppelter Personaleinsatz Zwang zur Kommunikation Absolute Teamfähigkeit ist Vorraussetzung

Planning Designing Coding Kunde entwirft Testdaten Eckstein von XP: automatische Unit Tests Testen aller Klassen Tests first zusammen mit Code ins Repository zeitaufwendig (spart aber aufwendiges Bugfixing am Ende) beweisen die volle Funktionsfähigkeit des Releases Collective Code Ownership wird ermöglicht unterstützen Refactoring Test muss ohne Fehler durchlaufen Regressions- und Validierungstests Ziel jederzeit muss eine lauffähige Version vorliegen Synchronisation Code Tests (akt. Version werden benötigt)

Planning Designing Coding Akzeptanztest für jede Iteration (aus User-Stories) beweist das die vom Kunden gewünschten Anforderungen (diese User-Story) funktionieren und er das Softwareprodukt akzeptiert simuliert den Einsatz beim Kunden findet in der Firma statt automatisiert für viele Tests während der Entwicklung Ergebnisse gehen an den Kunden Review & priorisieren von Bugs und an die Developer erfolgreicher Akzeptanztest == User-Story komplett implementiert

Management von XP-Teams Akzeptierte Verantwortung keine Vorschriften seitens der Manager an die XP-Teams Permanente IST-Analyse durch Metriken zeigen Fortschritt des Teams oder die noch zu lösenden Probleme erkennen wo Hilfe notwendig ist Konstante Entwicklungsgeschwindigkeit keine Überstunden bei Terminproblemen Team den Rücken freihalten

Planning Designing Coding Extreme Rules in a nutshell (XP-Regeln) 1. iteratives und evolutionäres Vorgehen 2. permanentes Testen (Code + Test) 3. Just-in-Time Entwicklung (nur das aktuelle, nur das nötigste) 4. Refactoring Loslassen von alten Ideen/Entwürfen 5. Retrospektiven Verbesserung des Entwicklungsprozesses 6. kleine Releases frühes Feedback flexible Anforderungen 7. Kommunikation & Synchronisierung 8. Pair Programming 9. Collective Code Ownership einheitliche Codebasis 10.einfaches Design 11. starke Kundenorientierung (User-Stories / Testszenarien)

Fragen? Tobias Giese Antworten! Vielen Dank für ihre Aufmerksamkeit! Tobias Giese Kontakt: tobias.giese@gmx.de Unterlagen: http://www.tobias-giese.de