Extremes Programmieren



Ähnliche Dokumente
Extreme Programming ACM/GI Regionalgruppe Bremen,

Extremes Programmieren

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Agile Softwareprozess-Modelle

Agile Software Development

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

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


Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

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

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

Statuten in leichter Sprache

Software entwickeln mit extreme Programming

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

Nicht über uns ohne uns

Lösungen zum Test objektorientierter Software

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann

Das Persönliche Budget in verständlicher Sprache

Neu in Führung. Die k.brio Coaching-Begleitung für Führungskräfte und ihre Teams. k.brio coaching GbR. Grobkonzept. offen gesagt: gut beraten.

mit attraktiven visuellen Inhalten

Was wir gut und wichtig finden

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

Checkliste. zur Gesprächsvorbereitung Mitarbeitergespräch. Aktivität / Frage Handlungsbedarf erledigt

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Auftrag zum Fondswechsel

Pflegende Angehörige Online Ihre Plattform im Internet

Professionelle Seminare im Bereich MS-Office

FRONT CRAFT.

Alle gehören dazu. Vorwort

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

Software Systems Engineering

Die Post hat eine Umfrage gemacht

Agile Systemadministration (ASA)

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

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

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Finanzierung für den Mittelstand. Leitbild. der Abbildung schankz

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

ZuuL - Entwicklung eines Adventures

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

Landes-Arbeits-Gemeinschaft Gemeinsam Leben Gemeinsam Lernen Rheinland-Pfalz e.v.

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

Liebe Interessierte an technischen Lösungen für die Sicherheit zu Hause,

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

ELO Print&Archive so nutzen Sie es richtig

Konzentration auf das. Wesentliche.

Manifest für ein neues Arbeiten

Sehr geehrter Herr Pfarrer, sehr geehrte pastorale Mitarbeiterin, sehr geehrter pastoraler Mitarbeiter!

Einführung und Motivation

Leichte-Sprache-Bilder

Was meinen die Leute eigentlich mit: Grexit?

Fortgeschrittenes Programmieren mit Java. Test Driven Development

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

Datenexport aus JS - Software

Die Industrie- und Handelskammer arbeitet dafür, dass Menschen überall mit machen können

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

Hochschule Darmstadt Fachbereich Informatik

Testen im Software- Entwicklungsprozess

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Dr. Kraus & Partner Unser Angebot zu Internationales Change-Management für Führungskräfte

Qualitätsmanagement mit Continuous Integration Untersuchung anhand einer Machbarkeitsstudie in der Praxis. Abschlußpräsentation zur Studienarbeit

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Extreme Programming: Überblick

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Checkliste Webauftritt

Was ist PZB? Personen-zentrierte Begleitung in einfacher Sprache erklärt

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Die vorliegende Arbeitshilfe befasst sich mit den Anforderungen an qualitätsrelevante

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

Kampagnen mit Maildog

SDD System Design Document

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Online bezahlen mit e-rechnung

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Benutzerhandbuch - Elterliche Kontrolle

Letzte Krankenkassen streichen Zusatzbeiträge

MARKUS WASER THE POWER IS IN YOU FACT SHEET IHR WEG ZUM PERSÖNLICHEN ERFOLG

Erklärung zu den Internet-Seiten von

Um Ihre Ziele durchzusetzen! Um Beziehungen zu knüpfen und zu pflegen! Um in Begegnungen mit anderen Ihre Selbstachtung zu wahren!

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

Leitbild. für Jedermensch in leicht verständlicher Sprache

REGELN REICHTUMS RICHARD TEMPLAR AUTOR DES INTERNATIONALEN BESTSELLERS DIE REGELN DES LEBENS

Projektmanagement in der Spieleentwicklung

Anleitung für die Umstellung auf das plus Verfahren mit manueller und optischer Übertragung

Der Kopf ist rund, damit das Denken die Richtung

Das Leitbild vom Verein WIR

ANLEITUNG FÜR EINKAUF IM ECHT WEBSHOP Seite 1 von 5

Einführung von DMS in 5 Schritten

T1 - Fundamentaler Testprozess

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von:

Eine Anwendung mit InstantRails 1.7

Fragebogen: Abschlussbefragung

B12-TOUCH VERSION 3.5

Kundenbefragung als Vehikel zur Optimierung des Customer Service Feedback des Kunden nutzen zur Verbesserung der eigenen Prozesse

Bernadette Büsgen HR-Consulting

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Transkript:

Extremes Programmieren Übersicht, Demonstration, Erfahrungen ACM/GI Regionalgruppe Hamburg, 16.3.2001 Frank Westphal unabhängiger Berater westphal@acm.org http://www.frankwestphal.de Tammo Freese OFFIS, Oldenburg freese@acm.org Gliederung Motivation Programmieren Demo: Programmierepisode Planen Demo: Planungsspiel Erfahrungen

Motivation Softwareerstellung im Dialog Risiken in Softwareprojekten Agile Prozesse Wertesystem Ökonomisches Modell Softwareerstellung im Dialog Industrieller Fertigungsprozess für die Softwareerstellung ungeeignet Softwareerstellung als Dialog zwischen Kunden und Entwicklung Neue Paradigmen: Cluetrain Manifesto Besinnung auf das Wesentliche Wie würden wir programmieren, wenn wir genug Zeit hätten?

Kommt ein Aufstand der Programmierer? Wir wollen Qualität abliefern Wir wollen wissen, was der Kunde in welcher Reihenfolge entwickelt haben möchte Wir wollen Unterstützung von Kollegen und Kunden bekommen, wenn wir sie brauchen Wir wollen unsere eigenen Abschätzungen machen und sie aktualisieren dürfen Wir wollen Verantwortlichkeit übernehmen und sie nicht zugewiesen bekommen Kommt ein Aufstand der Kunden? Kunden wollen wissen, was bis wann und zu welchen Kosten erreicht werden kann Kunden wollen aus jedem Personentag den maximalen Wert ziehen Kunden wollen den Projektfortschritt sehen Kunden wollen ihre Meinung ändern können Kunden wollen Planänderungen so früh wie möglich erfahren, Kunden sollten jederzeit aussteigen können Kunden wollen nicht belogen werden

Agile Prozesse Menschen und Zusammenarbeit vor Prozessen und Werkzeugen Funktionierende Software vor umfassender Dokumentation Zusammenarbeit mit dem Kunden vor vertraglicher Verhandlung Reaktion auf Veränderung vor Einhaltung eines Plans Extreme Programming Extreme Programming ist ein leichtgewichtiger, hochdisziplinierter Software Entwicklungsprozess für kleine Teams, die während der Entwicklung mit vagen und sich rasch ändernden Anforderungen konfrontiert werden.

Wertesystem Im Kern beruht XP auf vier Werten: Kommunikation Einfachheit Feedback Mut XP erfordert Disziplin und Prinzipientreue Ökonomisches Modell Langsamer Geld ausgeben Schneller Einnahmen erzielen Produktive Lebensdauer des Projekts verlängern Abkehr vom Festpreisprojekt

Programmieren Programmieren in Paaren Komponententests Fortlaufende Integration Einfaches Design Refaktorisieren Gemeinsame Verantwortlichkeit Metapher Programmieren in Paaren Keine Zeile Code wird geschrieben, ohne daß zwei Paar Augen auf den Bildschirm gerichtet sind Partner wechseln sich an der Tastatur ab, Programmierpartner rotieren Höhere Codequalität Größere Produktivität (mehr Spaß!) Bessere Wissensverbreitung

Komponententests Eine Funktion existiert solange nicht, bis sie durch einen automatisierten Test abgeprüft wird Tests werden gesammelt, gepflegt und müssen bei jeder Integration zu 100% laufen Selbsttestender Code mittels Testing Framework xunit Fortlaufende Integration Mehrmalige tägliche Integration Zu jedem Zeitpunkt integriert maximal ein Programmierduo, garantiert durch Integrationsrechner Integrationstoken Versionsverwaltung

Einfaches Design Sobald wir etwas tun, das wir später vielleicht benötigen, beschäftigen wir uns nicht mehr mit dem, was wir tatsächlich benötigen "What s the simplest thing that could possibly work" "You ain t gonna need it" Refaktorisieren (1) "Nobody gets things right first time" Evolutionäre Designstrategie Verbessern des Designs von Code, nachdem er geschrieben wurde ohne dessen Verhalten zu ändern Werkzeug: Tests und Refactoringbrowser Zwei Hüte: Refaktorisieren, neue Funktion

Refaktorisieren (2) "Listen to the code" Code, der schlecht riecht: Lange Funktionen Duplizierte Logik Kommentare switch Ketten, verschachtelte if then else Code, der die Intention des Programmierers nicht ausdrückt Gemeinsame Verantwortlichkeit Der Code gehört dem Team Natürliches Arbeiten mit Objekten führt uns durch viele Klassen Lassen wir uns einfach vom Code führen Jedes Paar soll jede Möglichkeit zur Codeverbesserung jederzeit wahrnehmen Das Team folgt gemeinsamen Programmierstandards

Metapher System von Namen Verbessert unser Verständnis des Systems Leitet das Team in der Architektur (Generative Metapher) Beispiele: Geschichte von fünf Klassen eshop (Warenkorb, zur Kasse gehen) Lines/Bins/Parts/Stations (Datenflußmaschine) Programmierepisode 1. Wir überlegen uns eine Funktion 2. Wir schreiben einen Test dafür 3. Wir refaktorisieren den Code in Form 4. Wir implementieren die Funktion 5. Wir lassen die Test Suite laufen 6. Wir refaktorisieren unseren Code 7. Wir sind fertig, wenn alle Tests erfüllt sind

Planen Kunde vor Ort User Stories Funktionale Abnahmetests Release /Iterationsplanung Trennung technischer und geschäftlicher Verantwortung User Stories, Kunde, Abnahmetests Anforderungsdefinition ist ein Dialog, kein Dokument Anforderungen erzählt als User Stories passen jeweils auf eine Karteikarte werden zur rechten Zeit im Dialog verfeinert validiert durch Abnahmetests des Kunden Wenn wir unseren Kunden nicht direkt verfügbar haben, müssen wir raten

Release-/ Iterationsplanung Kurze Iterationen (1..3 Wochen) Kurze Releasezyklen (1..3 Monate) Vier Variablen: Zeit, Umfang, Ressourcen, Qualität Trennung technischer und geschäftlicher Verantwortung Kunde trifft geschäftliche Entscheidungen Entwickler treffen technische Entscheidungen Planungsspiel Spielelemente: Stories Spieler: Kunde (K), Entwicklung (E) Spielzüge: 1. Storycard schreiben (K) 2. Schwierigkeit der User Story einschätzen (E) 3. Stories nach Geschäftswert sortieren (K) 4. Teamgeschwindigkeit bestimmen (E) 5. Umfang für die Version festlegen (K)

Erfahrungen Zufriedene Kunden Teamgeist, Spaß zurückentdeckt Langlebige Software XP ist nicht für jeden XP ist nicht einfach Fazit Softwareentwicklung soll Spaß machen Tut sie das nicht, ist der Prozess defekt Es muss nicht XP sein Oft kann es nicht XP sein Menschen müssen ihren eigenen Prozess akzeptieren Maßschneidern Sie Ihren Prozess und verbessern sie ihn kontinuierlich

Informationen Kent Beck: Extreme Programming Martin Fowler: Refactoring www.extremeprogramming.org www.xprogramming.com xp.c2.com www.yahoogroups.com/group/xp forum XPeditionstraining XP Workshop 19. 20. April Gastwerk Hotel www.xpeditionstraining.de