Direkt zum Hauptbereich

Eine Anleitung zum Einstieg in kontinuierliche Verbesserung

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.

Anmerkungen

  • /1/ Gano, Dean L. Apollo root cause analysis: a new way of thinking. Apollonian Publ., 2007.

Kommentare

Beliebte Posts aus diesem Blog

Wie starte ich ganz konkret mit einem neuen Scrum Team?

Ich habe den Eindruck, dass manche Agilisten damit überfordert sind, schnell ein Scrum-Team aufzusetzen. Sie haben ein Seminar nach dem anderen besucht und kennen so viele Techniken und Methoden, dass sie am Ende gar nichts davon anwenden. Das war nicht der Sinn des Scrum Guides. Hier ist mein Vorschlag für einen Teamstart.

Outlook-Aufgabenliste: bitte nicht die Aufgaben des ganzen Teams!

Am Tag der Arbeit kommt eine Lösung, nach der ich schon so oft gefragt wurde: Wie schaffe ich es, dass meine Outlook-Aufgabenliste nur meine eigenen Aufgaben anzeigt und nicht auch die E-Mails, die meine Kollegen gekennzeichnet haben oder Aufgaben, die einfach in einem gemeinsamen Postfach stehen?

Kategorien in Outlook - für das Team nutzen

Kennen Sie die Kategorien in Outlook? Nutzen Sie diese? Wenn ja wofür? Wenn ich diese Fragen im Seminar stelle, sehe ich oft hochgezogene Augenbrauen. Kaum jemand weiß, was man eigentlich mit diesen Kategorien machen kann und wofür sie nützlich sind. Dieser Blogartikel stellt sie Ihnen vor.

Das Ubongo Flow Game

Spiele bieten eine gute Gelegenheit, zeitliche Erfahrungen zu verdichten und gemeinsam zu lernen. Karl Scotland und Sallyann Freudenberg haben im Mai 2014 das Lego Flow Game veröffentlicht. Wir haben die Spielidee übernommen, aber das Spielmaterial gewechselt. Statt Legosteinen benutzen wir Material aus Grzegorz Rejchtmans Ubongo-Spiel. Hier präsentieren wir die Anleitung für das Ubongo Flow Game.