Geleitwort | 8 |
Inhalt | 10 |
1 Einleitung | 16 |
1.1 Agile Softwarewicklung und Scrum | 16 |
1.2 Zielgruppe und Zielsetzung | 17 |
1.3 Überblick über das Buch | 18 |
1.4 Java als Beispielsprache | 19 |
1.5 Danke | 19 |
2 Architekturvision | 20 |
2.1 Die Architekturvision im Überblick | 20 |
2.2 Wünschenswerte Eigenschaften der Vision | 21 |
2.3 Beispiel einer Architekturvision | 23 |
2.4 Die Erstellung der Architekturvision | 23 |
2.5 Die Form der Vision | 25 |
2.6 Architekturvision und Legacy-Systeme | 25 |
2.7 Zusammenfassung | 27 |
3 Inkrementeller Entwurf | 28 |
3.1 Der inkrementelle Entwurf im Überblick | 28 |
3.2 Flache Aufwandskurve | 29 |
3.3 Qualitätskriterien für den inkrementellen Entwurf | 30 |
3.4 Entwurfsprinzipien | 31 |
3.5 Inkrementeller Entwurf und agile Entwicklungspraktiken | 34 |
3.6 Zusammenfassung | 34 |
4 Continuous Integration | 36 |
4.1 Continuous Integration im Überblick | 37 |
4.2 Ein Beispiel | 38 |
4.3 Die Continuous-Integration-Umgebung | 38 |
4.4 Kontinuierliches Feedback | 39 |
4.5 Umgang mit Feedback | 41 |
4.6 10-Minuten-Build | 42 |
4.7 Continuous-Integration-Produkte | 43 |
4.8 Feature-Branches und Feature-Flags | 46 |
4.9 Continuous Integration und Scrum | 47 |
4.10 Einführung von Continuous Integration | 49 |
4.11 Zusammenfassung | 50 |
5 Testgetriebene Entwicklung | 52 |
5.1 Testgetriebene Entwicklung im Überblick | 52 |
5.2 Der Test-Code-Refactor-Zyklus | 53 |
5.3 Ein Beispiel für testgetriebene Entwicklung | 54 |
5.4 Rhythmus | 67 |
5.5 Isoliertes Testen mit Attrappen | 67 |
5.6 Integrationstests | 77 |
5.7 Heuristiken für gute Tests | 79 |
5.8 Weiterführende Hinweise | 80 |
5.9 Zusammenfassung | 81 |
6 Refactoring | 82 |
6.1 Refactoring im Überblick | 82 |
6.2 Refactoring und Tests | 83 |
6.3 Ein Beispiel | 84 |
6.4 Kleine Schritte auf dem grünen Pfad | 86 |
6.5 Nutzen von Refactoring | 87 |
6.6 Risiken von fehlendem Refactoring | 87 |
6.7 Wiederholungen? Niemals! | 88 |
6.8 SOLIDes Design und Entwurfsmuster | 89 |
6.9 Weitere Refactorings | 90 |
6.10 Refactoring von Tests | 92 |
6.11 Große Refactorings | 93 |
6.12 Refactorings und die Definition of Done | 94 |
6.13 Refactoring und Teamarbeit | 94 |
6.14 Refactoring von Legacy-Code | 95 |
6.15 Zusammenfassung | 95 |
7 Automatisierte Refactorings | 96 |
7.1 Automatisierte Refactorings im Überblick | 96 |
7.2 Der Klassiker: Rename | 97 |
7.3 Schritt für Schritt | 97 |
7.4 Aufspalten | 99 |
7.5 Wunderwaffe »Inline« | 101 |
7.6 Große Refactorings | 104 |
7.7 Parameter | 105 |
7.8 Interfaces und Oberklassen | 107 |
7.9 Refactoring ohne Tests | 108 |
7.10 Gemischtsprachige Systeme und DSLs | 109 |
7.11 Grenzen | 110 |
7.12 Zusammenfassung | 110 |
8 Automatisierte Akzeptanztests | 112 |
8.1 Akzeptanztests im Überblick | 112 |
8.2 Formulierung guter Akzeptanztests | 116 |
8.3 Werkzeuge zur Testautomatisierung | 118 |
8.4 Akzeptanztestgetriebe Entwicklung | 123 |
8.5 Zusammenfassung | 125 |
9 Pair Programming und Collective Ownership | 126 |
9.1 Pair Programming im Überblick | 126 |
9.2 Nutzen von Pair Programming | 127 |
9.3 Rollenwechsel | 129 |
9.4 Wechsel des Partners | 129 |
9.5 Einstieg in Pair Programming | 130 |
9.6 Collective Ownership | 131 |
9.7 Pair Programming und Collective Ownership | 131 |
9.8 Collective Ownership für große Projekte | 132 |
9.9 Zusammenfassung | 132 |
10 Dojos und Katas | 134 |
10.1 Code-Katas | 134 |
10.2 Coding-Dojos | 137 |
10.3 Code-Katas und Coding-Dojos in Scrum | 138 |
10.4 Weitere Dojos | 138 |
10.5 Zusammenfassung | 139 |
11 Modellgetriebene Entwicklung | 140 |
11.1 Modellgetriebene Entwicklung im Überblick | 140 |
11.2 Ein Beispiel | 142 |
11.3 Modellgetriebene Entwicklung und agile Entwicklungspraktiken | 154 |
11.4 Inkrementelles Vorgehen | 154 |
11.5 Zusammenfassung | 156 |
12 Verteilte Entwicklung | 158 |
12.1 Verteilte und verstreute Featureteams | 158 |
12.2 Virtuelles Pair Programming | 160 |
12.3 Entwicklertests | 161 |
12.4 Akzeptanztests | 162 |
12.5 Collective Ownership | 163 |
12.6 Refactoring | 164 |
12.7 Continuous Integration | 164 |
12.8 Projektstart | 166 |
12.9 Anpassen der Entwicklungspraktiken | 166 |
12.10 Zusammenfassung | 167 |
13 Epilog | 168 |
Die Autoren | 172 |
Literatur | 176 |
Index | 180 |