Kennen Sie das? Das Projekt dauert schon viel zu lang, das Produkt ist viel zu teuer, die Prozesse sind zäh und fehlerbehaftet. Da müsste doch regelmäßiges Verbessern helfen. Aber wie geht man genau vor? Regelmäßiges Verbessern heißt nicht, wahllos Ideen auszuprobieren. Das würde viel zu lang dauern. Die folgende Anleitung setzt beim gemeinsamen Lernen an.
"Jan, hast Du nicht noch einen Tipp für uns, wie wir die Performance steigern können?", fragte mich vor kurzem ein Scrum Master. Da frage ich mich wiederum, wieso die Idee von mir kommen soll und nicht vom Team, das die höhere Leistung braucht. Selbstmanagement bedeutet nicht nur das Recht, sondern auch die Pflicht, sich um die eigene Arbeitsweise zu kümmern. Vielleicht wissen die Teams noch gar nicht, wie man solche Ideen entwickelt.
Problem: Wir verstehen die Probleme gar nicht
Dean L. Gano hat eine gute Anleitung zur Analyse von Grundursachen geschrieben./1/ Er beginnt sein Buch mit einem Bild: Der Chef stürmt in den Teamraum. Jeder wüsste ja, was das Problem sei. Jeder möge nun seine Lösungsvorschläge vortragen. Über den Köpfen sieht man, dass jeder eine andere Vorstellung vom Problem hat.
Der erste Schritt ist also, für ein gemeinsames Verständnis der Lage zu sorgen. Man kann es so machen, wie Gano in seinem Buch vorschlägt. Oder man erstellt ein Fischgrätendiagramm. A3-Berichte sind auch ein schönes Arbeitsmittel.
Ich erstelle gern mit dem Team eine Art Mindmap: Welche Annahmen haben wir über die Einflussfaktoren auf die Performance? Beispiele: Anforderungen sind unklar, Entwickler:innen sind zu doof, Scrum Master:innen sind unfähig, Tools und Prozesse sind zu aufwändig.
Für jeden Punkt werden nun weitere Ideen gesammelt: Warum sind die Anforderungen unklar? Warum sind die Entwickler:innen doof? Interessant wird es ab dem dritten und vierten Ring um das ursprüngliche Problem. Dieser Schritt hilft beim Aufbau einer gemeinsamen Sprache.
Schritt 1: Welche Annahmen haben wir zu unserem Thema? |
Schritt 2: Was sind die Annahmen hinter den Annahmen? |
Haben wir Beweise, Bestätigungen oder andere Daten?
Es ist leicht, Behauptungen aufzustellen. Deswegen ist es im nächsten Schritt wichtig, Beweise für oder gegen jede einzelne Annahme zu finden. Beispiel: Annahme: Enwickler:innen sind zu doof. Gegenbeweis: Die Aussagen im Entwicklerchat bestätigen das nicht. Sie zeigen im Gegenteil eine hohe Fachkompetenz.
Gano weist in seinem Buch darauf hin, dass bei jeder Ursache immer eine Bedingung und eine Aktion zusammenkommen müssen. Brennbares Material brennt erst, wenn genug Sauerstoff da ist und es Zündfunken gibt.
Schritt 3: Welche (Gegen-) Beweise haben wir? |
Was ist eigentlich das Ziel?
Wir haben nun erste Annahmen gefunden, für die es tatsächlich Beweise gibt. Bevor wir wieder vorschnell in Lösungen springen, müssen wir etwas abwarten: unabhängig davon, welche Lösung wir entwickeln, brauchen wir ein Verständnis davon, woran wir eine gute Lösung erkennen. Das halten wir nun fest:
- Alle Entwickler:innen kennen sich in der Fachlichkeit und den Tools aus. Neue Teammitglieder werden systematisch eingearbeitet.
- Neue Anforderungen sind immer ready, bevor sie in die Sprint Planung aufgenommen werden.
- Selbst 3.000 Unit-Tests brauchen nicht länger als 1 Minute.
Ohne solche Ziele können wir nicht sicher sein, ob wir uns verbessert haben.
Was ist, wenn man solche Ziele nicht formulieren kann? Entweder recherchieren wir, ob es veröffentlichte Werte gibt oder wir verfahren nach dem Motto: Das Gute verdoppeln, das Schlechte halbieren.
Schritt 4: Was sind unsere Anforderungen an den Prozess? Wo wollen wir hin? |
Was können wir beeinflussen?
Entweder vertiefen wir das Mindmap an der Stelle oder wir erstellen ein neues. Was beeinflusst unser Thema?
- Annahme: Tools und Prozesse sind zu aufwändig, speziell Merging des Codes
- Beweise: Aus dem Entwicklerchat und aus den Build-Tools lässt sich ablesen, wenn ein Entwickler den Code fertig zum Mergen meldet und wie lange dann andere Entwickler für den Review brauchen und wann schließlich der Build anläuft.
- Ziel: Neuer Code kann am gleichen Tag in den Hauptzweig integriert werden.
Was beeinflusst diesen Prozess? Was macht den Prozess aufwändig, was vereinfacht ihn?
- Inhalt von jeder Code-Änderung
- Ist der Change atomar?
- Ort und Umfang der Änderung: Wie viele unterschiedliche Dateien und Anzahl der neuen/geänderten Code-Zeilen
- Verständlichkeit des Changes für andere, Codierstil, Nutzung von Bibliotheken und Entwurfsmustern
- Dokumentation, Einleseaufwand
- Anzahl der Änderungen pro Tag
- Anzahl der Konflikte beim Mergen
- Kriterien für den Review und die Freigabe
- Automatisierbarkeit, Tools
- Tests
- ...
Nun haben wir schon mind. 10 Bereiche, in denen das Team experimentieren kann. Hier sammeln wir wieder Ideen. Aber auch hier sollten wir erst sicherstellen, dass alle wissen, was Sache ist. Haben wir das gleiche Bild von den Abläufen? Verstehen wir die Schritte? Haben wir alles in Frage gestellt?
Vielleicht stellt jemand den Review-Prozess in Frage. Entwickeln im getrennten Feature-Branch ist üblich aber auch zeitaufwändig. In der DevOps-Community gibt es Firmen, die sich davon verabschiedet und auf Trunk-based Development umgestellt haben. Das zieht natürlich erhebliche Änderungen im Programmierstil nach sich, damit die Software auch sicher bleibt.
Dieses Bild gibt uns jederzeit die Übersicht für die nächsten Verbesserrungsrunden.
Auf welche nächsten Experimente einigen wir uns?
Jeff Sutherland erklärt die Sprint Retrospective in einem kurzen Video von OpenView Ventures. Ein wichtiger Schritt, dass sich das ganze Team auf 1-2 Maßnahmen einigt, die es spätestens bis zur nächsten Sprint Retro umsetzt.
Beim Umsetzen sammeln wir Daten und Erkenntnisse, die uns bei den nächsten Verbesserungsschritten unterstützen.
Die Schritte in dieser Anleitung sind in 2 Stunden umsetzbar.
Erfahrungen
Ich habe gute Erfahrungen mit diesem Format gemacht:
- Die Struktur bietet allen die Gelegenheit mitzumachen.
- Das Nennen von konkreten Beweisen ist sehr hilfreich und fördert gute Ideen zu Tage.
- Es kommen konkrete Ergebnisse raus.
- Das Erarbeiten der Zielzustände macht Spass.
Ihr wollt mehr über Scrum wissen? Wir haben eine Übersichtsseite zu Scrum, über die man sich in die wichtigsten Artikel in diesem Blog einlesen kann.
Anmerkungen
- /1/ Gano, Dean L. Apollo root cause analysis: a new way of thinking. Apollonian Publ., 2007.
Kommentare
Kommentar veröffentlichen