Extreme Programming planen Programmer’s Choice Kent Beck Martin Fowler Extreme Programming planen An imprint of Pearson Education München (cid:127) Boston (cid:127) San Francisco (cid:127) Harlow, England Don Mills, Ontario (cid:127) Sydney (cid:127) Mexico City Madrid (cid:127) Amsterdam Die Deutsche Bibliothek – CIP-Einheitsaufnahme Ein Titeldatensatz für diese Publikation ist bei Der Deutschen Bibliothek erhältlich. Die Informationen in diesem Buch werden ohne Rücksicht auf einen eventuellen Patentschutz veröffentlicht. Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt. Bei der Zusammenstellung von Texten und Abbildungen wurde mit größter Sorgfalt vorgegangen. Trotzdem können Fehler nicht vollständig ausgeschlossen werden. Verlag, Herausgeber und Autoren können für fehlerhafte Angaben und deren Folgen weder juristische Verantwortung noch irgendeine Haftung übernehmen. Für Verbesserungsvorschläge und Hinweise auf Fehler sind Verlag und Herausgeber dankbar. Alle Rechte vorbehalten, auch die der fotomechanischen Wiedergabe und Speicherung in elektronischen Medien. Die gewerbliche Nutzung der in diesem Produkt gezeigten Modelle und Arbeiten ist nicht zulässig. Fast alle Hardware- und Softwarebezeichnungen, die in diesem Buch erwähnt werden, sind gleichzeitig ein- getragene Warenzeichen oder sollten als solche betrachtet werden. Umwelthinweis: Dieses Buch wurde auf chlorfrei gebleichtem Papier gedruckt. Die Einschrumpffolie – zum Schutz vor Verschmutzung – ist aus umweltverträglichem und recyclingfähigem PE-Material. Die amerikanische Originalausgabe ist erschienen bei Addison-Wesley USA unter dem Titel »Planning Extreme Programming«, ISBN 0-201-71091-9 © 2001 by Kent Beck and Martin Fowler 5 4 3 2 1 05 04 03 02 01 ISBN 3-8273-1832-7 © 2001 by Addison-Wesley Verlag, ein Imprint der Pearson Education Deutschland GmbH, Martin-Kollar-Str. 10-12, D-81829 München/Germany Alle Rechte vorbehalten Einbandgestaltung: Christine Rechl, München Titelbild: Acer rufinerve, Rotnerviger Ahorn. © Karl Blossfeldt Archiv – Ann und Jürgen Wilde, Zülpich/VG Bild – Kunst Bonn, 2001. Übersetzung: G&U Technische Dokumentation GmbH, Flensburg Lektorat: Martin Asbach, [email protected] Fachlektorat: Frank Westphal, Hamburg Herstellung: Monika Weiher, [email protected] Satz: reemers publishing services gmbh, Krefeld, www.reemers.de Druck und Verarbeitung: Bercker Graphischer Betrieb, Kevelaer Printed in Germany Inhaltsverzeichnis Danksagungen x Vorwort xi Einleitung xiii 1 Warum planen? 1 Warum wir planen sollen 2 Was wir zum Planen brauchen 4 Die Planungsfalle 5 2 Angst 7 Nicht eingestandene Angst ist die Ursache aller Fehler in Softwareprojekten 8 Die Rechte des Kunden 9 Die Rechte des Programmierers 9 3 Software fahren 11 4 Das Gleichgewicht wahren 13 Der Kunde 15 Einen Kunden finden 16 Richtlinien für Kunden 16 5 Übersichten 19 Vom Gesamtbild zu den Einzelheiten 19 Von den Einzelheiten zum Gesamtbild 21 6 Zu viel zu tun 23 7 Vier Variablen 25 Kosten 26 Qualität 27 Zeit und Umfang 28 Geschichten kaufen 29 vi Inhaltsverzeichnis 8 Das Wetter von gestern 31 Die Geschichte 32 Wie es funktioniert 32 9 Den Umfang eines Projektes planen 33 Den großen Plan aufstellen 35 Ich soll mir Sorgen machen? 36 10 Versionsplanung 39 Wer ist für die Versionsplanung zuständig? 40 Wie zuverlässig ist der Versionsplan? 41 Wie weit sollten Sie im Voraus planen? 41 Wie planen Sie die Infrastruktur? 42 Wie archivieren Sie den Versionsplan? 42 Wie viel können Sie in einen Versionsschritt hineinstecken? 43 Kapitel zur Versionsplanung 43 11 Geschichten schreiben 45 Grundsätze guter Geschichten 46 Reaktionen auf Schätzungen 48 Kundengeschichten Prioritäten zuweisen 48 Verfolgbarkeit 49 Kundengeschichten aufteilen 49 Ausschmückungen 50 Der Ablauf beim Schreiben von Geschichten 51 Wann sind Sie mit dem Schreiben von Geschichten fertig 52 Kundengeschichten abhaken 52 12 Schätzung 57 Die Größe einer Geschichte schätzen 58 Schätzen, wie viel Sie innerhalb einer Iteration schaffen können 59 Die Bedeutung der idealen Zeit 60 Ihre Schätzungen verbessern 62 Inhaltsverzeichnis vii 13 Die Geschichten ordnen 63 Geschäftswert 64 Technisches Risiko 66 Einen Kompromiss finden 67 Ein Beispiel für einen Versionsplan 67 14 Ereignisse bei der Versionsplanung 71 Die Prioritäten von Geschichten ändern 71 Eine Geschichte hinzufügen 71 Den Versionsplan neu aufstellen 72 15 Der erste Plan 75 Den ersten Plan erstellen 75 Ihre Iterationslänge festlegen 77 Zu Beginn 78 16 Variationen in der Versionsplanung 81 Kurze Versionen 81 Lange Versionen 82 Kurze Geschichten 83 17 Iterationsplanung 85 Niemals einen Termin verpassen 86 18 Besprechung zur Iterationsplanung 89 Die Geschichte verstehen 89 Die Aufgaben für eine Iteration aufzählen 90 Technische Aufgaben 91 Die Geschwindigkeit eines Programmierers messen 92 Aufgaben übernehmen und einschätzen 93 Unbeliebte Tätigkeiten 94 Zu viel zu tun 94 Zu wenig zu tun 95 Beispiel (Iterationsplan) 95 viii Inhaltsverzeichnis 19 Eine Iteration verfolgen 99 Den Fortschritt innerhalb einer Iteration überprüfen 99 Ins Hintertreffen geraten 103 Wenn ein Programmierer noch Zeit übrig hat 104 Wann ist die Iteration abgeschlossen? 105 Wann ist eine Geschichte abgeschlossen? 105 Beispiel für eine Iterationsverfolgung 106 20 Besprechungen im Stehen 109 21 Grafische Darstellungen 111 Beispiele 112 Produktivität 112 Das Integrationsproblem 113 Die zu zeigenden Grafiken auswählen 114 22 Mit Fehlern umgehen 117 Mit Produktionsfehlern umgehen 119 Das Team zur Produktionsunterstützung 120 Mit kritischen Fehlern umgehen 120 23 Änderungen am Team 121 Kommen 121 Gehen 121 Das Team aufteilen 122 Weiterentwicklung 122 24 Werkzeuge 123 25 Geschäftsbeziehungen 125 Outsourcing 125 Interne Entwicklung 126 Massenproduktion 128 26 Warnsignale 131 Fehlende Schätzungen 132 Kunden treffen keine Entscheidungen 133 Fehlerberichte 133 Inhaltsverzeichnis ix Halbe Sachen 134 Fehlerhafte Entwicklungsstufen 134 Kunden sorgen nicht für die Fertigstellung 134 27 Ihr eigener Prozess 135 28 Die XP-Reihe 137 Die Bücher 138 Stichwortverzeichnis 139 Danksagungen Vielen Dank an unsere Testleser: Mark Windholtz, Ralph Johnson, Onkel Bob Martin, John Brewer, Phil Goodwin, Jean-Marc Heneman, Erik Meade, Alan Fran- cis, Josu Oyanguren, Jim Stearns, Joel Jones, Bill Caputo, Randy Coulman, Andrew Nielsen, Brian Button, Don Wells, Gary Clayburg, James Goebel, Paul Sinnett, Bill deHora, Andreas Stankewitz, Frank Westphal, Georg Tuparev, Stuart Donovan, Joi Ellis, Alistair Cockburn, Matt Simons, Rob Mee und Joshua Kerievsky. Kent würde gerne Cindee, Bethany, Lincoln, Lindsey, Forrest und Joëlle dafür danken, dass sie ihre Zeit geopfert haben. Auch war es die pure Freude, die ich während einer langen Zeit hatte, meinem brillanten Co-Autor Martin beim Umschiffen von Klippen zuzuschauen. Martin möchte seinen Kollegen bei ThoughtWorks dafür danken, dass sie viele dieser Ideen probiert und vorwärts gebracht und ihm die Zeit gegeben haben, dieses Buch zu schreiben. Aber ganz besonders möchte er Cindy aus mehr Grün- den danken, als dieses Buch fassen könnte. Zusammen möchten wir uns bei unserem Herausgeber Mike Hendrickson und verschiedenen Mitarbeitern von Addison-Wesley Longman, Heather Peterson, Heather Olszyk, Mike Guzikowski und Tyrrell Albaugh, bedanken. Vielen Dank an Bob Coe und Ron Jeffries, weil sie uns vertraut haben und darü- ber hinaus gegangen sind. Unser größter Dank geht an Robert Cecil »Onkel Bob« Martin. Sie werden viele seiner Worte und Gedanken auf diesen Seiten finden.