(und was wir davon lernen können!)



Ähnliche Dokumente
Agile Softwareprozess-Modelle


Extreme Programming: Überblick

Gelebtes Scrum. Weg vom Management hin zur Führung

Statuten in leichter Sprache

Wir machen neue Politik für Baden-Württemberg

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

Studio d A2-05 Medien über Medien sprechen

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

Agile Software Development

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

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

Welche Bereiche gibt es auf der Internetseite vom Bundes-Aufsichtsamt für Flugsicherung?

Anleitung über den Umgang mit Schildern

Erfahrungen mit Hartz IV- Empfängern

* Leichte Sprache * Leichte Sprache * Leichte Sprache *

Papa - was ist American Dream?

Ein Vorwort, das Sie lesen müssen!

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

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Alle gehören dazu. Vorwort

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

Was meinen die Leute eigentlich mit: Grexit?

Der kleine große Unterschied

Dokumentenverwaltung im Internet

Was ist Sozial-Raum-Orientierung?

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Workshop. Zeitmanagement Hamburg, 24. November 2004

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Darum geht es in diesem Heft

1. Was ihr in dieser Anleitung

Punkt 1 bis 11: -Anmeldung bei Schlecker und 1-8 -Herunterladen der Software

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Das Leitbild vom Verein WIR

A Lösungen zu Einführungsaufgaben zu QueueTraffic

Der Gabelstapler: Wie? Was? Wer? Wo?

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Neue Arbeitswelten Bürokultur der Zukunft

Konzentration auf das. Wesentliche.

Offen für Neues. Glas im Innenbereich.

Die richtigen Partner finden, Ressourcen finden und zusammenführen

Das Freiwillige Soziale Jahr. Der Bundes-Freiwilligen-Dienst

Antrag für ein Schlichtungs-Verfahren

Professionelle Seminare im Bereich MS-Office

DIE IEDLE VON CATAN THEMEN-SET ZUM ARTENSPIE FÜR ZWEI SPIELER WIND & WETTER. Stefan Strohschneider Stephan Leinhäuser

Was ist das Budget für Arbeit?

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

ZuuL - Entwicklung eines Adventures

Qualitätsbereich. Mahlzeiten und Essen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

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

Woche 1: Was ist NLP? Die Geschichte des NLP.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Rock-Band. Einleitung. Scratch. In diesem Projekt lernst du, wie du deine eigenen Musikinstrumente programmieren kannst! Activity Checklist

Projektmanagement Vorlesung 12/ 13

Nachts in der Stadt. Andrea Behnke: Wenn es Nacht wird Persen Verlag

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Erfolg beginnt im Kopf

Versetzungsgefahr als ultimative Chance. ein vortrag für versetzungsgefährdete

Hohe Kontraste zwischen Himmel und Landschaft abmildern

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Installation der Eicon Diva PCI Karte unter Windows XP

Erstellen von x-y-diagrammen in OpenOffice.calc

VibonoCoaching Brief -No. 18

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Studienkolleg der TU- Berlin

AutoCAD Dienstprogramm zur Lizenzübertragung

Komplexität und der Dreischritt zur Einfachheit Dieter Brandes und Nils Brandes, Institut für Einfachheit

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

Grundlagen der Theoretischen Informatik, SoSe 2008

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

Die Invaliden-Versicherung ändert sich

Anita Breitner- Käser Homepage: regenbogen.geisenfeld.de E- Mail:

Blog Camp Onlinekurs

Softwareentwicklung aus Sicht des Gehirns

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Was ich als Bürgermeister für Lübbecke tun möchte

Teilnahme-Vertrag. Der Teilnahme-Vertrag gilt zwischen. dem Berufs-Bildungs-Werk. und Ihnen. Ihr Geburtsdatum: Ihre Telefon-Nummer:

SMS/ MMS Multimedia Center

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Nina. bei der Hörgeräte-Akustikerin. Musterexemplar

Lehrer: Einschreibemethoden

Kreativ visualisieren

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Jeder ist ein Teil vom Ganzen Inklusion ändert den Blick

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

Wie Sie mit Mastern arbeiten

Kanton St.Gallen Amt für Soziales. Kantonaler Bericht zum Gesetz für Menschen mit Behinderung. in leichter Sprache. Departement des Innern

Arbeiten mit UMLed und Delphi

SAP PM Netzwerk Zürich, November 2015

Scaling Scrum Nexus professionell umsetzen

Beurteilung Feuerdrachen Meridian Qigong mit Master Wu,

Denken und Träumen - Selbstreflexion zum Jahreswechsel

Business Page auf Facebook

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Transkript:

extreme Programming (und was wir davon lernen können!)

extreme Programming Eine Einführung - basierend auf Kent Beck: extreme Programming explained Addison Wesley (2000) http://www.extremeprogramming.org

Was ist XP? extreme Programming (XP) ist sowohl Programmiermethode als auch Philosophie

Was ist neu an XP? XP nimmt altbekannte, erprobte, selbstverständliche Programmierstrategien und dreht alle Regler auf das Maximum - alles was gut ist, wird ins Extrem gebracht! XP sorgt für das beste Zusammenspiel zwischen diesen Techniken

Was ist gut? Code review ist gut, also programmieren wir zu zweit Testen ist gut, also testen wir immer (unit testing), auch die Kunden (Funktionstests) Design ist wichtig, also machen wir es ständig (refactoring) Einfachheit ist gut, also machen wir das einfachste, was geht (was gerade so die Tests erfüllt) Architektur ist wichtig, also arbeiten alle ständig an der Gesamtarchitektur (Metapher!) Integration ist wichtig, also wird das Gesamtsystem täglich gebaut Kurze Iterationszyklen sind gut, also machen wir sie so kurz wie möglich (Sekunden-Minuten-Stunden)

Was haben wir davon? Programmierer: Man arbeitet stets an wichtigem Code Man ist nicht allein Man kann wirklich etwas beitragen Man entscheidet qualifiziert Kunden und Manager: Man kriegt das meiste für sein Geld Man sieht den Fortschritt Man kann ein Projekt auch später noch umlenken

Autofahren lernen Das Schwierige am Auto fahren ist nicht, das Auto in die richtige Richtung zu bringen. Richtig Auto fahren heißt, stets aufmerksam zu sein, und immer wieder ein wenig zu korrigieren, so dass man auf der Straße bleibt.

Werte XP wird durch vier Werte gesteuert: Kommunikation Schlichtheit Feedback Mut Alle diese Werte werden durch die Regeln und Praktiken des XP unterstützt

Kommunikation Probleme entstehen meistens, wenn die Kommunikation im Team oder mit dem Kunden (Tutor!) nicht funktioniert Dagegen helfen Unit testing, programmieren zu zweit, Aufgabenabschätzung Ein Coach passt auf, dass die Kommunikation nicht abbricht

Schlichtheit Was ist das einfachste, was funktionieren könnte? Das ist schwierig! Nicht zuviel vorausdenken (Ängste!) Wette: Lieber billig etwas Einfaches umsetzen und das Komplizierte dadurch teurer machen, und darauf spekulieren, dass man das Komplizierte nie braucht.

Feedback Optimismus ist Mist Jeder muss jederzeit wissen, was das System kann Kunden müssen wissen, ob sie sinnvolle Stories bringen Das System soll so schnell wie möglich in Produktion

Mut Mut zur Entscheidung: Wenn etwas fundamental verbockt ist, dann muss es geändert werden! Mut zum Fortwerfen von Code! Ausprobieren: Mögliche Implementationen einfach mal anfangen, und das Beste weitermachen!

Grundlegende Prinzipien Schnelles Feedback Lernen geht nur mit direktem feedback Von Einfachheit ausgehen Alles ist einfach lösbar (98% - 2%) Inkrementelle Änderungen Kleine Schritte gehen besser Embrace Change Optionen offenhalten, dringende Probleme lösen Qualitätsarbeit Niemand möchte schlecht arbeiten (1 oder 1+)

Regeln und Praktiken Planung Projektplanung und Teamplanung Coding Das wichtigste überhaupt! Design Meta-Coding Testing Programmierer lieben Tests

Planung Release plan (the planning game) Drei Phasen Exploration Was soll das System können? Commitment Was werden wir als nächstes machen? Steer Sorge dafür, dass das auch passiert Zwei Spieler Business (B): Management, Kunden Development (D): Techniker, Programmierer

TPG: Explorationsphase B: Stories schreiben (Karteikarten) was soll das System können? D: Aufwand für jede Story abschätzen (in Ideal Engineering Time ) B: Stories aufteilen Falls D Aufwand nicht schätzen kann oder Teile verschieden wichtig

TPG: Commitment Sort by value (B) Absolut wichtig - wertvoll - nice to have Sort by risk (D) Präzise geschätzt - ganz OK zu schätzen - kann nicht geschätzt werden Set velocity (D) Setze IET/Monat fest Choose scope Business wählt Karten aus

TPG: Steering Phase (I) Iteration (alle 1-3 Wochen) B wählt für diesen Zeitraum Stories aus Erste Iteration muss ein lauffähiges System hervorbringen Recovery D stellt fest, dass die Velocity falsch gewählt wurde und bitte B um eine neue Auswahl der Stories mit der neuen Geschwindigkeit

TPG: Steering Phase (II) New story B stellt fest, dass noch eine neue Story benötigt wird, D schätzt den Aufwand und B darf austauschen Reestimate Wenn D feststellt, dass der Gesamtplan nicht mehr realistisch ist, dann werden alle verbliebenen Stories und die Velocity neu eingeschätzt.

Iterationsplanung Jede Iteration wird von D geplant. Der Aufbau ist wie bei der Gesamtplanung Exploration Commitment Steering

Exploration (Iterationsphase) Aufgaben (tasks) aufschreiben Kleiner als stories Eine task kann mehrere Stories bedienen Eine task kann gar keine Story abdecken Tasks zusammenlegen und trennen Mehrtägige Aufgaben aufteilen Kurze (1h) Aufgaben kombinieren

Commitment Phase (It.) Aufgabe annehmen Aufgabe einschätzen Wieviele IED (ideal engineering days)? Darf höchstens ein paar Tage sein Load factor setzen Gemessen: Wieviele IED/Tag? Austarieren Haben alle gleich viel Arbeit? Haben wir zuviel Arbeit?

Steering phase (It.) Implementiere eine Aufgabe Suche einen Partner, schreibe die Tests, sorge dafür, dass sie laufen, integriere Fortschritt notieren Alle 2-3 Tage: Wie lange schon und noch? Recovery Task o. story reduzieren oder weglassen Story überprüfen Funktionstests schreiben und durchführen

Weitere Planungsregeln Stehendes Meeting jeden Morgen Leute austauschen Paare wechseln, jeder soll möglichst viel vom Code kennen XP anpassen, wenn es nötig wird Die Regeln sollen helfen. Wenn sie es nicht tun, dann muss man sie ändern! Aber: Das Team muss darüber entscheiden, man kann sich nicht einfach ausklinken

Coding Pair programming Zwei Leute an einem Computer produzieren nicht so viel Code wie zwei Leute an zwei Computern, dafür aber mit weniger Fehlern Fliegende Wechsel an Keyboard & Maus! Man muss sich daran gewöhnen Fördert Kommunikation, Schlichtheit und Mut Achtung: Beide sollten gleich gut sein!

Coding Zuerst die Tests schreiben Fördert Schlichtheit und Feedback Spezifiziert die Anforderungen Coding standards Wichtig für refactoring, gemeinsames Lesen und Verstehen, CVS Optimierung kann warten Nicht raten, messen! Make it work - make it right - make it fast. Keep it simple (KISS)

Integration Es integriert immer nur ein Paar gleichzeitig Es wird so oft wie möglich integriert Findet Kompatibilitätsprobleme so schnell wie möglich Der Code gehört allen Jeder muß Fehler beheben Es gibt keinen Chefarchitekten Die Tests geben die Sicherheit!

No overtime Eine Woche hat 40 Stunden. Punkt. Überstunden sind verboten Projects that require overtime to be finished will be late no matter what you do Natürlich kann man Ausnahmen machen. Aber nicht ständig!

On-site customer Jemand, der das System benutzen wird, muss immer persönlich erreichbar sein - für Fragen Dadurch wird das System schneller fertig und besser Das lohnt sich!

Design EINFACH! Alle Tests laufen Keine Programmlogik ist doppelt Auf parallele Klassenhierarchien achten So wenig Klassen und Methoden wie möglich Keine Features auf Vorrat programmieren (YAGNI!) Design und Programmieren gleichzeitig!

Refactoring Kann das bestehende Design geändert werden, so dass 1. die Funktionalität erhalten bleibt? 2. alle Tests immer noch laufen? 3. das Programm einfacher wird? Das kann mehr Arbeit sein Beispiel: Code duplizieren schreit nach refactoring

Metapher Das Team braucht einen Weg, über das Gesamtsystem zu sprechen. Dafür braucht es eine gut gewählte Metapher Beispiele: Fließband Schreibtisch Tabellenkalkulation

CRC Cards CRC = Class, Responsibilities, Collaboration Karteikarten Damit wird herumgeschoben Klassenname Aufgaben......... Helfer.........

Tests Unit tests Vom Programmierer geschrieben Nur wenn alle unit tests laufen, darf es eine release geben You break it, you fix it Functional/Acceptance tests Vom Kunden geschrieben Bug finden heißt Test schreiben Dann ist es einfacher ihn zu beheben

Überblick The planning game Small releases Metapher Einfaches Design Testen Refactoring Pair programming Collective Ownership Kontinuierliche Integration 40-Stunden-Woche On-site customer Coding standards

Warum funktioniert es? Ein Beispiel: Einfaches Design (nur für heute planen) Refactoring erlaubt einfache Änderungen Es gibt eine Metapher, so dass zukünftige Änderungen absehbar sind Programmieren zu zweit, damit es einfach, nicht dumm wird.

Und warum noch? Noch ein Beispiel: Pair programming Coding standards vermeiden blöde Streits Alle sind frisch und ausgeruht Erst werden Tests geschrieben, damit klar ist, was gemacht werden muss Es gibt eine gemeinsame Metapher, so dass man besser miteinander reden kann Das Design ist so einfach, dass beide es verstehen

Und die 40-Stunden Woche? Das Planning Game sorgt für sinnvolle Aufgaben und produktive Arbeit Durch Planen und Testen werden hässliche Überraschungen vermieden XP lässt einen so schnell programmieren, dass das Projekt sowieso nicht schneller laufen kann Und außerdem muß man ausgeschlafen sein!

Fazit XP ist gut und schwierig XP produziert gute Software Man kann nicht immer XP machen Man möchte in Firmen arbeiten, die XP praktizieren Können wir XP für Torfu benutzen?