Viele Unternehmen und Teams haben ihren Entwicklungsprozess umgestellt und agile Softwareentwicklung eingeführt. Begleitend zum Prozess müssen aber auch Fähigkeiten und Praktiken erlernt werden, um den Herausforderungen agiler Entwicklungsprozesse, insbesondere denen von Scrum gerecht zu werden.
Im Gegensatz zu anderen Fachbüchern zum Thema Scrum konzentriert sich dieses Buch auf die Aufgaben des agilen Entwicklerteams. Es führt in die Praktiken sowie richtige Anwendung agiler Entwicklungstechniken ein und beantwortet Fragen zu spezifischen Situationen im Projekt.
Das Buch stellt ein Einführung- und ein Referenzwerk für jeden agilen Entwickler zu diesen Themen dar:
Agile Grundlagen für Entwickler
Scrum, Lean und andere Methoden
Qualität und agile Prozesse
Konfigurationsmanagement für agile Teams
Kontinuierliche Integration
Testen, testgetriebenes Design und Refactoring
Clean Code
Architektur und emergentes Design
Das agile Team
Aufgaben und Situationen im Projekt
Kontinuierliches Lernen
Zusammenarbeit mit Product Owner und Kunden
Arbeiten im Unternehmen
Inhaltsverzeichnis
1;Inhaltsverzeichnis;5 2;Kapitel 1 Einführung ;15 2.1;1.1 Wissen, Techniken und Skills ;16 2.2;1.2 Agile Engineering Skills ;16 2.3;1.3 Skills zur Zusammenarbeit ;17 2.4;1.4 Skills zur erfolgreichen Arbeit in der Organisation ;17 2.5;1.5 Sieben Leitlinien für agile Entwickler ;18 3;Kapitel 2 Agile Grundlagen ;21 3.1;2.1 Agiler Nutzen für Entwickler ;21 3.2;2.2 Agiler Nutzen für Unternehmen ;22 3.3;2.3 Woher kommt Agil ;23 3.4;2.4 Das Agile Manifest ;24 3.5;2.5 Wann kann man Agil einsetzen ;26 3.6;2.6 Softwareentwicklung ist empirisch ;29 3.7;2.7 Empirische Prozesse und Selbstorganisation ;30 3.8;2.8 Feedback und Demings PDCA-Zyklus ;31 3.9;2.9 Und die Methoden? ;33 4;Kapitel 3 Scrum-Konzepte ;37 4.1;3.1 Warum Scrum? ;37 4.2;3.2 Grenzen von Scrum ;38 4.3;3.3 Wesentliche Scrum-Begriffe ;39 4.4;3.4 Scrum im Kontext ;41 4.5;3.5 Der Scrum-Prozess ;42 4.6;3.6 Ready and Done ;44 4.7;3.7 Scrum-Rollen ;44 4.8;3.8 Scrum-Meetings ;49 4.9;3.9 Scrum-Artefakte ;53 4.10;3.10 Sprints organisieren ;58 5;Kapitel 4 Lean und Kanban ;67 5.1;4.1 Lean Thinking - die Wurzel von Scrum ;67 5.2;4.2 Prozessmerkmale von Lean ;68 5.3;4.3 Lean in der Softwareentwicklung ;69 5.4;4.4 Das Lean-Toolkit ;71 5.5;4.5 Abgrenzung von lean und agil ;74 5.6;4.6 Was lean nicht bedeutet ;75 5.7;4.7 Kanban ;76 6;Kapitel 5 Entwickeln im agilen Projekt ;83 6.1;5.1 Technische Exzellenz ;84 6.2;5.2 Hindernisse ;85 6.3;5.3 Technische Ziele und Mittel ;86 7;Kapitel 6 Qualität ;91 7.1;6.1 Innere Qualität: die Arbeit an der Software ;94 7.2;6.2 Äußere Qualität: die Arbeit in der Organisation ;95 7.3;6.3 Umgang mit Fehlern ;97 7.4;6.4 Metriken ;99 8;Kapitel 7 Konfigurationsmanagement ;105 8.1;7.1 Grundlagen ;105 8.2;7.2 Praxiswissen ;110 8.3;7.3 CM-Praktiken für Scrum-Teams ;126 8.4;7.4 Schritte in die Praxis ;138 9;Kapitel 8 Kontinuierliche Integration ;141 9.1;8.1 Build-Automation ;143 9.2;8.2 Continuous Integration leben ;153 9.3;8.3 Continuous-Integration-Systeme ;163 9.4;8.4 Schritte in die Praxis ;175 10;Kapitel
9 Agiles Testen ;177 10.1;9.1 Testkategorien ;179 10.2;9.2 Testautomation ;186 10.3;9.3 Testumgebungen ;190 10.4;9.4 Testgetriebene Entwicklung ;192 10.5;9.5 Schritte in die Praxis ;203 11;Kapitel 10 Refaktorisieren ;207 11.1;10.1 Wozu Refaktorisieren ;209 11.2;10.2 Wenn Code verrottet: kontinuierlich Refaktorisieren ;209 11.3;10.3 Refaktorisieren im TDD-Rhythmus ;210 11.4;10.4 Übel riechender Code ;212 11.5;10.5 Refaktorisierungen ;215 11.6;10.6 Große Refactorings ;222 11.7;10.7 Altsysteme testbar machen ;223 11.8;10.8 Schritte in die Praxis ;224 12;Kapitel 11 Clean Code ;227 12.1;11.1 Elementare Sauberkeit ;228 12.2;11.2 Grundprinzipien ;230 12.3;11.3 SOLID-Prinzipien ;234 12.4;11.4 Schritte in die Praxis ;238 13;Kapitel 12 Emergente Architektur ;241 13.1;12.1 Über Architektur ;241 13.2;12.2 Produktvision und Architektur ;244 13.3;12.3 Architektur beschreiben ;246 13.4;12.4 Architektur herstellen: Vorgehensweisen ;254 14;Kapitel 13 Pair Programming ;265 14.1;13.1 Was ist Pair Programming? ;265 14.2;13.2 Vorteile und Mythen zu Pair Programming ;265 14.3;13.4 Wie führe ich Pair Programming ein? ;268 14.4;13.5 Was sind gute Praktiken? ;270 14.5;13.6 Grenzen von Pair Programming ;271 14.6;13.7 Schritte in die Praxis ;271 15;Kapitel 14 Das agile Team ;273 15.1;14.1 Der Weg zum Hochleistungsteam ;273 15.2;14.2 Breites Wissen statt Kopfmonopole;276 15.3;14.3 Motivation und Teamzufriedenheit ;279 15.4;14.4 Aufgaben und Situationen im Projekt ;280 15.5;14.5 Wege in die Praxis ;280 16;Kapitel 15 Aufgaben und Situationen im Projekt ;281 16.1;15.1 Vor dem Projektstart ;281 16.2;15.2 Arbeiten am Product Backlog ;286 16.3;15.3 Planen und Schätzen ;293 16.4;15.4 Arbeiten mit User Stories ;301 16.5;15.5 Schritte in die Praxis ;314 17;Kapitel 16 Soft Skills für agile Entwickler ;315 17.1;16.1 Kommunikationskompetenz ;315 17.2;16.2 Kollegialität ;321 17.3;16.3 Service für Product Owner und Kunden ;322 17.4;16.4 Konfliktkompetenz ;324 17.5;16.5 Wege in die Praxis ;327 18;Kapitel 17
Kontinuierliches Lernen ;329 18.1;17.1 Lernen als Mindset ;329 18.2;17.3 Methoden ;331 18.3;17.4 Kata oder die Pflichtübungen ;332 18.4;17.5 Coding Dojo ;333 18.5;17.6 Design Sense entwickeln ;335 18.6;17.7 Schritte in die Praxis ;336 19;Kapitel 18 Arbeitstechniken ;337 19.1;18.1 Kreativitätstechniken ;337 19.2;18.2 Visualisieren ;340 19.3;18.3 Zeitmanagement-Methoden ;342 19.4;18.4 Der Teamraum ;348 19.5;18.5 Aus der Box denken - Open Space ;349 20;Kapitel 19 Produkt und Business Value ;353 20.1;19.1 Wertschöpfung ;354 20.2;19.2 Product-Backlog-Priorisierung ;356 21;Kapitel 20 Aufgaben skalieren und verteilen ;361 21.1;20.1 Grundlagen der Skalierung ;361 21.2;20.2 Synchronisierung im Sprint ;365 21.3;20.3 Rollen in mehreren Teams ;367 21.4;20.4 Verteiltes Arbeiten ;369 21.5;20.5 Kleine Projekte ;370 22;Kapitel 21 Scrum im Unternehmen ;373 22.1;21.1 Organisatorische Gründe für Ineffektivität ;373 22.2;21.2 Scrum in der Compliance-Sprache ;376 22.3;21.3 Agile Entwicklung und Karriere ;377 22.4;21.4 Agile Werte im Unternehmen verankern ;378 22.5;21.5 Agiles Controlling und Reporting ;378 22.6;21.6 Das Projektgedächtnis organisieren ;380 22.7;21.7 Buchhaltung und Abrechnung ;380 22.8;21.8 Schritte in die Praxis ;381 23;Kapitel 22 Communities of Practice ;383 23.1;22.1 Motivation von CoPs ;383 23.2;22.2 Basiselemente einer CoP ;384 23.3;22.3 Formelle Gestaltungskriterien ;384 23.4;22.4 Wie gründe ich eine CoP? ;387 23.5;22.5 Schritte in die Praxis ;388 24;Epilog;389 25;Stichwortverzeichnis;391