www.wikidata.de-de.nina.az
Extreme Programming XP auch Extremprogrammierung ist eine Methode die das Losen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst Diese Vorgehensweise definiert ein Vorgehensmodell der Softwaretechnik das sich den Anforderungen des Kunden in kleinen Schritten annahert Inhaltsverzeichnis 1 Grundlagen 2 Nutzen 2 1 Kundensicht 2 2 Programmierersicht 2 3 Projektsicht 2 4 Betriebswirtschaftliche Sicht 3 Vorgehen 3 1 Aufbauorganisation 3 2 Anforderungsmanagement 3 3 Planung 3 3 1 User Storys 3 3 2 Aufwandsabschatzung 3 4 Entwicklung und Abschluss 3 5 Abgrenzung von herkommlichem Vorgehen 4 Bestandteile 4 1 Werte 4 2 Prinzipien 4 3 Praktiken 4 3 1 Traditionelle Praktiken 4 3 2 Evolutionare Praktiken 4 3 2 1 Hauptpraktiken 4 3 2 2 Begleitpraktiken 4 4 Flexibilitatsgrad vs Steifheit 5 Ursprung und Abgrenzung 5 1 Traditionelle Vorgehensmodelle 5 2 Geschichte von XP 5 3 Andere agile Vorgehensmodelle 6 XP in Projekten 7 Kritik 7 1 Das Alles oder Nichts Prinzip 7 2 Bewegliche Anforderungen 7 3 Der ideale Kunde 7 4 Der ideale Programmierer 7 5 Beschrankte Team und damit Projektgrosse 7 6 Fehlende Eignung fur Festpreisprojekte 7 7 Feste Fertigstellungstermine 7 8 Einsatz in verteilten Umgebungen 7 9 Kritik an einzelnen Praktiken 7 10 Personalpolitik 8 Siehe auch 9 Literatur 10 Weblinks 11 EinzelnachweiseGrundlagen Bearbeiten nbsp XP LebenszyklusXP ist ein durch fortlaufende Iterationen und den Einsatz mehrerer Einzelmethoden strukturierendes Vorgehensmodell XP entstand durch die Synthese verschiedener Disziplinen der Softwareentwicklung und basiert auf in der Praxis bewahrten Methoden auch Best practices genannt XP folgt einem strukturierten Vorgehen und stellt die Teamarbeit Offenheit und stetige Kommunikation zwischen allen Beteiligten in den Vordergrund Kommunikation ist dabei eine Grundsaule Die Methode geht davon aus dass der Kunde die Anforderungen an die zu erstellende Software zu Projektbeginn noch nicht komplett kennt und nicht hinreichend strukturieren kann beziehungsweise dass ein mit der Realisierung betrautes Entwicklerteam nicht uber alle Informationen verfugt um eine verlassliche Aufwandsschatzung uber die notwendige Dauer bis zum Abschluss zu geben Im Laufe eines Projektes andern sich nicht selten Prioritaten und Gewichte Zu Beginn geforderte Funktionen der Software werden moglicherweise in einer anderen Form benotigt oder im Laufe der Zeit sogar komplett hinfallig Bei einer konsequenten Ausrichtung an XP soll die zu erstellende Software schneller bereitgestellt werden sowie eine hohere Softwarequalitat und Zufriedenheit des Kunden als mit traditionellen Ansatzen zu erreichen sein Der Kunde soll ein einsatzbereites Produkt erhalten an dessen Herstellung er aktiv teilgenommen hat Neue Funktionalitaten werden permanent entwickelt integriert und getestet Fur die zu entwickelnden Funktionalitaten werden jeweils die Schritte Risikoanalyse Nutzenanalyse die Bereitstellung einer ersten ausfuhrbaren Version Prototyping und ein Akzeptanztest durchgefuhrt Nutzen BearbeitenNach Vertretern dieses Vorgehensmodells ist XP Risikomanagement Es bejaht das Risiko geht aktiv darauf ein und versucht es zu minimieren Dieser implizite Umgang mit dem Faktor Risiko steht im Gegensatz zu eher expliziten Vorgehensweisen wie der Aufstellung einer Risikoliste 1 Softwareentwicklungsprojekte sind unterschiedlichen Gefahren ausgesetzt fur die Extreme Programming Losungen anbieten soll Kundensicht Bearbeiten Dem Kunden bietet XP gerade durch seine kurzen Entwicklungszyklen jederzeit die Moglichkeit steuernd auf das Projekt einzuwirken Dadurch soll erreicht werden dass sich das Produkt aktuellen Anforderungen anpasst statt uberholten Anforderungen aus einer langst vergangenen Analysephase zu genugen und damit bereits bei Einfuhrung veraltet zu sein Zudem kann der Kunde bereits nach kurzer Zeit ein unvollstandiges aber zumindest funktionstuchtiges Produkt einsetzen Der Kunde ist im besten Fall jederzeit auf demselben aktuellen Informationsstand bezuglich des Projektes wie das Entwicklerteam Ein haufiger Ansatz traditioneller Softwareerstellung ist Vielleicht brauchen wir irgendwann einmal diese oder jene Programmfunktionen auch Feature genannt XP stellt dem gegenuber Lass es vgl auch YAGNI You Ain t Gonna Need It Vor jedem der kurzen Entwicklungsschritte wird zusammen mit dem Kunden genau festgelegt was wirklich sinnvoll ist entwickelt zu werden Die sogenannte Featuritis soll damit vermieden werden Eines der grossten Risiken der Softwareentwicklung ist dass dem Kunden ein Produkt bereitgestellt wird das er in dieser Form nicht mochte XP mochte dem durch standige aktive Einbeziehung des Kunden in den Entwicklungsprozess vorbeugen Er kann sich Zwischenversionen ansehen und direkt Anderungswunsche aussern Um diese Vorteile nutzen zu konnen muss der Kunde im Gegenzug auch eine Reihe von Einschrankungen und Forderungen hinnehmen So fordert XP von ihm dass er wahrend der gesamten Entwicklungszeit mit dem Entwicklungsteam zusammenarbeitet Des Weiteren muss er auf eine formale Festlegung der Projektinhalte Spezifikation verzichten siehe auch Der ideale Kunde Programmierersicht Bearbeiten Es existiert keine strikte Rollentrennung da die Aufgabenverteilung abhangig von Situation und Fahigkeiten geschieht Der allgemeine Wissensaustausch und die stetige Kommunikation beugen einem Wissensmonopol vor Dies soll den Einzelnen entlasten da ansonsten der Druck auf einer Person lastet wenn diese sich als Einzige in einem Modul auskennt Um Unbenutzbarkeit aufgrund von Programmfehlern sowie fehlerhafte Integration einzelner Komponenten zu vermeiden werden bei XP viele und moglichst fruhe Tests angestrebt Jede Komponente besitzt einen Modultest Unit Test in Java beispielsweise mit JUnit Bei Feststellung eines Fehlers in einer Komponente wahrend der Entwicklung wird ein Test entwickelt der diesen lokalisiert Eine tagliche Einbeziehung der einzelnen am Projekt beteiligten Entwickler mit automatischer Ausfuhrung der Tests Regressionstest soll zu einer erheblichen Qualitatssteigerung fuhren Fehler sollen so fruher gefunden werden denn je spater ein Fehler gefunden wird desto teurer ist meist dessen Korrektur Ausserdem soll die testgetriebene Entwicklung zu einem leichter wartbaren Programmcode mit besserem Design fuhren Da die meisten Einzelmethoden gerade auf den Alltag der Programmierer ausgerichtet sind bedeutet XP zugleich auch ein hohes Mass an Herausforderung und ggf Umstellung der Beteiligten Auf diese Aspekte wird ausfuhrlicher im Abschnitt Der ideale Programmierer eingegangen Projektsicht Bearbeiten Dem Projekt bietet XP die Moglichkeit Risiken zu minimieren Unter richtiger Anwendung von XP soll der Kunde Software erhalten deren Umfang ihn nicht uberrascht Das Team soll ferner gegen Ausfall Krankheit Unfall Stellenwechsel Einzelner nicht mehr so anfallig sein Ein ehrlicher Umgang mit dem Kunden soll die Glaubwurdigkeit und Zufriedenheit steigern und die Angst minimieren die unter Umstanden zwischen Kunde Haben die mich verstanden Was werden sie wohl liefern und Entwicklung Was will er eigentlich genau Ob er zufrieden sein wird mit dem was wir liefern vorherrscht Aufwandsabschatzungen werden verlasslicher da sie im Team getroffen und standig einer kritischen Uberprufung Review unterzogen werden Teamgeist wird laut XP gefordert Jedem im Team sollte klar sein dass das Ziel nur als Einheit erreichbar ist Sollte ein Projekt zum Beispiel aus Kostengrunden vorzeitig eingestellt werden besteht durch die regelmassigen Iterationen dennoch ein zumeist einsatzfahiges Produkt In vielen Projekten gelingt es nicht das Produkt in der gewunschten Zeit im gewunschten Umfang und mit den geplanten Ressourcen fertigzustellen In XP soll nur das verwirklicht werden was tatsachlich einen Nutzen fur den Kunden hat Durch standigen Austausch mit dem Kunden sowie Prioritatsanalysen sollen die unbedingt zu erstellenden Funktionen identifiziert werden Dabei sollte mit den Funktionen begonnen werden die den grossten Nutzen haben und das grosste technische Risiko beinhalten Betriebswirtschaftliche Sicht Bearbeiten Extreme Programming stellt aus wirtschaftswissenschaftlicher Sicht eine Form der Organisation dar die direkt die Prozesse der Wertschopfung beschreibt In den Wirtschaftswissenschaften werden zur Bewertung von Extreme Programming auch Erkenntnisse anderer Sozialwissenschaften insbesondere der Soziologie genutzt Dem Risikomanagement dient diese Alternative vor allem zur Steuerung von Risiken Wie bei vielen Prozessen der Wertschopfung sind besonders in der Softwareentwicklung Risiken meist operative Risiken Die Wertschopfung ist ineffektiv wenn die Kundenwunsche nicht getroffen und gesteckte Ziele somit verfehlt wurden Die Wertschopfung ist ineffizient wenn zum Erreichen des Ergebnisses ein zu hoher Aufwand entstand Risikoverminderung und dadurch Effektivitat und Effizienz soll bei Extreme Programming durch die Art des Umgangs mit Fehlern mit Mitarbeitern und mit Kunden erreicht werden Kompensation von Krankheitsausfallen Kundennahe Entwicklung Weniger Fehler im ErgebnisEin moglichst genaues Erkennen von Risiken durch das Verfahren selbst soll uber angepasste Aufwandsschatzungen eine Bewertung des zu akzeptierenden Risikos ermoglichen Extreme Programming kann dagegen eine Risikoverlagerung erschweren Aus der Sicht des Risikomanagements ist Extreme Programming also nur eine Moglichkeit mit Risiken umzugehen und zwar eine Moglichkeit die Vor und Nachteile besitzt Das Personalwesen in Unternehmen betrachtet Extreme Programming insbesondere im Hinblick auf seine Auswirkungen auf die Mitarbeiterzufriedenheit Extreme Programming soll dabei bewusst oder unbewusst zum kooperativen Lernen beitragen Fur das Personalwesen ist dieses Verfahren also besonders aus Sicht der Personalentwicklung interessant Durch hohere Mitarbeiterzufriedenheit und durch die Vermeidung von Uberstunden soll die gesamte Produktivitat erhoht werden Die Praktik des Pair Programming lasst allerdings rein mathematisch betrachtet Gegenteiliges vermuten Die Vermeidung von Spezialistentum und individuellem Besitz von Wissen uber Teile der Software dient der kollektiven Wissenskonstruktion und kann die Ersetzung von Entwicklern vereinfachen Die gesamte Betriebswirtschaftslehre ist in den letzten Jahren von der prozess bzw wertschopfungsorientierten zur kunden bzw marktorientierten Unternehmensfuhrung ubergegangen Auch wenn Extreme Programming die Wertschopfung beschreibt bietet es Moglichkeiten zu kundennaher Vorgehensweise Uber Extreme Programming soll wie in anderen Branchen schon langer ublich eine grossere Einbindung des Kunden in den Wertschopfungsprozess moglich sein Wichtig wird dies umso mehr wenn Software weniger als Faktorgut sondern mehr als Vorprodukt erstellt und vertrieben wird Ebenfalls muss in Extreme Programming und dessen Aufwand aus Sicht des Informationsmanagements betrachtet werden dass der Aufwand den unbedingt notwendigen Informationsaustausch festlegt der okonomisch bewertet wird Genutzt werden dazu Erkenntnisse der Informations und Kommunikationswissenschaft Dabei kann insbesondere die Medienreichhaltigkeitstheorie eingesetzt werden Weil die zu diskutierenden und kommunizierenden Sachverhalte in der Regel komplex sind werden auch komplexe reichhaltige Kommunikationsmedien gewahlt direkte personliche Gesprache Kritisch zu hinterfragen ist hierbei die schwierige raumliche Verteilbarkeit der Entwicklungsprozesse sowie die Einbindung des Kunden da unter Umstanden eine raumliche Trennung zwischen Entwicklern und Kunden besteht Vorgehen BearbeitenVereinzelt wird Extreme Programming als informelle und damit unverbindliche Methode bezeichnet Das trifft jedoch weder den Ansatz noch das Ziel Tatsachlich ist die Formalisierung der Methode des Extreme Programming bewusst flach und schlank gehalten Hingegen muss ein Einvernehmen zwischen Kunden und Programmierern hinsichtlich der Verbindlichkeit der erstellten Unterlagen hergestellt werden solange diese noch nicht durch neuere Fassungen ersetzt wurden Weiter muss der Vorgang des Ersetzens einer Fassung einer Unterlage durch eine neuere Fassung dieser Unterlage soweit formalisiert sein dass beide Parteien Kenntnis von dieser Ersetzung haben und diese Ersetzung annehmen Aufbauorganisation Bearbeiten Neben dem Entwicklungsteam gibt es im Wesentlichen den Kunden und den Product Owner Innerhalb des Entwicklerteams soll es keine Rollentrennung geben So wird nicht unterschieden wer im Team welches Spezialgebiet hat beziehungsweise welche besonderen Fahigkeiten er mitbringt Jede Person im Team wird als Entwickler Developer bezeichnet Ein Manager ist gewohnlich eine Person mit Fuhrungsbefugnis also ein disziplinarischer Vorgesetzter Dieser hat in XP weniger Wichtigkeit Dagegen gibt es einen Leiter des Teams also jemand der die Kommunikation mit Kunden oder untereinander koordiniert Auch der Nutzer der zu erstellenden Software kann das Team durch das Projekt fuhren Die Unterscheidung zwischen Manager und Leiter ist fur agile Vorgehensmodelle typisch Der Product Owner der uber die genaue Vorgehensweise entscheidet tragt die Verantwortung Product Owner im Sinne von XP kann beispielsweise ein Vertreter des Produktmanagements ein Kunde oder ein Nutzer des Produktes sein Die Rollen sind je nach Projekt und Umgebung unterschiedlich haufig auch in Personalunion verteilt Die Rollen bei XP Rolle Beispiel AufgabenProduktbesitzer Produktmanagement Marketing ein Benutzer Kunde Manager des Benutzers Analyst Sponsor Hat Verantwortung setzt Prioritaten Entscheider fur bestes ROIKunde Auftraggeber kann auch der Produktbesitzer sein kann muss aber nicht der Benutzer sein Entscheidet was gemacht wird gibt regelmassig Ruckmeldung AuftraggeberEntwickler Bestandteil des Teams das ganze Entwicklungsteam besteht aus Entwicklern Programmierer Tester DB Experten Architekt Designer Entwickelt das ProduktProjektmanager Ist gewohnlich der Produktbesitzer Kann auch Entwickler aber nicht Manager des Teams sein Fuhrung des TeamsBenutzer Der Nutzer des zu erstellenden Produktes Wird das zu erstellende Produkt nutzenAnforderungsmanagement Bearbeiten Der Umgang mit den Anforderungen und deren Verwirklichung ist eine zentrale Komponente XPs Durch eine Mischung verschiedener in den folgenden Abschnitten dargestellter Massnahmen soll die Qualitat und Flexibilitat der Software gesteigert werden so dass sich der Zusammenhang zwischen dem Zeitpunkt der Anforderungsstellung und den damit entstehenden Kosten weitgehend linear darstellt nbsp Anderungskostenkurve in Abhangigkeit vom Zeitpunkt der AnderungBei einem weitgehend linearen Verlauf einer ableitbaren Anderungskostenkurve wird auf eine vollstandige Erhebung aller Anforderungen zu Beginn des Projektes verzichtet Stattdessen werden die sich erst im Laufe der Umsetzung ergebenden Anforderungen berucksichtigt Dieses Vorgehen resultiert aus den Beobachtungen dass einerseits der Kunde zu Beginn des Projektes noch gar nicht genau weiss was er mochte andererseits sich diese Anforderungen im Laufe eines Projektes andern Daruber hinaus sind Fehler umso teurer je spater man sie findet Im schlimmsten Fall erhalt der Kunde nach einem langen Projekt etwas geliefert was er in dieser Form gar nicht haben mochte Standiger Gedankenaustausch mit dem Kunden Offenheit fur Anderungen und stetige Integration wirken diesen Risiken entgegen Anforderungen werden nicht selten zunachst als Prototypen bereitgestellt Dabei handelt es sich um Versionen die noch nicht die volle endgultige Funktionalitat besitzen Planung Bearbeiten nbsp Release Iterationen User Storys und TasksIm Rahmen der Planung wird gewohnlich folgende Unterscheidung vorgenommen ein Release beinhaltet die Funktionen die insgesamt und fur sich geschlossen die Bereitstellung einer neuen Version des Produktes rechtfertigen Um zu dem Release zu kommen ist ein Release Plan aufzustellen der im Wesentlichen aus Iterationen besteht Unter anderem abhangig von der geschatzten Entwicklungsdauer des Release werden die Iterationen in Anzahl und Dauer festgelegt Iterationen dauern ublicherweise zwischen einer und vier Wochen Der Zeitpunkt der Fertigstellung wird als Zeitintervall diskutiert dessen Grosse im Laufe des Release aufgrund gewonnener Erkenntnisse und des durchgefuhrten Fortschritts standig abnimmt nbsp Risiko Wert Gegenuberstellung und Verteilung der PrioritatenUser Storys Bearbeiten Die innerhalb der Iterationen umzusetzenden einzelnen Neuerungen werden mit dem Kunden durch User Storys beschrieben Das ganze Team ist bei der Erstellung beteiligt Die abzuarbeitenden Anforderungen werden auf einzelnen Karten Story Cards geschrieben und fur alle sichtbar platziert Neben diesem Vorgehen ist es auch ublich Class Responsibility Collaboration Models auf CRC Cards zu verfassen CRC Models nehmen sich dabei einen Akteur im System vor und beschreiben dessen Verantwortlichkeiten und Interaktionen mit anderen Akteuren Den User Storys werden Prioritatswerte zugeordnet Dazu muss das Team zusammen mit dem Kunden zunachst Klarheit gewinnen welche User Storys das hochste Risiko bezuglich Zeitplan Kosten oder Funktionalitat besitzen und welche User Storys dem Produkt den hochsten respektive den niedrigsten Mehrwert bieten wobei ein Diagramm hilfreich sein kann Das Release sollte mit den User Storys begonnen werden die das hochste Risiko und den hochsten Nutzen auf sich vereinen Danach sind diejenige User Storys zu verwirklichen die geringes Risiko aber hohen Nutzen haben Anschliessend geht das Team die User Storys an die geringes Risiko und geringen Nutzen auf sich vereinen Die Fertigstellung von User Storys mit geringem Nutzen aber hohem Risiko ist zu vermeiden nbsp KundenzufriedenheitNeben einer Abschatzung nach Nutzen und Risiko ist fur die Entscheidung welche User Storys in dem Release beziehungsweise in den ersten Iterationen umgesetzt werden sollen noch eine Analyse der Kundenwunsche von Bedeutung Dabei bedient sich ein XP Projekt haufig des Kano Modells Dabei werden in einer systematischen Kundenbefragung Fragen in funktionaler Form und in dysfunktionaler Form gestellt Es lasst sich anschliessend bestimmen welche User Storys unbedingt fertiggestellt werden mussen Must haves welche linearer Natur sind je mehr desto besser siehe linear und welche Exciters sind Der Kunde rechnet nicht mit diesen Merkmalen nutzt das Produkt auch ohne Es lasst sich dadurch der Preis erhohen Die so gewonnenen Erkenntnisse werden diskutiert XP zeichnet sich dadurch aus dass die Betrachtung der Grosse einer Einheit wie Release oder Iteration unabhangig von ihrer Dauer ist Aufwandsabschatzung Bearbeiten Bei der Release Planung sind User Storys noch recht grobkornig Beschaftigt sich ein Team mit einer User Story genauer so wird sie zusammen mit dem Kunden detaillierter beschrieben User Storys werden gewohnlich in Story Points abgeschatzt wobei auch eine Abschatzung in idealen Tagen moglich ist Story Points sind relative Aufwandsabschatzungen also der Entwicklungsaufwand fur eine Story im Vergleich zu anderen Dabei kann es sein dass erste Abschatzungen im Verlaufe des Projektes geandert werden Es wird vom ganzen Team in mehreren Runden in einem Planning Game eine Punkteanzahl fur die User Storys geschatzt Nachdem User Storys abgeschatzt priorisiert und einer Iteration zugewiesen wurden beginnt das Team mit der Umsetzung User Storys werden zu Beginn der Iteration in feinkornige technische Arbeitspakete Tasks zerlegt die gewohnlich einen Umfang von Stunden besitzen Das Team fuhrt diese Zerlegung durch und schatzt die Dauer eines jeden Tasks Es wird allerdings noch nicht festgelegt wer den Task zugeteilt bekommt Zu Beginn der Arbeiten nehmen sich die Entwickler jeweils ein Arbeitspaket vor gewohnlich nach Fahigkeiten Dieser Vorgang wird im Team kurz diskutiert Nach der anfanglichen Zuweisung der Arbeitspakete wird ein weiterer Task begonnen wenn ein Teammitglied Zeit dafur findet also seinen vorangegangenen Task abgeschlossen hat Die Implementierung einer User Story also der Funktionalitat ist erst abgeschlossen wenn alle einzelnen Tasks dieser User Story abgearbeitet und die Tests geschrieben und alle erfolgreich durchlaufen sind Der Demonstration dieser Vorgehensweise soll eine Tabelle mit Aufwandsabschatzungen in einer fiktiven Arztpraxis dienen Jeder Arzt hat eine Software die ihm hilft seine Patienten und die Termine zu verwalten User Storys mit Aufwandsabschatzung in Story Points Story No Story Abschatzung Story Points 1 Als Arzt kann ich alle Patienten sehen die ich am Tage habe 32 Als Arzt kann ich uber die Gesundheitsgeschichte meiner Patienten Auskunft geben 53 Als Assistentin kann ich einem Patienten einen Termin geben 24 Als Assistentin kann ich einem Patienten eine Verschreibung ausdrucken 1Der Begriff Velocity Geschwindigkeit beschreibt den Durchsatz des Teams also die Anzahl der innerhalb einer Iteration erreichten Story Points Die Bestimmung der Velocity hilft abzuschatzen wie lange die Entwicklung der gewunschten Funktionalitat fur ein Release dauert beziehungsweise wie viele Iterationen notwendig sind Es ist normal dass die Geschwindigkeit des Teams nicht immer die gleiche ist Entwicklung und Abschluss Bearbeiten nbsp Zeitlicher Abstand der Schritte Es gibt eine tagliche kurze Besprechung Stand up Meeting bei der jeder Entwickler berichtet was er am Vortag geleistet hat wo es gegebenenfalls Probleme gab und was er heute leisten mochte Ferner werden situationsabhangig Arbeitspaare gebildet Pair Programming Im Laufe des Tages findet wahrend die Entwickler die Funktionalitat und die Tests programmieren weiterer stetiger Austausch Pair Negotiations statt Kann eine User Story in einer Iteration nicht abgeschlossen werden zum Beispiel weil die Tests nicht erfolgreich waren oder sich die Abschatzung als zu knapp beziehungsweise der Umfang als zu gross herausgestellt hat so wird sie gewohnlich in mehrere kleinere aufgeteilt oder komplett in die nachste Iteration verschoben Auch wahrend einer Iteration kann sich durch sich andernde Prioritaten des Kunden oder durch neue Erkenntnisse an der Zusammenstellung der Iteration etwas andern Ist die Iteration abgeschlossen schauen sich Vertreter des Managements der Kunde Akzeptanztest oder andere Personen die an dem Produkt Interesse haben das Produkt in der aktuellen Ausbaustufe an und geben Ruckmeldungen So ist es denkbar dass der Kunde wahrend des Akzeptanztests neue Prioritaten setzt oder weitere Ideen einbringt Technische Unterstutzung muss differenziert betrachtet werden Einerseits wird bewusst auf technische Hilfsmittel verzichtet so etwa bei der Erstellung von User Storys Diese werden gewohnlich manuell erstellt Andererseits wird die Technik aber auch exzessiv genutzt so etwa bei der automatisierten Integration und der automatisierten Durchfuhrung von Tests Daruber hinaus existieren Projektmanagement Werkzeuge die sich auf die speziellen Rahmenbedingungen und Anforderungen XPs konzentriert haben Abgrenzung von herkommlichem Vorgehen Bearbeiten Die zu entwickelnde Funktionalitat wird kurz und formlos in User Storys beschrieben Das meiste Wissen uber die Funktionalitat ihrer Entwicklung befindet sich in den Kopfen der Beteiligten User Storys werden gewohnlich nur relativ zueinander geschatzt Zu Beginn einer Iteration wird deren Inhalt festgelegt Anschliessend kommt erst die Aufteilung der gewahlten User Storys in Tasks Neuartig an dem XP Ansatz ist ebenfalls dass nicht nur einzelne Personen sondern das ganze Team den jeweiligen Aufwand schatzt Auch das Verfahren der Schatzung ist neu Der Zeitpunkt wann und wie die Tasks den einzelnen Entwicklern zugeteilt werden ist ebenfalls ein Abgrenzungskriterium Erst im Laufe der Iteration nehmen sich die einzelnen Entwickler je nach ihrer Verfugbarkeit eines Tasks an Zu allen User Storys gibt es zahlreiche Tests Eine User Story ist erst komplett abgeschlossen wenn alle Tests erfolgreich abgelaufen sind Der tagliche kurze Austausch ist fur die agile Methodik ublich Bestandteile BearbeitenXP besteht aus Werten Prinzipien und Praktiken Obwohl es auch andere massgebliche Quellen gibt siehe Weblinks und Literatur orientiert sich die Zusammenstellung der Werte Prinzipien und Praktiken an Kent Beck 2 dessen noch recht neue evolutionare Weiterentwicklungen XPs hier ebenfalls Berucksichtigung finden 3 Es existiert keine eindeutige Definition von XP wobei allerdings die Diskussionen und Ausfuhrungen der drei Originalverfasser XP am signifikantesten pragen Werte Bearbeiten XP definiert funf zentrale Werte abstrakte Elemente die von zentraler Bedeutung sind Kommunikation Einfachheit Ruckmeldung Mut und Respekt wobei Respekt erst spater dazukam Ohne stetige Beachtung dieser zentralen Werte ist es laut XP nicht moglich erfolgreich Software zu entwickeln nbsp Die zentralen XP WerteDas Team kommuniziert stetig um Informationen auszutauschen Der Prozess selbst erfordert hohe Kommunikationsbereitschaft Es gibt einen stetigen Austausch aller Beteiligten also auch zwischen dem Entwicklungsteam und dem Kunden Es kommen auch Personen zu Wort die in einer gerade diskutierten technischen Aufgabenstellung keine Experten sind So werden sie miteinbezogen es gibt zusatzliche Ruckmeldungen und jeder fuhlt sich dem Team und dem Produkt verpflichtet Stetige Kommunikation mit dem Kunden Aufnahme seines Feedbacks und Erfullung seiner Wunsche also auch eines lauffahigen Produktes das seinen Wunschen voll entspricht ist wichtiger als Vertragsverhandlungen Die Kommunikation zeichnet sich ferner durch einen respektvollen Umgang aus sowohl im Team untereinander als auch mit dem Kunden Unterschiedliche Meinungen werden akzeptiert Die Entwickler sollen mutig sein und die Kommunikation offen gestalten Falls eine Anforderung nicht in einer Iteration umgesetzt werden kann wird in offener und ehrlicher Art und Weise direkt darauf hingewiesen Es muss eine Atmosphare geschaffen werden die herkommliche Storungen wie unnaturlichen Konkurrenzkampf innerhalb des Teams zu Lasten des Produktes minimiert Um die Offenheit und den Mut zu fordern und gruppendynamischen psychologischen Schwierigkeiten entgegenzutreten kann bewusst ein Doomsayer zur offenen zeitnahen Aussprache von schlechten Nachrichten oder moglichen Schwierigkeiten oder auch ein Advocatus Diaboli eingesetzt werden Es soll die einfachste Losung fur eine Problemstellung umgesetzt werden In jeder Iteration konzentriert sich das komplette Team genau auf die momentan umzusetzenden Anforderungen Die Losungen sind technisch immer moglichst einfach zu halten Prinzipien Bearbeiten Es gibt 14 Prinzipien die eine Brucke bilden zwischen den abstrakten Werten und den konkret anwendbaren Praktiken Diese Prinzipien sollten immer Berucksichtigung finden Sie sind Menschlichkeit Wirtschaftlichkeit Beidseitiger Vorteil Selbstgleichheit Verbesserungen Vielfaltigkeit Reflexion Lauf Gelegenheiten wahrnehmen Redundanzen vermeiden Fehlschlage hinnehmen Qualitat Kleine Schritte sowie Akzeptierte Verantwortung Software wird von Menschen entwickelt Menschen bilden also den Faktor dem laut XP besondere Aufmerksamkeit gilt Durch Schaffung einer menschlichen Atmosphare soll den Grundbedurfnissen der Entwickler Sicherheit Vollendung Identifikation mit der Gruppe Perspektive und Verstandnis entsprochen werden Die erstellte Software beziehungsweise eine einzelne Funktionalitat muss einerseits wirtschaftlich sein und dennoch einen echten Wert bringen Andererseits muss sie fur beide Seiten von Vorteil sein und alle Beteiligten Entwicklungsteam und Kunde zufriedenstellen nbsp Die Prinzipien XPsDie Wiederverwendung bestehender Losungen wozu beispielsweise die zahlreichen unterschiedlichen Tests gehoren die stetig automatisiert durchlaufen werden ist wichtig Es ist jedem klar dass erste Losungen meist nicht optimal sind Aus Feedback und selbst gewonnenen neuen Erkenntnissen wird die Losung stetig verbessert Immer bessere Losungen zu erkennen gelingt nur durch stetige Reflexion und ein kontinuierliches Hinterfragen der jeweiligen Vorgehensweisen im Team Die Produktivitat dieses Verfahrens steigt proportional zur Uneinheitlichkeit des aus Personen mit unterschiedlichen Fahigkeiten und Charakteren bestehenden Teams Verschiedene Meinungen werden nicht nur geduldet sondern sogar gefordert Dazu muss ein Konfliktmanagement etabliert werden Die Lauffahigkeit der Software muss zu jedem Zeitpunkt garantiert sein Obwohl kurze Iterationen mit permanentem Feedback dabei helfen das Projekt in einem Lauf zu halten mussen Fehlschlage dennoch miteinkalkuliert werden Es ist durchaus ublich und wird akzeptiert eine Umsetzung durchzufuhren die zunachst nicht optimal oder sogar fehlerhaft sein kann Diese Schwierigkeiten mussen als Gelegenheit und Chance begriffen werden das Produkt und das Team noch weiter reifen zu lassen Ein offener konstruktiver Umgang mit den Herausforderungen der Softwareentwicklung gelingt umso besser je mehr alle Beteiligten bereit sind ihre Verantwortung zu akzeptieren Einem Entwickler eine Aktivitat und Verantwortung nur disziplinarisch aufzutragen reicht nicht aus da er die Verantwortung aktiv annehmen und leben muss Ein weiterer wichtiger Punkt ist die hohe Qualitat die gemass XP im Gegensatz zu anderen Faktoren wie Ressourcen Funktionsumfang oder Endtermin nicht zur Diskussion steht Diese Grundeinstellung unterscheidet sich von vielen anderen Methoden der Softwareerstellung bei denen Software zu einem bestimmten Zeitpunkt und in einem definierten Funktionsumfang fertiggestellt werden soll worunter fast immer die Softwarequalitat leidet Gerade die Qualitat ist allerdings wichtig um das Produkt einsatzfahig fehlerfrei und erweiterbar zu halten Software mit gutem Design und hoher Qualitat ist mittelfristig kostengunstiger erweiterbarer und weniger fehlerbehaftet als schnell erstellte sogenannte Quick and dirty Software Zu guter Qualitat gehort auch die Vermeidung von Redundanzen unnotig mehrfach oder wiederholt ausgefuhrte oder auch manuell ausgefuhrte automatisierbare Schritte Durch schnelle kleine Schritte bleibt das Team flexibel und kann sich schnell neuen Rahmenbedingungen anpassen und auf Feedback eingehen Die negativen Folgen eines einzelnen kleinen nicht erfolgreichen Schrittes konnen wesentlich schneller durch einen neuen Schritt kompensiert werden als dies bei einem einzelnen grosseren Schritt der Fall ware Praktiken Bearbeiten Es lassen sich traditionelle und evolutionare Praktiken unterscheiden Die traditionellen sind in der XP Welt weit verbreitet und genutzt Die evolutionaren nehmen verschiedene neue Erkenntnisse aus der jahrelangen Anwendung XPs auf Sie verfeinern oder modifizieren die ursprunglichen Praktiken geringfugig und machen damit die Nutzung klarer und verstandlicher XP wird haufig mit den traditionellen Praktiken verbunden beziehungsweise darauf reduziert Traditionelle Praktiken Bearbeiten Pair Programming Bei der Paarprogrammierung teilen sich zwei Programmierer einen Computer einer codiert der Driver und der andere denkt mit und hat das Gesamtbild im Kopf der Partner Die Rollen werden regelmassig getauscht Dieses Vorgehen steigert den Wissenstransfer Anfanger sollen schneller von der Arbeit eines Spezialisten lernen Das Wissen wird verteilt Das Projekt ist nicht mehr so anfallig gegen den Ausfall eines Einzelnen Durch standigen Codereview der Entwicklung und Kommunikation wird das Design verbessert und Fehler schneller gefunden siehe auch Vier Augen Prinzip Kollektives Eigentum Aktivitaten werden zunachst nicht an einzelne Personen verteilt sondern an das ganze Team Es existiert laut Methodik das Bewusstsein und die Verpflichtung nur als Team erfolgreich sein zu konnen Einzelne Teammitglieder besitzen kein Wissensmonopol Pair Programming und wechselhafte Einsatzgebiete sollen der Stromung entgegenwirken dass einzelne Personen Teile als ihren Besitz betrachten Permanente Integration Kontinuierliche Integration der einzelnen Komponenten zu einem lauffahigen Gesamtsystem in kurzen Zeitabstanden Je haufiger integriert wird desto hoher wird laut XP die eintretende Routine Fehler werden damit fruh aufgedeckt Die mit der Integration verbundenen Kosten sollen fast auf Null minimiert werden da die Integration zu einem taglichen Schritt gehort der weitestgehend vollautomatisiert und selbst stabil und durchgetestet sein muss Testgetriebene Entwicklung bzw Permanentes Testen Bei der testgetriebenen Entwicklung werden erst die Modultests Unit Test geschrieben bevor die eigentliche Funktionalitat programmiert wird Der Entwickler befasst sich dadurch fruh mit dem Design des Codes und uberdenkt seine Programmierarbeit genau Die Tests werden nach jedem Programmierschritt ausgefuhrt und liefern Ruckmeldung uber den Entwicklungsstand Die Tests sind automatisiert Im Laufe einer Integration werden Integrationstests durchgefuhrt Es wird zwischen Regressionstest und Modultest unterschieden Wahrend Modultests Unit Tests einzelne Module testen ist ein Regressionstest die kollektive Ausfuhrung aller Tests um die unveranderte Lauffahigkeit der alten bereits vor der Iteration existenten Funktionalitat zu uberprufen Auch Performancetests bei denen die Leistungs und Geschwindigkeitsmerkmale in Bezug auf die geforderten Werte gemessen werden sind ublich Der Entwickler bekommt Ruckmeldung Feedback wie viele und welche Tests nicht erfolgreich waren Ein Akzeptanztest ist die Prasentation des Standes des Produktes um die Zufriedenheit des Kunden und die Nutzbarkeit zu validieren nbsp XP Best PracticesKundeneinbeziehung Enge Einbeziehung des Kunden das heisst der Kunde gibt das Iterationsziel mit einer Auswahl der zu realisierenden User Storys vor und hat kurz danach die Moglichkeit Akzeptanztests durchzufuhren Story Cards dienen als Medium um die kurzen Anwendungsfalle in Form von User Storys aufzunehmen Der Kunde muss immer anwesend oder zumindest erreichbar sein Neben User Storys auf Story Cards existiert noch der Ansatz CRC Modelle auf CRC Karten zu verfassen Refactoring Laufendes Refactoring standige Architektur Design und Code Verbesserungen auch um Anti Patterns umgehend erkennen und beseitigen zu konnen XP bejaht die Existenz von Code der am Beginn nicht perfekt ist Stattdessen sind samtliche Teile einem stetigen Review unterworfen Gefundene optimierungsfahige Stellen werden gewohnlich sofort verbessert oder als Fehler Bugs definiert die in einer spateren Iteration behoben werden Keine Uberstunden 40 Stunden Woche d h Uberstunden sind zu vermeiden weil darunter die Freude an der Arbeit mittelfristig die Konzentrationsfahigkeit der Programmierer und somit auch die Qualitat des Produktes leidet Nachweislich sinkt die Produktivitat eines Entwicklers durch Uberstunden Arbeit ausserhalb der regularen Arbeitszeit wird im Einzelfall zwar geduldet aber auf keinen Fall besonders entlohnt oder erwartet Uberstunden zeugen gewohnlich einfach nur von falscher Planung Iterationen Kurze Iterationen um dem Kunden in regelmassigen Zeitabstanden einen lauffahigen Zwischenstand des Produkts zu liefern Eine Iteration ist eine zeitlich und fachlich in sich abgeschlossene Einheit Kurze Iterationen und damit verbundene Akzeptanztests erlauben schnelle Feedbackschleifen zwischen Entwicklung und Kunde Metapher Da in traditionell aufgesetzten Softwareprojekten ein latentes Missverstandnis zwischen Kunde und Entwicklungsteam ein haufiges Problem darstellt der Entwickler hat Schwierigkeiten mit der Fachsprache des Kunden und umgekehrt werden die Anforderungen im fachlichen Vokabular des Kunden idealerweise auch von ihm selbst in Form von User Storys beschrieben Alle sprechen eine Sprache was durch ein Glossar noch verstarkt werden kann Es wird eine Metapher gewahlt eine inhaltlich ahnliche fur beide Seiten verstandliche Alltagsgeschichte Coding Standards Das Team halt sich bei der Programmierarbeit an Standards welche erst die gemeinschaftliche Verantwortung des Teams bei dieser Aufgabe ermoglichen Wechselnder Einsatz der Entwickler in allen Bereichen der Software ist laut XP nur durch gemeinsame Standards sinnvoll moglich Einfaches Design Es soll die einfachste Losung angestrebt werden also diejenige die genau das Gewunschte erreicht und nicht mehr Bewusst allgemein generisch gehaltene Losungen oder vorbereitende Massnahmen fur potentiell zukunftige Anforderungen werden vermieden Zum Thema Einfachheit sind die umgangssprachlichen Akronyme KISS Keep it simple stupid und YAGNI You Ain t Gonna Need It verbreitet Planning Game Neue Versionen der Software werden in einem Planning Game auch als Planning Poker bekannt spezifiziert und der Aufwand zu deren Umsetzung abgeschatzt An diesem iterativen Prozess sind sowohl Entwicklungsmannschaft als auch Kunde beteiligt Evolutionare Praktiken Bearbeiten Die evolutionaren Praktiken wurden funf Jahre nach den ursprunglichen publiziert und ersetzen diese Sie lassen sich unterteilen in Hauptpraktiken und erganzende Begleitpraktiken Inhaltlich sind die neuen Praktiken mit den alten traditionellen Praktiken vergleichbar Die Bezeichnungen der alten Praktiken wurden teilweise modifiziert oder in einzelne Unterpraktiken aufgeteilt Zwei Praktiken sind weggefallen die Praktik Metapher war zu schwer zu vermitteln und hat sich laut Literatur nicht durchgesetzt Coding Standards werden als selbstverstandlich vorausgesetzt und nicht mehr explizit erwahnt Hauptpraktiken Bearbeiten Die Hauptpraktiken sind Raumlich zusammen sitzen Informativer Arbeitsplatz Team Pair Programming Energievolle Arbeit Entspannte Arbeit Stories Wochentlicher Zyklus Quartalsweiser Zyklus 10 Minuten Build Kontinuierliche Integration Test First Programmierung und Inkrementelles Design Durch offene gemeinsame Anordnung der Arbeitsplatze soll die Kommunikation optimiert werden Diese Form ist aufgrund der besseren Kommunikationsmoglichkeiten einer raumlichen Trennung der Beteiligten vorzuziehen Der Arbeitsplatz muss ferner informativ sein indem zum Beispiel aktuelle Tasks der Stand des Projektes und andere wichtige Informationen vom Arbeitsplatz aus immer gut sichtbar sind Empfehlenswert ist es hier zum Beispiel die User Storys zentral an einer Wand anzubringen nbsp Die Hauptpraktiken des evolutionaren XPsDas Team ist laut XP wichtiger als die Individuen Es fallt im Bewusstsein nur als Gemeinschaft erfolgreich zu sein gemeinsame Entscheidungen Dies wird dadurch gefordert dass die einzelnen technischen Aktivitaten in der Planung nicht einzelnen Personen sondern dem Team zugeordnet werden Probleme lost das Team ohne den Eingriff eines Managers von aussen Mit dem Thema selbstregulierendes Team befasst sich auch der Essay Die Kathedrale und der Basar Pair Programming mit abwechselnden Partnern soll diese Grundeinstellung weiter fordern Die Arbeit soll mit voller Motivation und gleichzeitig in einer entspannten kollegialen Atmosphare ablaufen da die Entwickler ohne Uberstunden arbeiten und somit maximale Produktivitat erreicht wird Es werden Sicherheitspuffer einkalkuliert Nicht einhaltbare Versprechen werden vermieden Die zu entwickelnde Funktionalitat wird in Form von Storys beschrieben beispielsweise User Storys In wochentlichem Zyklus wird entschieden welche Kundenwunsche als Nachstes in Angriff genommen werden Das Projekt selbst wird in einem quartalsweisen Zyklus geplant Die vorgegebenen Zyklen sind Richtwerte deren Grossen im taglichen Einsatz variieren konnen Die Software zu erstellen und alle Testlaufe durchzufuhren soll in maximal zehn Minuten abgeschlossen sein Durch diesen 10 Minuten Build werden die Kosten fur Erstellung und das Testen der Software minimiert Alle von einem Entwickler gemachten Anderungen sollten circa alle zwei Stunden bereitgestellt werden Diese kontinuierliche Integration soll einem potentiellen Chaos vorbeugen das entstehen konnte wenn die Entwickler ihre Anderungen und Erweiterungen am Produkt selten in das zentrale Datenhaltungssystem Repository einstellen wurden Alle Mitarbeiter haben so die Anderungen rasch zur Verfugung Sowohl die zehn Minuten beim Build als auch die zwei Stunden bei der Integration sind Zielvorgaben die in konkreten Projekten variieren konnen Gerade bei grossen Projekten mit einer grossen Menge an Quelltext und Entwicklern wird ein Build deutlich langer dauern und die Integrationsintervalle werden oft grosser sein Die Praktiken betonen nur die Richtung und geben einen Idealwert vor der angestrebt werden sollte Durch Automatisierung lasst sich die Build Zeit weitestgehend minimieren Die Entwicklung ist gekennzeichnet durch den Test First Programmieransatz vor der Realisierung der Funktionalitat muss der Test geschrieben werden Ein inkrementelles Design das neue Erkenntnisse und Feedback aufnimmt verbessert das Design der Software stetig Begleitpraktiken Bearbeiten Die Begleitpraktiken sind richtige Kundeneinbeziehung inkrementelles Deployment Team Konstanz schrumpfende Teams ursachliche Analysen geteilter Code Codierung und Testen eine zentrale Codebasis tagliches Deployment verhandelbarer vertraglicher Funktionsumfang Zahlen pro Nutzung Der Kunde nimmt aktiv an der Entwicklung teil Er ist Teilnehmer an den regelmassigen Treffen und wird aktiv miteinbezogen Die Einbeziehung zeigt sich auch beim zu entwickelnden Funktionsumfang der verhandelbar bleiben muss Mehrere kleinere Vertrage anstatt eines grossen Vertrags konnen in derartig betriebenen Projekten Risiken minimieren und die Flexibilitat erhohen Da iterativ stetig neue Versionen bereitgestellt werden mussen die Zahlungen des Kunden unabhangig von der Anzahl der bereitgestellten Versionen sein Der Kunde zahlt nicht fur jede Version der Software sondern pro Nutzung nbsp Die Nebenpraktiken des evolutionaren XPsDas Team soll einerseits von seiner Konstanz leben kann aber auch personell verkleinert werden Das Entwicklerteam muss uber mehrere Projekte hinweg das gleiche sein Es erwirbt im Rahmen der Produktentwicklung die Fahigkeiten als Team zusammenzuarbeiten welche fur weitere Projekte genutzt werden kann Sobald das Team leistungsstarker und produktiver wird sollte seine Arbeitslast trotz einer Verlagerung von Ressourcen zu anderen Teams konstant bleiben Dem Code als dem im Zentrum stehenden Medium kommt eine zentrale Rolle zu Er wird in einer zentralen datenbankahnlichen Struktur Repository gehalten Es existiert nur eine offizielle Version Codebasis des Systems Dieser Code wird bildlich gesprochen zwischen den Entwicklern geteilt Jeder Entwickler im Team muss in der Lage sein auch fremden Code jederzeit andern zu konnen Collective Code Ownership Neben dem Code existieren immer die Tests die zusammen mit dem Code die einzigen zu erstellenden durch die Entwicklungsarbeit bereitgestellten Medien Artefakte sind Alle anderen Medien zum Beispiel die Dokumentation werden allein aus Code und Tests generiert Um Schwierigkeiten fruh zu identifizieren wird inkrementelles Deployment die Uberfuhrung der Anwendung auf das Zielsystem durchgefuhrt Wenn Altsysteme durch neue Software ersetzt werden sollen muss ein Teil nach dem anderen ersetzt werden Dieses Vorgehen soll die Umstellung planbarer machen Das Deployment ist taglich inkrementell durchzufuhren Jeden Tag soll eine neue Version der Software produktiv gestellt werden Dies macht das Deployment zur Routine minimiert dessen Kosten und Fehler und ermoglicht stetige Integrations und Akzeptanztests Falls einmal ein technisches Fehlverhalten eintritt muss eine ursachliche Analyse durchgefuhrt werden Flexibilitatsgrad vs Steifheit Bearbeiten Eine der theoretischen Grundlagen des Extreme Programming ist der Flexibilitatsgrad des zu entwickelnden Softwaresystems XP geht von einem mindestens proportionalen Zusammenhang zwischen dem Gegenteil der Flexibilitat der sogenannten Steifheit und den Pflegekosten zur Fehlerbehebung oder Erweiterung des Systems aus Je flexibler ein Softwaresystem desto geringer sind die Pflegekosten je steifer desto hoher Einige Steifheitskriterien Die Anzahl uberflussiger bzw ungenutzter Merkmale Eine schlechte fehlende schwer verstandliche oder zu umfangreiche Dokumentation Ein schwer verstandlicher oder unflexibler Entwurf Fehlende Regressionstests Ein schwerfalliges GesamtsystemDie Flexibilitatskriterien sind das Gegenteil der Steifheitskriterien zum Beispiel ein leicht verstandlicher und flexibler Entwurf Einige der als Bestandteil des Extreme Programming definierten Mechanismen dienen laut XP der Erhohung der Flexibilitat Die testgetriebene Entwicklung sorgt fur ein ausreichendes Vorhandensein von Regressionstests und eine verbesserte Testbarkeit der Software Das standige Refactoring fuhrt zur Fehlerbeseitigung einem leicht verstandlichen und flexiblen Entwurf sowie guter Dokumentation Die kontinuierliche Integration erfordert zwangslaufig ein leichtgewichtiges Gesamtsystem Um die zu entwickelnde Funktionalitat zu bestimmen und zwischen Kunde und Entwicklungsteam auszuarbeiten werden User Storys eingesetztUrsprung und Abgrenzung BearbeitenXP ist ein Vertreter der agilen Softwareentwicklung Im Vergleich zu traditionellen Vorgehensmodellen wahlt es alternative Ansatze um Herausforderungen wahrend der Softwareentwicklung zu adressieren Traditionelle Vorgehensmodelle Bearbeiten In aus heutiger Sicht traditionellen Vorgehensmodellen ist der Softwareentwicklungsprozess in aufeinanderfolgenden Phasen organisiert Nach Jahren der Anwendung von traditionellen Vorgehensmodellen wie dem ab 1970 genutzten Wasserfallmodell haben es aus Sicht der XP Vertreter Projektverantwortliche nur unzureichend verstanden die Probleme und Risiken der Softwareentwicklung in den Griff zu bekommen Viele Projekte kamen nie zu einem Abschluss oder uberstiegen zeitlich und oder kostenmassig die Planung Viele gerade uber lange Zeitraume laufende Projekte deckten mit Abschluss zwar die zu Beginn spezifizierten Anforderungen ab berucksichtigten allerdings unzureichend dass Anforderungen sich andern konnen oder erst im Laufe eines Projektes dem Kunden wirklich klar ist wie das Endergebnis aussehen soll Uber Erfolg und Schwierigkeiten von Softwareprojekten liefert der Chaos Report von The Standish Group regelmassig fundierte Untersuchungen wie beispielsweise 1994 4 In Abgrenzung zu traditionellen Vorgehensmodellen durchlauft der Entwicklungsprozess in XP immer wieder iterativ in kurzen Zyklen samtliche Disziplinen der klassischen Softwareentwicklung zum Beispiel Anforderungsanalyse Design Implementierung Test Durch diese inkrementelle Vorgehensweise werden nur die im aktuellen Iterationsschritt benotigten Merkmale verwirklicht implementiert XP ist dadurch leichtgewichtiger Es wird keine komplette technische Spezifikation der zu entwickelnden Losung vorausgesetzt so gibt es beispielsweise kein Pflichtenheft Geschichte von XP Bearbeiten Extreme Programming und damit einher Standards wie JUnit wurden von Kent Beck Ward Cunningham und Ron Jeffries allesamt Erstunterzeichner des Agile Manifesto wahrend ihrer Arbeit im Projekt Comprehensive Compensation System bei Chrysler zur Erstellung von Software entwickelt Die Arbeiten am sogenannten C3 Projekt begannen 1995 und wurden 2000 nach der Ubernahme durch Daimler eingestellt Die dabei entwickelte Software wurde im Bereich der Lohnabrechnung eingesetzt und basierte hauptsachlich auf Smalltalk Das C3 Projekt wurde ursprunglich nach dem Wasserfallmodell umgesetzt Nachdem nach knapp einem Jahr kein wesentlicher Fortschritt zu verzeichnen war wurde der Entwicklungsansatz geandert Das Projekt zeichnete sich aus durch haufig wechselnde Anforderungen und einer hohen Mitarbeiterfluktuation 5 6 7 XP ist ein agiles Vorgehensmodell Die folgende Tabelle stellt den von XP identifizierten Kerndisziplinen den historischen weitverbreiteten Ansatz mitsamt seinen Risiken der Softwareentwicklung gegenuber Unternehmen die XP nicht einsetzen konnen Vorgehensmodelle verwenden die sich bewusst oder unbewusst mit diesen Disziplinen positiv auseinandersetzen Verbreitete XP Kerndisziplinen und Risiken bei herkommlicher Herangehensweise Praktik Richtiges Vorgehen nach XP Traditionelles oder falsches Vorgehen Risiko nach XPKommunikation Stetiger Austausch wird gefordert und erwartet Jeder muss zunachst mal seine Aufgaben losen Mut Offene Atmosphare Angst vor versaumten Terminen und Missverstandnissen mit Kunden Kollektives Eigentum Programmcode Dokumente etc gehoren dem Team Jeder fuhlt sich nur fur seine Artefakte verantwortlich Pair Programming Zu zweit am Rechner Jeder will und muss zunachst auf seine ihm zugewiesenen Aufgaben schauen Integration Stetige Integrationen erlauben Feedback und erhohen Qualitat Selten Integrationen da vermeintlich unnutz und Zeitverschwendung Testgetriebene Entwicklung Testen hat einen hohen Stellenwert Testen kostet nur Zeit Wenige manuelle Tests Kundeneinbeziehung Der Kunde wird zur aktiven Mitarbeit aufgerufen Der Kunde ist selten wirklicher Partner sondern nur die andere Seite des Vertrages Refactoring Suboptimales Design und Fehler werden akzeptiert Fehler sind verpont Erstellte Artefakte laufen angeblich immer direkt perfekt Keine Uberstunden Einhaltung der regularen Arbeitszeit Stetige regelmassige Uberschreitung der regularen Arbeitszeit Iterationen Ein Release wird in viele handliche Iterationen unterteilt Iterationen sind nicht notig es wird an einem Release gearbeitet Stand up Meeting Taglicher strukturierter Austausch Grosse lange seltenere Projektmeetings Die Personenanzahl und der Inhalt sind haufig zu aufgeblaht Dokumentation Wo es sinnvoll ist Wichtiges Artefakt Alles muss standardisiert dokumentiert sein Dokumentation wird aber nicht genutzt Metapher Ein gemeinsames Vokabular Kunde und Entwicklung sprechen in zwei Sprachen haufig aneinander vorbei Team Das Team ist wichtig Es existieren keine Rollen Feedback wird von jedem erwartet Spezialistentum Abschottung Wissensmonopole Standards Standards wo es sinnvoll erscheint Uberregulierung Starrer Prozess Qualitat Inharenter Bestandteil Der Faktor der als erster vernachlassigt wird wenn Zeit oder Geld knapp werden Aufgrund der wachsenden Nutzung wird XP weiter optimiert je mehr Projekte gemass XP entwickelt werden desto mehr Erfahrungen fliessen in die Weiterentwicklung von XP ein Da es auch eine Summe von Best practices ist lasst sich somit sagen Es wird in der Praxis fur die Praxis angepasst Andere agile Vorgehensmodelle Bearbeiten Hauptartikel Agile Softwareentwicklung Der kleinste gemeinsame Nenner aller agilen Vorgehensmodelle ist das Agile Manifest 8 Individuen und Interaktionen haben Vorrang vor Prozessen und Werkzeugen Lauffahige Software hat Vorrang vor ausgedehnter Dokumentation Zusammenarbeit mit dem Kunden hat Vorrang vor Vertragsverhandlungen Das Eingehen auf Anderungen hat Vorrang vor strikter PlanverfolgungNeben XP hat auch Scrum einen gewissen Bekanntheitsgrad erlangt Neben vielen Ahnlichkeiten mit XP gibt Scrum in bestimmten Bereichen Vorgaben bezuglich Iterationslange Protokollierung und Verfahren Scrum nutzt ein eigenes Vokabular Eine weitere gerne in diesem Zusammenhang angefuhrte Disziplin ist das Feature Driven Development eine Methodik die den Schwerpunkt ebenfalls auf die bereitzustellende Funktionalitat legt Ahnlichkeiten zwischen XP und Kaizen einem in Japan vor allem in der Autoindustrie entwickelten Konzept Kontinuierlicher Verbesserungsprozess zur Sicherung der Qualitat im Fertigungsprozess und einer Optimierung der Fertigungs und Managementkosten mittels schlankerer Ansatze Schlanke Produktion sind nicht zu ubersehen Ein weiteres agiles Vorgehensmodell ist Crystal eine Familie von Methoden deren Mitglieder meist mit Farben gekennzeichnet werden Auch traditionelle Vorgehensmodelle wie das V Modell wurden zwischenzeitlich um neue Erkenntnisse in der Softwareentwicklung angereichert Als Ergebnis bedient sich der Nachfolger das V Modell XT agiler Ansatze So gibt das V Modell XT keine strikte Sequenz an zu durchlaufenden Phasen mehr vor XP in Projekten BearbeitenHeute uber zehn Jahre nach den ersten XP Schritten erfreuen sich XP und andere agile Methoden wachsender Beliebtheit Untersuchungen von Forrester Research ergaben dass in Nordamerika und Europa 2005 circa 14 aller Projekte mit agilen Methoden durchgefuhrt wurden 9 von denen XP die verbreitetste ist und viele andere einen Einsatz prufen Zu den Nutzern XPs zahlen sowohl Unternehmen die kommerziell Software herstellen und vertreiben als auch Unternehmen deren eigentliches Geschaft nicht die Erstellung von Software ist Dresdner Kleinwort Wasserstein Encyclopaedia Britannica Fidelity Progressive Capital One Royal amp Sunalliance Channel One Daedalos International Gemplus it agile Qwest und O amp O Services 10 11 Viele Unternehmen berichten offentlich von ihren Erfahrungen mit XP Sie schildern wie sie XP im Detail eingesetzt haben welche Schwierigkeiten dabei auftraten und wie der Erfolg einzuschatzen war Symantec hat seine Anderung des Vorgehensmodells hin zu XP publiziert 12 Sabre Airline Solutions hat mit XP sowohl die Fehler in ihrer Software als auch die Entwicklungszeit reduziert 13 It was XP that produced the dramatic quality improvements You have the weaker people paired with the stronger people and business knowledge and coding knowledge are transferred very quickly Es war XP das die dramatischen Qualitatsverbesserungen hervorbrachte Sie haben die schwacheren mit den starkeren Menschen verbunden und Geschaftswissen und Programmierkenntnisse werden sehr schnell ubertragen Gary Anthes 13 Kritik BearbeitenDieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Das Alles oder Nichts Prinzip Bearbeiten Gemass einigen Protagonisten des XP Ansatzes wirken die einzelnen Methoden so eng zusammen dass diese ohne Ausnahme eingesetzt werden sollen Bereits der Verzicht auf einzelne Methoden soll die Wirksamkeit des Gesamtansatzes massiv einschranken Da jedoch der Einsatz der Methoden oftmals auf zahlreichen Voraussetzungen basiert siehe z B die Abschnitte Der ideale Kunde und Der ideale Programmierer ist es wahrscheinlich dass in konkreten Projekten einzelne Methoden eben gerade nicht angewandt werden konnen Das liefert dann auch auf einfache Weise eine Erklarung fur das Scheitern von XP Projekten Meist durfte sich eine vernachlassigte Methode finden lassen so dass das Scheitern nicht auf XP als Gesamtansatz sondern auf die Vernachlassigung dieser Methode zuruckgefuhrt werden kann Mittlerweile ist es umstritten ob tatsachlich alle Methoden angewendet werden mussen um durch XP die Wahrscheinlichkeit auf einen erfolgreichen Projektverlauf zu erhohen Bewegliche Anforderungen Bearbeiten Ein Hauptgrund fur die Spezifikation von Anforderungen besteht bei klassischen Vorgehensmodellen in der Schaffung einer verlasslichen Basis fur die Entwicklungsarbeit so dass spater notwendige Anderungen an der Realisierung moglichst gering bleiben Die implizite Annahme dieser Haltung ist dass Anderungen umso teurer werden je spater sie durchgefuhrt werden mussen Obwohl sich diese Annahme in vielen Projekten bestatigt hat geht XP gewissermassen davon aus dass Anderungen grundsatzlich billig sind wenn man sie kontinuierlich durchfuhrt Auch verneint XP implizit die Annahme dass spatere Anderungen teurer werden und begrundet dies damit dass die Anderungen dann nicht wie in anderen Ansatzen in mehreren Artefakten zugleich Spezifikation Dokumentation Quellcode umgesetzt werden mussen Die diesbezuglichen Annahmen von XP treffen sicher dann zu wenn die Anforderungen unvermeidlich Anderungen unterworfen sein werden In diesem Fall kann eine Spezifikation der Anforderungen unter Umstanden grosseren Aufwand nach sich ziehen als das Auslassen der Spezifikation schon allein deswegen weil die Spezifikation immer mitgeandert werden muss Es ist jedoch unklar warum es schadlich sein sollte Anforderungen zumindest dann zu spezifizieren wenn sie mit einiger Sicherheit bis zum Projektende Bestand haben werden Durch den Verzicht auf eine Spezifikation lauft man Gefahr Anforderungen zu ubersehen oder hinsichtlich ihrer Bedeutung falsch einzuschatzen Auch ist denkbar dass der Kunde im Projektverlauf seine Anforderungen bewusst andert jedoch gegenuber dem Entwicklungsteam bekundet seine Auffassung sei bislang nur falsch verstanden worden Hinsichtlich der Einschatzung dass spatere Anderungen nicht teurer sind als fruhe ist einzuwenden dass spate Anderungen dann sehr teuer sein konnen wenn sie das Design der Anwendung in grundlegender Weise betreffen So ist die Anderung der Architektur einer Anwendung nicht ohne erheblichen Aufwand durchzufuhren ja sie kann ggf teurer sein als eine Neuimplementierung Es ist nicht ersichtlich und erscheint daher als eine Glaubensfrage ob XP durch den Einsatz seiner Methoden derartige Situationen verhindern kann Der ideale Kunde Bearbeiten Der Einsatz von XP verlangt einen experimentierfreudigen Kunden der nicht nur auf eine Reihe von ublichen Vorgehensweisen verzichten sondern zudem selbst erhebliche Ressourcen aufwenden muss Zu den Aspekten auf die ein Kunde ungern verzichtet gehoren Dokumentation Software kann in komplexen Systemlandschaften eingefuhrt werden so dass unterschiedlichste Beteiligte z B Schnittstellenverantwortliche Mitarbeiter von externen Providern usw Kenntnis von technischen Details erlangen mussen In solchen Umgebungen verbieten meist schon die Firmenrichtlinien den Verzicht auf eine ausfuhrliche Dokumentation Aber selbst wenn dies nicht der Fall ist bleibt zu klaren wie die Kenntnisse uber technische Details an die Betroffenen vermittelt werden sollen wenn keine Dokumentation existiert und mehr noch wenn davon ausgegangen werden muss dass kunftige Anderungen die relevanten technischen Einzelheiten betreffen Spezifikation Insbesondere beim Abschluss von Werkvertragen stellt sich fur den Kunden die Frage worin prazise eigentlich das Gewerk besteht das durch den vereinbarten Preis erworben wird Des Weiteren konnen firmenweite Richtlinien die Erstellung einer Spezifikation verlangen Termine Da der projektleitende Vertreter des Kunden oftmals selbst den Projektfortschritt berichten muss stellt die Fertigstellung bestimmter Funktionen zu festgelegten Terminen somit also die Aufstellung eines Projektplans oftmals einen unverzichtbaren Bestandteil der gemeinsamen Vorgehensweise dar Uber diese Punkte hinaus stellt das Kunde vor Ort Prinzip eine Anforderung dar die in der Realitat nur ausserst selten umsetzbar ist Um seine Aufgabe erfullen zu konnen muss der Mitarbeiter offensichtlich uber einen erheblichen Wissensumfang verfugen Ist dies aber der Fall so ist der Mitarbeiter sehr wahrscheinlich auch in seinem eigenen Unternehmen nicht fur mehrere Monate entbehrlich Nicht selten werden IT Projekte zudem gerade deshalb an externe Dienstleister vergeben um den eigenen Ressourcenaufwand zu beschranken Das Kunde vor Ort Prinzip stellt somit eine der am schwierigsten erfullbaren Anforderungen des Extreme Programming dar Der ideale Programmierer Bearbeiten XP stellt zahlreiche Anforderungen an die beteiligten Programmierer Die Programmierer mussen uber sehr gute Fahigkeiten verfugen da der auf haufigen Anderungen basierende Ansatz unter Verwendung von Refactorings nicht ohne umfangreiche Programmiererfahrung und ohne den Einsatz von dafur geeigneten Werkzeugen realisiert werden kann Programmierer weisen oftmals ein recht ausgepragtes Ego auf das sich in grosser Uberzeugung von richtigen Losungen und einem gewissen Besitzdenken hinsichtlich des geschriebenen Codes aussert Nicht alle Programmierer konnen damit umgehen dass gemass XP jeder den Code aller anderen modifizieren darf XP weist eine Reihe von Merkmalen auf die hohe Disziplin erfordern wie z B der Test first Ansatz das permanente Durchfuhren von Refactorings Programmieren in Paaren usw und einige andere die eine gewisse Disziplinlosigkeit fordern z B das Auslassen von Spezifikation und Dokumentation Es besteht die Gefahr dass die letzteren Ansatze gegenuber den Ersteren betont werden Die Einhaltung der Ansatze mit hoher Disziplin erfordert fahige Beteiligte und eine funktionierende Selbstregulierung des Teams Da aber unter Umstanden kein Projektverantwortlicher benannt wurde fragt sich wer letztlich fur die konsequente Einhaltung aller Aspekte sorgt Die Anforderungen zeigen dass XP nicht auf beliebige Teams angewandt werden kann Beschrankte Team und damit Projektgrosse Bearbeiten Mehrere XP Methoden erfordern einen hohen Grad an gegenseitiger Informiertheit und somit ein hohes Mass an Kommunikation zwischen den Beteiligten So bedingt das kontinuierliche Refactoring unter Umstanden Anderungen gemeinsam genutzter Komponenten uber die moglichst das gesamte Team unterrichtet sein muss Das Fehlen eines Projektmanagers erfordert gemeinsame Absprachen zur Arbeitsteilung Da zudem eine prazise Spezifikation und Dokumentation fehlt mussen alle Informationen zur Umsetzung in den Kopfen der Beteiligten verfugbar sein Mit der Grosse des Teams steigt jedoch der Kommunikationsaufwand quadratisch an so dass XP Projekten eine naturliche Grenze hinsichtlich der Teamgrosse gesetzt ist Die maximale Grosse wird gemeinhin bei zehn Teammitgliedern angesetzt Fehlende Eignung fur Festpreisprojekte Bearbeiten Ein weiterer haufiger Kritikpunkt ist dass XP fur Festpreisprojekte nicht geeignet sei Da der Kunde einen festen Preis zahlt muss der Auftragnehmer in irgendeiner Form sicherstellen dass er fur diesen Preis auch nur eine festgelegte Leistung erbringen muss Die Leistungserbringung so lange bis der Kunde zufrieden ist kann in immer neuen Kundenanforderungen munden so dass die Aufwande fur die Realisierung nicht abzusehen sind Die Festlegung der Festleistung als Inhalt des Werkvertrages entsprache jedoch einer Spezifikation und ist somit in XP verpont Es gibt einige Ansatze XP dennoch mit Festpreisprojekten kompatibel zu machen Versicherungspramien auf die Schatzung User Storys bzw die Story Cards werden zum Vertragsgegenstand besondere Preismodelle wie Aufwandspreis mit Obergrenze Phasenfestpreis oder Anforderungseinheitspreis Die Wirksamkeit dieser Ansatze ist jedoch unklar User Storys konnen zu unprazise sein um das Gewerk gegen unerwartete technische Anforderungen abzusichern Die angesprochenen Preismodelle entsprechen nur noch bedingt einem Festpreis und damit Werkvertrag so dass fraglich ist ob ein Kunde mit der Vorgabe eines Festpreises darauf eingehen wurde Selbiges gilt auch fur Versicherungspramien Feste Fertigstellungstermine Bearbeiten Die iterative Vorgehensweise von XP und der fehlende Projektplan legen bereits nahe dass die Fertigstellung eines fachlich gewunschten Funktionsumfangs zu einem gesetzten Termin nicht ohne weiteres garantiert werden kann Zwar wird zu dem gesetzten Termin etwas fertig sein da der Fokus jeder Iteration auf einer ausfuhrbaren ggf sogar produktionsfahigen Software liegt welche fachlichen Aspekte dies jedoch tatsachlich sind kann nicht vorherbestimmt werden umso weniger als Uberstunden verpont sind und das Ausmass notiger Refactorings auf Grund beweglicher Anforderungen nur schwer abgeschatzt werden kann Einsatz in verteilten Umgebungen Bearbeiten XP gilt in verteilten Umgebungen als schwerer einsetzbar als herkommliche Modelle Der direkte Kontakt der Entwickler untereinander und zum Kunden ist problematisch falls verschiedene Kunden existieren oder die Beteiligten raumlich getrennt arbeiten so zum Beispiel bei teilweise ausgelagerten Entwicklungen Outsourcing Kritik an einzelnen Praktiken Bearbeiten Die stets erneute Erstellung von Testfallen und die automatisierte permanente Ausfuhrung der Tests kann in komplexen oder nebenlaufigen Anwendungen und verteilten Systemen aufwandig sein Wenn sich keine Rollen ausbilden muss jeder alles wissen statt einzelne Schwerpunkte im Team zu setzen klassisches Beispiel GUI Entwicklung und Datenbank Entwicklung was die Gesamtleistung des Teams vermindern kann Personalpolitik Bearbeiten Da das Team im Vordergrund steht durfen einzelne Entwickler nicht nach dem Umfang ihrer entwickelten Funktionalitat honoriert werden Insbesondere der Honorarvertrag ist kein geeignetes Vergutungsmodell bei Anwendung des Vorgehensmodells der XP Siehe auch BearbeitenCrystal agiles Vorgehensmodell Scrum agiles Vorgehensmodell das gut mit XP harmoniert 14 Literatur BearbeitenKent Beck Extreme Programming Explained Embrace Change Addison Wesley 1999 ISBN 0 201 61641 6 2 Auflage 2004 ISBN 0 321 27865 8 Kent Beck Extreme Programming Das Manifest Addison Wesley 2000 ISBN 3 8273 1709 6 deutsche Ubersetzung The XP Series Kent Beck Martin Fowler Planning Extreme Programming Addison Wesley 2000 ISBN 0 201 71091 9 Ron Jeffries et al Extreme Programming Installed Addison Wesley 2000 ISBN 0 201 70842 6 Giancarlo Succi Michele Marchesi Extreme Programming Examined Addison Wesley 2001 ISBN 0 201 71040 4 James Newkirk Robert C Martin Extreme Programming in Practice Addison Wesley 2001 ISBN 0 201 70937 6 William C Wake Extreme Programming Explored Addison Wesley 2001 ISBN 0 201 73397 8 Ken Auer Roy Miller Extreme Programming Applied Addison Wesley 2001 ISBN 0 201 61640 8 Pete McBreen Questioning Extreme Programming Addison Wesley 2002 ISBN 0 201 61640 8 Giancarlo Succi et al Extreme Programming Perspectives Addison Wesley 2002 ISBN 0 201 77005 9 Doug Wallace et al Extreme Programming for Web Projects Addison Wesley 2002 ISBN 0 201 79427 6 Lisa Crispin Tip House Testing Extreme Programming Addison Wesley 2002 ISBN 0 321 11355 1 Scott W Ambler Agile Modeling Effective Practices for eXtreme Programming and the Unified Process Wiley John amp Sons 2002 ISBN 0 471 20282 7 Ron Jeffries Extreme Programming Adventures in C Microsoft Press 2004 ISBN 0 7356 1949 2 Henning Wolf et al eXtreme Programming Eine Einfuhrung mit Empfehlungen und Erfahrungen aus der Praxis dpunkt 2 Auflage 2005 ISBN 3 89864 339 5 Weblinks BearbeitenDeutsch Podcast zum Thema Extreme Programming vom Chaosradio Express Artikel aus Die Zeit Extreme Programming Back to Basics Memento vom 8 August 2017 im Internet Archive PDF 110 KiB Was ist Extreme Programming von Frank Westphal OpenSource Entwicklung und ihre Dynamiken Memento vom 18 Marz 2013 im Internet Archive mit Kapiteln uber Agile Methoden und XP Englisch Agile Alliance Extreme Programming A gentle introduction XP Ron Jeffries XP Ward Cunningham XP The New Methodology Martin Fowler Fachkonferenzen zum Thema XP Days Deutschland die jahrliche XP Konferenz in DeutschlandEinzelnachweise Bearbeiten Tom DeMarco Timothy Lister Barentango Hanser Fachbuch Marz 2003 ISBN 3 446 22333 9 Kent Beck Extreme Programming Explained Embrace Change 1st Edition Addison Wesley 2000 ISBN 0 201 61641 6 Kent Beck Cynthia Andres Extreme Programming Explained Embrace Change 2nd Edition Addison Wesley Dezember 2004 ISBN 0 321 27865 8 The Standish Group The CHAOS Report 1994 Abgerufen am 12 Januar 2020 englisch 12 Juni 2006 Chrysler Comprehensive Compensation System Chrysler Goes To Extremes Memento vom 13 Januar 2015 im Internet Archive PDF englisch 188 kB 9 Juni 2006 Chrysler Comprehensive Compensation System Extreme Programming Considered Harmful for Reliable Software Development PDF englisch 6 Februar 2002 Chrysler Comprehensive Compensation Project to replace existing payroll applications with a single application englisch 16 Oktober 2013 Ward Cunningham Kent Beck et al Manifesto for Agile Software Development Memento des Originals vom 27 Marz 2021 imInternet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www agilemanifesto org englisch 2001 Forrester Research Corporate IT Leads The Second Wave Of Agile Adoption Memento vom 16 Oktober 2007 imInternet Archive englisch 30 November 2005 C2 Companies Doing Xp englisch 23 Juli 2006 Object Mentor Inc Companies using XP Customers Memento vom 23 April 2006 imInternet Archive englisch 23 Juli 2006 Dr Dobb s Going to Extremes englisch 2 Januar 2002 a b Computerworld Sabre takes extreme measures Memento vom 13 Marz 2009 imInternet Archive englisch 29 Marz 2004 Henrik Kniberg Scrum and XP from the Trenches PDF englisch 27 Juni 2007 nbsp Dieser Artikel wurde am 17 Juli 2006 in dieser Version in die Liste der lesenswerten Artikel aufgenommen Abgerufen von https de wikipedia org w index php title Extreme Programming amp oldid 237431043