1Einleitung
Märkte verändern sich immer schneller. Dadurch stehen viele Unternehmen heute vor der Herausforderung, schneller und flexibler auf diese Änderungen zu reagieren. Menschen mit Verantwortung in Unternehmen stellen die große Frage: »Wie werden wir agiler?«
Vor einigen Jahren hat Ken Schwaber bei einem Vortrag in Karlsruhe eine Idee dazu präsentiert. Das CIF (Continuous Improvement Framework) schlägt einen Satz von Unternehmensmetriken vor. In regelmäßigen Abständen prüfen Mitarbeiter aller Unternehmensebenen den Fortschritt anhand dieser Metriken und beschließen Verbesserungsmaßnahmen. Beispiele für diese Metriken waren »Die Anzahl der Kunden« oder »Die Zeitdauer zwischen zwei Versionen eines Produktes«. Bei diesem Vorschlag wird das Unternehmen als Blackbox angesehen. Ken Schwaber machte dabei keine Vorschläge zur inneren Gestalt des Unternehmens. Dieses Buch dagegen ist voll von solchen Schritten. Der Leser kann, wie mit einer Lupe, einzelne Organisationsbereiche und Situationen fokussieren und bekommt dazu Ideen und Handlungsanweisungen für den individuellen Weg zu mehr Agilität.
Zu diesem Prozess fügen wir als Katalysator unsere Erfahrung aus diversen Unternehmen der verschiedensten Branchen hinzu. Wir, Stefan Roock und »Mentos« Jürgen Hoffmann, sind als ihre Trainer, Berater und Coaches dicht am Puls der Firmen. Unserer Beobachtung nach gibt es auch nicht das agile Unternehmen. Jedes hat andere Mitarbeiter, Herausforderungen und eine andere Geschichte. Der Versuch, von einem auf den anderen Tag einfach alle Ideen und Werkzeuge aus der Agile Community mit einem Schlag einzuführen, würde die Menschen, die Produkte und damit das ganze Unternehmen überfordern.
Eines der Prinzipien beim Einsatz von Agilität ist das ständige Experiment: »Try, inspect and adapt« – »Ausprobieren, Erfolgskontrolle und Anpassung«. Das ist der Weg, auf dem die hier vorgeschlagenen Ideen auch Ihr Unternehmen beleben und erfolgreicher machen können.
1.1Echte Agilität
Unserer Meinung nach stellt ein einfacher Zyklus den Kern agiler Entwicklung dar (siehe Abb. 1–1): Kunden haben Probleme, die ein selbstorganisiertes autonomes Team löst. Dieser Zyklus muss möglichst schnell und in direkter Interaktion stattfinden.
Abb. 1–1Kernidee agiler Entwicklung
Ein agiles Entwicklungsframework wie Scrum soll die agile Kernidee unterstützen (siehe Abb. 1–2). Wichtig ist, dass dabei stets die agile Kernidee im Vordergrund bleibt und nicht vom Scrum-Framework in den Hintergrund verdrängt wird.
Abb. 1–2Scrum zur Unterstützung der agilen Kernidee
Das klingt alles trivialer, als es ist. Faktisch haben die meisten Unternehmen sich Strukturen gegeben, die den beschriebenen Zyklus massiv stören (siehe Abb. 1–3). Die Beispiele für diese Störungen sind vielfältig:
- Das Team hat keinen direkten Kontakt zu den Kunden.
- Die Teammitglieder werden ständig zwischen Teams hin und her verschoben.
- Vorgesetzte geben den Teammitgliedern Aufgaben, die sie von der Lösung kundenrelevanter Probleme abhalten.
- Teammitglieder müssen Stage-Gate-Prozesse einhalten, die die Problemlösung für Kunden ganz erheblich verzögern.
- Etc.
Abb. 1–3Unternehmensstrukturen stören die agile Kernidee.
In der Konsequenz stecken die meisten »agilen« Implementierungen noch in den Kinderschuhen (auch die, die sich bereits seit Jahren daran versuchen). So findet sich in vielen Fällen die Struktur aus Abbildung 1–4: Das Team ist selbstorganisiert, hat aber keinen direkten Kundenkontakt. Den Kundenkontakt hält z. B. das Produktmanagement und überführt die Kundenprobleme in Anforderungen, die das Team dann umsetzt. Die entwickelte Software liefert das Team nicht direkt an Kunden aus, weil das Team keine vollständig lieferbare Software herstellen kann (es fehlen z. B. die Integrationstests).
Abb. 1–4Selbstorganisiertes Team
In dieser Struktur ist mit dem selbstorganisierten Team zwar bereits eine wichtige agile Idee implementiert. Die Wirksamkeit des Teams bleibt aber beschränkt.
Häufig entwickelt sich diese Struktur technisch weiter. Das Team liefert die Lösung direkt an den Kunden aus, nachdem es die Fähigkeit erworben hat, in kurzen Abständen wirklich lieferbare Software zu erstellen (siehe Abb. 1–5). Die extremste Ausprägung findet sich heute im Continuous Deployment – die Software wird nach jeder Änderung sofort (also mehrmals täglich) an Kunden ausgeliefert.
Abb. 1–5Lieferndes Team
Wenn wir dann noch den oberen Teil des Zyklus von der Indirektion befreien und das Team direkt mit den Kunden über ihre Bedürfnisse und Probleme sprechen lassen, landen wir bei echter Agilität (siehe Abb. 1–6).
Abb. 1–6Kundenwertoptimierendes Team
Vor diesem Hintergrund kann man agil arbeitende Teams in einem Satz folgendermaßen definieren: Business-fokussierte Teams, die für Produkt und Prozess Verantwortung übernehmen.
In diesem Buch beschreiben wir, was über selbstorganisierte, liefernde Teams hinaus für echte Agilität notwendig ist. Wir gehen also davon aus, dass Sie als Leser bereits selbstorganisierte, liefernde Teams erreicht haben oder sich anderswo die Informationen besorgen, die dafür notwendig sind.
Wichtig ist uns hier noch, dass die beschriebenen »Stufen« nicht sequenziell durchlaufen werden müssen. Sie können bei der Einführung agiler Entwicklung auch direkt auf kundenwertoptimierende Teams abzielen und die für selbstorganisierte und liefernde Teams notwendigen Veränderungen gleichzeitig vollziehen.
1.2Agile Fluency
Die beschriebenen Unterscheidungen haben Diana Larsen und Jim Shore vor einigen Jahren im Agile Fluency Model™ formalisiert. Das Modell verwendet das Erlernen einer Fremdsprache als Metapher. Man kann eine Fremdsprache auf verschiedenen Stufen sprechen. Auf einer Basisstufe kann man vielleicht nach dem Weg fragen und Dinge des täglichen Gebrauchs einkaufen. Auf der nächsten Stufe kann man einfache Gespräche führen. Auf der dritten Stufe kann man anspruchsvolle Literatur verstehen und intellektuell anspruchsvolle Gespräche führen. Auf der vierten Stufe kann man alles Erdenkliche in der Fremdsprache ausdrücken. Fließend (fluent) ist man auf der jeweiligen Stufe, wenn man sie auch in Stresssituationen beibehält.
Dieser Ansatz wird mit dem Agile Fluency Model™ auf Agilität übertragen – es wird in der aktuellen Version allerdings nicht mehr von Stufen, sondern von Zonen gesprochen. Es werden die vier Zonen aus Abbildung 1–7 unterschieden.
Abb. 1–7Das Agile Fluency Model™
Das Modell geht davon aus, dass die Beteiligten in der Lage sind, Programmcode für Software zu schreiben (Start). Sie beherrschen also ihr grundsätzliches Handwerkszeug, um etwas herzustellen oder eine Dienstleistung zu erbringen. Für das Modell, wie wir es benutzen, ist die Art des Produktes nicht wichtig.
In der ersten Zone »Focus on Value«wird auf Wert fokussiert. Aus Geschäftssicht muss regelmäßig Fortschritt erkennbar sein und es muss die Möglichkeit geben, die Richtung zu ändern. Dazu ist in erster Linie ein Kulturwandel im Team notwendig – weg von einer technisch bestimmten wasserfallartigen Planung hin zu einer Planung aus Geschäftssicht. Regelmäßige Demonstrationen von Produktinkrementen schafft Transparenz über den Fortschritt. Regelmäßige Planungen erlauben das Umsteuern, wenn gewünscht. Ein einfaches iteratives Verfahren mit Planung und Review kann ausreichen, um »Focus on Value« zu erreichen. Diese Zone haben wir oben »selbstorganisiertes Team« genannt (siehe Abb. 1–4).
In der folgenden Zone wird auf die Lieferung von Wert fokussiert. Das Team muss in der Lage sein, so häufig an Kunden auszuliefern, wie es aus Geschäftssicht sinnvoll ist. Um diese Zone zu erreichen, müssen geeignete Entwicklungspraktiken wie Continuous Integration, automatisierte Unit Tests, testgetriebene Entwicklung, Pair Programming und Continuous Delivery installiert werden. Diese Zone haben wir oben »lieferndes Team«...