|
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 |
|