| Inhaltsverzeichnis | 5 |
---|
| Kapitel 1 – Einführung | 15 |
---|
| 1.1 Wissen, Techniken und Skills | 16 |
| 1.2 Agile Engineering Skills | 16 |
| 1.3 Skills zur Zusammenarbeit | 17 |
| 1.4 Skills zur erfolgreichen Arbeit in der Organisation | 17 |
| 1.5 Sieben Leitlinien für agile Entwickler | 18 |
| Kapitel 2 – Agile Grundlagen | 21 |
---|
| 2.1 Agiler Nutzen für Entwickler | 21 |
| 2.2 Agiler Nutzen für Unternehmen | 22 |
| 2.3 Woher kommt Agil | 23 |
| 2.4 Das Agile Manifest | 24 |
| 2.5 Wann kann man Agil einsetzen | 26 |
| 2.6 Softwareentwicklung ist empirisch | 29 |
| 2.7 Empirische Prozesse und Selbstorganisation | 30 |
| 2.8 Feedback und Demings PDCA-Zyklus | 31 |
| 2.9 Und die Methoden? | 33 |
| Kapitel 3 – Scrum-Konzepte | 37 |
---|
| 3.1 Warum Scrum? | 37 |
| 3.2 Grenzen von Scrum | 38 |
| 3.3 Wesentliche Scrum-Begriffe | 39 |
| 3.4 Scrum im Kontext | 41 |
| 3.5 Der Scrum-Prozess | 42 |
| 3.6 Ready and Done | 44 |
| 3.7 Scrum-Rollen | 44 |
| 3.8 Scrum-Meetings | 49 |
| 3.9 Scrum-Artefakte | 53 |
| 3.10 Sprints organisieren | 58 |
| Kapitel 4 – Lean und Kanban | 67 |
---|
| 4.1 Lean Thinking - die Wurzel von Scrum | 67 |
| 4.2 Prozessmerkmale von „Lean“ | 68 |
| 4.3 „Lean“ in der Softwareentwicklung | 69 |
| 4.4 Das Lean-Toolkit | 71 |
| 4.5 Abgrenzung von „lean“ und agil | 74 |
| 4.6 Was „lean“ nicht bedeutet | 75 |
| 4.7 Kanban | 76 |
| Kapitel 5 – Entwickeln im agilen Projekt | 83 |
---|
| 5.1 Technische Exzellenz | 84 |
| 5.2 Hindernisse | 85 |
| 5.3 Technische Ziele und Mittel | 86 |
| Kapitel 6 – Qualität | 91 |
---|
| 6.1 Innere Qualität: die Arbeit an der Software | 94 |
| 6.2 Äußere Qualität: die Arbeit in der Organisation | 95 |
| 6.3 Umgang mit Fehlern | 97 |
| 6.4 Metriken | 99 |
| Kapitel 7 – Konfigurationsmanagement | 105 |
---|
| 7.1 Grundlagen | 105 |
| 7.2 Praxiswissen | 110 |
| 7.3 CM-Praktiken für Scrum-Teams | 126 |
| 7.4 Schritte in die Praxis | 138 |
| Kapitel 8 – Kontinuierliche Integration | 141 |
---|
| 8.1 Build-Automation | 143 |
| 8.2 Continuous Integration leben | 153 |
| 8.3 Continuous-Integration-Systeme | 163 |
| 8.4 Schritte in die Praxis | 175 |
| Kapitel 9 – Agiles Testen | 177 |
---|
| 9.1 Testkategorien | 179 |
| 9.2 Testautomation | 186 |
| 9.3 Testumgebungen | 190 |
| 9.4 Testgetriebene Entwicklung | 192 |
| 9.5 Schritte in die Praxis | 203 |
| Kapitel 10 – Refaktorisieren | 207 |
---|
| 10.1 Wozu Refaktorisieren | 209 |
| 10.2 Wenn Code verrottet: kontinuierlich Refaktorisieren | 209 |
| 10.3 Refaktorisieren im TDD-Rhythmus | 210 |
| 10.4 Übel riechender Code | 212 |
| 10.5 Refaktorisierungen | 215 |
| 10.6 Große Refactorings | 222 |
| 10.7 Altsysteme testbar machen | 223 |
| 10.8 Schritte in die Praxis | 224 |
| Kapitel 11 – Clean Code | 227 |
---|
| 11.1 Elementare Sauberkeit | 228 |
| 11.2 Grundprinzipien | 230 |
| 11.3 SOLID-Prinzipien | 234 |
| 11.4 Schritte in die Praxis | 238 |
| Kapitel 12 – Emergente Architektur | 241 |
---|
| 12.1 Über Architektur | 241 |
| 12.2 Produktvision und Architektur | 244 |
| 12.3 Architektur beschreiben | 246 |
| 12.4 Architektur herstellen: Vorgehensweisen | 254 |
| Kapitel 13 – Pair Programming | 265 |
---|
| 13.1 Was ist Pair Programming? | 265 |
| 13.2 Vorteile und Mythen zu Pair Programming | 265 |
| 13.4 Wie führe ich Pair Programming ein? | 268 |
| 13.5 Was sind gute Praktiken? | 270 |
| 13.6 Gren
|