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 Grenzen von Pair Programming | 271 |
13.7 Schritte in die Praxis | 271 |
Kapitel 14 – Das agile Team | 273 |
14.1 Der Weg zum Hochleistungsteam | 273 |
14.2 Breites Wissen statt Kopfmonopole | 276 |
14.3 Motivation und Teamzufriedenheit | 279 |
14.4 Aufgaben und Situationen im Projekt | 280 |
14.5 Wege in die Praxis | 280 |
Kapitel 15 – Aufgaben und Situationen im Projekt | 281 |
15.1 Vor dem Projektstart | 281 |
15.2 Arbeiten am Product Backlog | 286 |
15.3 Planen und Schätzen | 293 |
15.4 Arbeiten mit User Stories | 301 |
15.5 Schritte in die Praxis | 314 |
Kapitel 16 – Soft Skills für agile Entwickler | 315 |
16.1 Kommunikationskompetenz | 315 |
16.2 Kollegialität | 321 |
16.3 Service für Product Owner und Kunden | 322 |
16.4 Konfliktkompetenz | 324 |
16.5 Wege in die Praxis | 327 |
Kapitel 17 – Kontinuierliches Lernen | 329 |
17.1 Lernen als Mindset | 329 |
17.3 Methoden | 331 |
17.4 Kata oder die Pflichtübungen | 332 |
17.5 Coding Dojo | 333 |
17.6 Design Sense entwickeln | 335 |
17.7 Schritte in die Praxis | 336 |
Kapitel 18 – Arbeitstechniken | 337 |
18.1 Kreativitätstechniken | 337 |
18.2 Visualisieren | 340 |
18.3 Zeitmanagement-Methoden | 342 |
18.4 Der Teamraum | 348 |
18.5 Aus der Box denken - Open Space | 349 |
Kapitel 19 – Produkt und Business Value | 353 |
19.1 Wertschöpfung | 354 |
19.2 Product-Backlog-Priorisierung | 356 |
Kapitel 20 – Aufgaben skalieren und verteilen | 361 |
20.1 Grundlagen der Skalierung | 361 |
20.2 Synchronisierung im Sprint | 365 |
20.3 Rollen in mehreren Teams | 367 |
20.4 Verteiltes Arbeiten | 369 |
20.5 Kleine Projekte | 370 |
Kapitel 21 – Scrum im Unternehmen | 373 |
21.1 Organisatorische Gründe für Ineffektivität | 373 |
21.2 Scrum in der Compliance-Sprache | 376 |
21.3 Agile Entwicklung und Karriere | 377 |
21.4 Agile Werte im Unternehmen verankern | 378 |
21.5 Agiles Controlling und Reporting | 378 |
21.6 Das Projektgedächtnis organisieren | 380 |
21.7 Buchhaltung und Abrechnung | 380 |
21.8 Schritte in die Praxis | 381 |
Kapitel 22 – Communities of Practice | 383 |
22.1 Motivation von CoPs | 383 |
22.2 Basiselemente einer CoP | 384 |
22.3 Formelle Gestaltungskriterien | 384 |
22.4 Wie gründe ich eine CoP? | 387 |
22.5 Schritte in die Praxis | 388 |
Epilog | 389 |
Stichwortverzeichnis | 391 |