Extremes Programmieren



Ähnliche Dokumente
Extreme Programming ACM/GI Regionalgruppe Bremen,

Extremes Programmieren

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

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

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann


Nicht über uns ohne uns

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

Das Persönliche Budget in verständlicher Sprache

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Statuten in leichter Sprache

Die Post hat eine Umfrage gemacht

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

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.

Software entwickeln mit extreme Programming

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

mit attraktiven visuellen Inhalten

Was wir gut und wichtig finden

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

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

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

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

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

Lösungen zum Test objektorientierter Software

Hinweise in Leichter Sprache zum Vertrag über das Betreute Wohnen

FRONT CRAFT.

Hochschule Darmstadt Fachbereich Informatik

Alle gehören dazu. Vorwort

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

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

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

Auftrag zum Fondswechsel

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

Professionelle Seminare im Bereich MS-Office

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

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

ELO Print&Archive so nutzen Sie es richtig

Manifest für ein neues Arbeiten

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

Einführung und Motivation

Was meinen die Leute eigentlich mit: Grexit?

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

Erklärung zu den Internet-Seiten von

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

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

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Das Leitbild vom Verein WIR

Datenexport aus JS - Software

Fortgeschrittenes Programmieren mit Java. Test Driven Development

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

Pflegende Angehörige Online Ihre Plattform im Internet

Bernadette Büsgen HR-Consulting

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

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

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

Tevalo Handbuch v 1.1 vom

Information zum Projekt. Mitwirkung von Menschen mit Demenz in ihrem Stadtteil oder Quartier

Checkliste Webauftritt

Zeichen bei Zahlen entschlüsseln

ZuuL - Entwicklung eines Adventures

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Kampagnen mit Maildog

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

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

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

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

Auf Diät Wie Sie Ihre Entwicklung verschlanken. Job Merkblätter. Einmal drucken pro Team

Leichte-Sprache-Bilder

Konzentration auf das. Wesentliche.

Oracle APEX Installer

5 Punkte Anleitung «Online Shop»

AUFBAUPROGRAMME YOU ONLY LIVE ONCE, BUT IF YOU DO IT RIGHT, ONCE IS ENOUGH.

Online bezahlen mit e-rechnung

Orientierungstest für angehende Industriemeister. Vorbereitungskurs Mathematik

Letzte Krankenkassen streichen Zusatzbeiträge

Software Systems Engineering

Benutzerhandbuch - Elterliche Kontrolle

1. Weniger Steuern zahlen

B12-TOUCH VERSION 3.5

Das Event-Management-Tool

Leit-Bild der Sonnenhofschule

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Projektmanagement in der Spieleentwicklung

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

Fragebogen: Abschlussbefragung

ARBEITNEHMERÜBERLASSUNG. Zeitarbeit? Leiharbeit?

Schuljahreswechsel im Schul-Webportal

3 Wie bekommen Sie Passwortlevel 3 und einen Installateurscode?

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Im Rahmen seiner Beratertätigkeit veröffentlicht er Artikel und hält Vorträge und Schulungen zu diesen und weiteren Themen.

Wie Sie mit Mastern arbeiten

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Transkript:

Extremes Programmieren Übersicht, Demonstration, Erfahrungen ACM/GI Regionalgruppe Hamburg, 19.1.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 Leichtgewichtige Prozesse Historie von XP Ökonomisches Modell Wertesystem Softwareerstellung im Dialog Industrieller Fertigungsprozess für die Softwareerstellung ungeeignet Softwareerstellung als Dialog zwischen Kunden und Entwicklung Neue Paradigmen: Cluetrain Manifesto Zurückbesinnung auf das Wesentliche Wie würden wir programmieren, wenn wir genug Zeit hätten?

XP, der 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 Risiken in Softwareprojekten Terminverzögerungen Projektabbruch Das System wird unrentabel Fehlerrate Geschäftsziel falsch verstanden Geschäftsziel ändert sich Personalwechsel

XP, der 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 Leichtgewichtige Prozesse Kommunikation ersetzt Papier Beschränkung auf das Wesentliche Codezentriert Auf Menschen fokussiert Dokumentation beschränkt auf das, was wir nicht im Code ausdrücken können Beispiele: ASD, Crystal Clear, FDD, SCRUM, Software Expedition, XP

Historie von XP Geistige Väter: Kent Beck Ward Cunningham Ron Jeffries Martin Fowler Pilotprojekt: C3, Chrysler Payroll (1997 2000) Wertesystem Im Kern beruht XP auf vier Werten: Kommunikation Einfachheit Feedback Mut XP benötigt Disziplin und Prinzipientreue

Ökonomisches Modell Langsamer Geld ausgeben Schneller Einnahmen erzielen Produktive Lebensdauer des Projekts verlängern 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 Wie oft möchten Sie 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 http://www.extremeprogramming.org http://www.xprogramming.com http://xp.c2.com http://www.egroups.com/group/xp forum