Über die letzten zwölf Jahre habe ich immer mal wieder eine Buchempfehlung in unserem Magazin agile review veröffentlicht. Einige alte Ausgaben sind mittlerweile leider vergriffen. Die heutigen Buchreviews stammen aus der Ausgabe 1/2014. Die damalige Ausgabe hat sich mit dem Thema Skalierung auseinandergesetzt. Deshalb habe ich gleich eine ganze Reihe an Büchern zu agiler Skalierung zusammen gereviewt.
Zur Skalierung agiler Softwareentwicklung existieren viele Bücher. Das Thema beschäftigt die Experten seit langem. In der Praxis fällt es da schwer, eine angemessen Auswahl zu treffen, welche Literatur man sich denn zu Gemüte führen sollte, bevor man mit der Agilität im Großen loslegt. In diesem Sinne haben wir uns mit den derzeit am weitesten verbreiteten Werken zur Skalierung von Agilität in Unternehmen beschäftigt. Bei der Bewertung spielte für uns die gefühlte Sinnhaftigkeit des verfolgten Ansatzes eine prägende Rolle.
Dean Leffingwell: Scaling Software Agility: Best Practices for Large Enterprises
In seinem Buch Scaling Software Agility leitet Dean Leffingwell aus seinen Erfahrungen in großen Unternehmen Praktiken und Hinweise ab, wie man Agilität in großen Unternehmen skalieren sollte.
Das Buch teilt sich in drei Teile auf. Im ersten Teil geht es um die Grundlagen von Agilität. Das beinhaltet Einführungen in verschiedene agile Ansätze, inklusive XP, Scrum, und Lean sowie die heute weniger relevanten RUP, DSDM und FDD. Darüber hinaus grenzt Leffinwell agile Vorgehensweisen zum Wasserfallvorgehen ab. Er geht aber auch auf die Herausforderungen bei der Skalierung ein. Im zweiten Teil geht es um sieben Praktiken, die auch im skalierten Umfeld funktionieren. Für Leffingwell sind dies Teams, die aus Analysten, Programmierern und Testern bestehen, das Planen und Verfolgen, Iterations-Mechaniken, kleinere und häufigere Releases, eine Einführung in agiles Testen, Continuous Integration sowie Inspect & Adapt auf Team- und Organisationsebene. Der letzte Teil befasst sich mit den relevanten Themen in großen Unternehmen, wie z.B. Architektur, Multi-Team-Projekte, Management und Kundenführung. Leffingwell befasst sich außerdem damit, wie man ein großes Unternehmen verändern kann.
Alles in allem hat uns das Buch nicht so überzeugt. Diesen Eindruck untermauern mehrere beobachtete Schwächen. Zum einen tauchen immer wieder Checklisten auf, die dem Leser suggerieren, dass man messen kann, wie agil das Unternehmen bereits ist. Aus diesen könnte der unbedarfte Leser leider vorschnell ableiten, dass man irgendwann bei der perfekten Transition angekommen ist – und dann kann man sich mit dem neusten heißen Thema befassen. Darüber ist die Darstellung der Retrospektiven eher mechanistisch als zielführend für die Etablierung eines kontinuierlichen Verbesserungsprozesses. Dadurch dass Leffingwell auch keine Hinweise auf weiterführende Literatur zu Retrospektiven mitliefert, kann dieser große Hebel bei der Einführung von Agilität seine Effektivität verlieren. Die Vorstellung der verschiedenen Methoden zu Beginn ist nach unserem Eindruck im Verhältnis zu ausführlich geraten (ca. 1/3 des Buches befasst sich damit) und zudem mit Fehlern gespickt. So finden sich unter der Überschrift „Die zwölf Praktiken von XP“ 13 Unterpunkte –Leffingwell beschränkt sich auf die primären Praktiken der zweiten Ausgabe von Kent Becks Extreme Programming Expained, ohne die Begleitpraktiken zu erwähnen. Insgesamt entstand bei uns der Eindruck, dass dem Buch eine sorgfältigere Bearbeitung gut getan hätte. Viele der Praktiken leiten den Leser fehl. In Summe zählt Scaling Software Agility damit nicht zu unseren Favoriten.
Scott Ambler, Mark Lines: Disciplined Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the Enterprise
Scott Ambler ist seit etlichen Jahren für die IBM tätig und dort immer wieder mit großen Projekten konfrontiert. Auf diesen Erfahrungen baut das Buch Disciplined Agile Delivery auf.
Das Buch ist in sechs Teile unterteilt. Im ersten Teil erhält der Leser eine Einführung in das zugrunde liegende Modell – Disciplined Agile Delivery (DAD) – und die dahinter stehenden Prinzipien. Im zweiten Teil gehen die Autoren auf die Wichtigkeit der beteiligten Personen in der Softwareentwicklung ein. Hier werden vor allem die Rollen wie z.B. Product Owner, Architecture Owner und Team Lead im Modell betrachtet und auf Eigenschaften von Teams eingegangen. Im dritten Teil dreht sich alles um das Aufsetzen eines Projekts, angefangen bei der Vision über technische Strategie bis hin zum Releaseplan. Im vierten Teil dreht sich alles um das Erstellen der Software. Im fünften Teil schließt sich der Auslieferungsprozess an. Zu guter Letzt behandeln die Autoren, wie man ein Großunternehmen nach disziplinierter Agilität organisieren sollte.
Begleitend geben die Autoren zu den Konzepten konkrete Tipps, die jeweils von einer Übersichtstabelle begleitet werden. Darin findet der Leser Hinweise darüber, wann sich welcher Tipp besser eignet. Beispielsweise findet sich eine genauere Betrachtung zu Vor- und Nachteilen von cross-funktionalen Featureteams im Gegensatz zum Teamschnitt nach Architekturkomponenten im Kapitel zum Aufsetzen von agilen Teams. Aus diesen Abwägungen kann der Leser ableiten, wann eine vorgeschlagene Maßnahme angebracht ist, und wann nicht. Dadurch entsteht nicht der Eindruck einer Best-Practice-Sammlung, sondern einer klaren Führung des unbedarften Lesers. Alles in allem liest sich das Buch vom Schreibstil wie ein Prozesshandbuch. Es finden sich Hinweise auf die bekannte weiterführende Literatur, leider bekommt man nur ein oberflächliches Verständnis von den Werten und Prinzipien, wenn man diese Referenzen nicht kennt. Deshalb können wir Disciplined Agile Delivery nur bedingt empfehlen, beispielsweise für Leute, die sich mit agilen Werten und Prinzipien bereits in der Praxis auskennen.
Jutta Eckstein: Agile Softwareentwicklung in großen Projekten: Teams, Prozesse und Technologien Strategien für den Wandel im Unternehmen
Mit Agile Softwareentwicklung in großen Projekten stellt Jutta Eckstein das einzige deutschsprachige Buch in dieser Sammlung zur Verfügung.
Das Buch gliedert sich in sieben Kapitel. Die ersten zwei Kapitel beschäftigen sich mit der obligatorischen Einführung in die Problemstellung, warum man agil vorgehen sollte und was ihr Verständnis von großen Softwareprojekten ist. Kapitel drei befasst sich mit der Bedeutung von Größe für Teams. Das betrifft vor allem verteilte Teams und Teambuildingaspekte bei großen Teams. In Kapitel vier beschreibt Eckstein alles rund um Prozesse, von der Integrationsstrategie über die Iterationsplanung bis zum Review und der Retrospektive. Kapitel fünf geht auf Technologie und Spezialisten ein. Hier finden Architekten, Designer und Tester Antworten auf ihre jeweiligen Fragen. Kapitel sechs beschäftigt sich mit dem Umfeld in einem großen Unternehmen, inklusive Einkauf, Personalabteilung, Kunden und Qualitätssicherung. Kapitel sieben rundet das Buch mit einem Projektbericht aus der Praxis ab. Hier kann der Leser Erkenntnisse für die eigene Implementierung mitnehmen.
Insgesamt ist das Buch mit 232 Seiten das kürzeste der vorgestellten Bücher. Das bedeutet vor allem, dass man sich schnell einen Überblick über anstehende Fragestellungen verschaffen kann. Eckstein verzichtet auf eine ausschweifende Einführung in verschiedene Methoden. Eckstein fokussiert auf den Kern, den man bei der Einführung von Agilität im Unternehmen beachten muss. Auf der negativen Seite kommt die Kürze zu einem Preis: Eckstein verweist viel auf weiterführende Literatur, die die Konzepte tiefer gehend betrachtet. Wir empfehlen das Buch jedem, der sich schnell einen Überblick über das Skalierungsthema verschaffen will. Anschließend sollte der Leser einen Überblick darüber haben, mit welchen Themen er sich noch tiefergehend auseinander setzen muss. Durch die gezielten Hinweise auf weiterführende Literatur ist er dann in der Lage, sich seine eigene Leseliste anhand der eigenen Bedürfnisse zu erstellen.
Craig Larman, Bas Vodde: Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum
Craig Larman, Bas Vodde: Practices for Scaling Lean & Agile Development: Large, Multisite, and Offshore Product Development with Large-Scale Scrum
Bei diesen beiden Büchern handelt es sich eigentlich um ein Werk. Das erste Buch beschäftigt sich mit dem Aufbau einer agilen Organisation, das zweite mit Praktiken für die Umstellung auf eine agile Organisation.
Das Thinking and Organizational Tools-Buch teilt sich in zwei große Teile auf. Zum einen stellen Larman und Vodde ihre sog. Thinking Tools vor. Diese bestehen aus den Grundlagen zu Organisationsentwicklung im agilen Umfeld. Das beinhaltet systemisches Denken, Lean Thinking und Queueing Theory. Im zweiten Teil finden sich organisatorische Werkzeuge für die Umsetzung. Diese setzen sich aus Feature Teams, Teams im Allgemeinen, Anforderungsbereiche, der Unternehmens-Organisation insgesamt und Scrum im Großen zusammen. Umrahmt werden die beiden Teile von einer Einführung in Agilität und einer Kurzeinführung von Scrum für ein Team. Mit dem Wissen aus diesem ersten Buch gewappnet, besitzt der Leser die Grundlagen, um die weiterführenden Gedanken im zweiten Buch in die Praxis umsetzen zu können.
Das zweite Buch befasst sich vornehmlich mit Praktiken rund um die Einführung von Agilität in großen Unternehmen. Neben einer Rückblende auf Scrum im Großen aus dem ersten Buch, behandeln Larman und Vodde eine Vielfalt von Themen, die in großen Organisationen auftreten. Neben Testen, Produkt Managenent, Planung und Koordination sowie Anforderungen und das Product Backlog betrachten sie auch schwierige Themen wie Design & Architektur, Legacy Code und verteilte Teams. Continuous Integration und Inspect & Adapt sind dabei für die Autoren wichtige Konzepte.
Larman und Vodde fallen direkt zu Beginn des ersten Buches mit der Tür ins Haus. Der erste Tipp, den sie geben, lautet, dass man die Skalierung von agiler Softwareentwicklung – wenn möglich – bleiben lassen sollte. Wer sich von dieser Aussage gleich zu Beginn nicht abschrecken lässt, für den finden sich in beiden Büchern viele wichtige Hinweise auf die Grundlagen hinter verschiedenen Praktiken in der Agilität im Kleinen wie im Großen. Vor allem die Grundlagen aus Systems Thinking, Lean Software Development und Queueing Theory tragen dazu bei, dass der Leser ein sehr tiefgreifendes Verständnis von Agilität erlangt, um die Umsetzung im eigenen Unternhemen effektiv voranzutreiben. Damit kann der Leser ein fundiertes Verständnis von agiler Softwareentwicklung im Unternehmen auch langfristig etablieren. Larmans und Voddes Modell von Scrum im Großen unterscheidet zum Beispiel zwischen bis zu zehn Teams und dem Vorgehen bei mehr Teams. Vor allem der Teamschnitt zu echten cross-funktionalen Teams nach Anforderungsbereichen, erschien uns für große Produkte hilfreich.
Allerdings kommen die Bücher mit einem Beigeschmack. Larman und Vodde nehmen kein Blatt vor den Mund, indem sie empfehlen, verhältnismäßig viele Elemente einer traditionellen Aufbauorganisation in Frage zu stellen und andere Maßnahmen zu empfehlen. Sie geben genügend Hintergrund zu ihren Sichtweisen und bieten immer wieder Empfehlungen in der Form von „Versuche dieses“ und „Vermeide das hier“. Ein Leser, der offen gegenüber den Hintergründen und Tipps von Larman und Vodde ist, kann so sehr viel mitnehmen. Nicht nur, was eine mögliche Zielvorstellung bei der Implementierung von skaliertem Scrum angeht, sondern auch wie mögliche Wege dahin aussehen können.
Fazit
Alles in allem ist das Thema der Skalierung von agiler Softwareentwicklung kein neues Thema – und schon gar nicht in der Literatur. Das älteste der vorgestellten Bücher entstand bereits im Jahr 2004. Bei der Einführung im eigenen Unternehmen stellt sich die Herausforderung, dass man die Spreu vom Weizen trennen muss. Leffingwell und Ambler liefern hier schnell implementierbare Lösungen, die nicht immer auf das eigene Unternehmen zutreffen müssen. Wenigstens Ambler liefert Hinweise darauf, wann eine Praktik oder Technik angemessen ist und wann nicht. Das Buch von Jutta Eckstein empfehlen wir jedem, der über eine Einführung von agiler Softwareentwicklung in einem großen Unternehmen nachdenkt, und noch nicht weiß, ob sich diese Investition lohnen wird. Letzten Endes sind mit einer großen Umstellung auch große Kosten verbunden – und diese Kosten sollten sinnvoll abgewägt werden. Wenn die Entscheidung zur Umstellung gefallen ist, sollte man die Grundlagen hinter agiler Softwareentwicklung verinnerlicht haben. Für uns führt heute in großen Unternehmen kein Weg daran vorbei, sich mit den beiden Werken von Larman und Vodde auseinanderzusetzen. Die Werke von Leffingwell und Ambler bieten gegenüber den tiefgehenden und detaillierten Büchern von Larman und Vodde keinen nennenswerten Zusatznutzen.