Kanban in der IT

Diese Woche habe ich ein Kanban-Training besucht. Ich hatte bereits Erfahrung mit Kanban, durch den Einsatz in unserer Firma um die Arbeit der Teams zu planen.
Mit dem Training konnte ich jedoch noch etwas tiefer in den Kaninchen-Bau hinein sehen. Die Erkenntnisse werde ich in diesem Beitrag zusammen-fassen.

Was ist Kanban?

Zuerst eine kurze Einführung, was Kanban generll ist und was dessen Ziele sind.

Kanban ist ein Produktions-Planungs- und Kontroll-System. Aber mit Produktion ist nicht nur die kommerzielle Herstellung von Gütern gemeint. Es beinhaltet Alles, was gebaut oder produziert und danach ausgeliefert werden kann. Deshalb ist es möglich, Kanban auch im Software-Umfeld zu verwenden.

Die Geschichte und Entwicklung von Kanban werde ich nicht erläutern, da sie auf Wikipedia ausführlich gefunden werden kann.

Das Haupt-Ziel von Kanban ist es, den Produtkions-Fluss zu optimieren. Das heisst, die Puffer im System werden minimiert und die Planungs-Treue somit gesteigert.

Um das zu tun, werden die Lager-Bestände mit dem tatsächlichen Material-Verbrauch abgegblichen werden. Das reduziert die Lager-Grösse und das Lagern von Material über längere Zeit wird unnötig.

Kanban in IT Umgebungen

Für Firmen, welche IT Dienstleistungen anbieten, wie z.B. Software Hersteller, hilft Kanban den Stress der Mitarbeiter zu reduzieren. Zusätzlich visualisiert und optimiert es die Planung der Arbeits-Pakete. Dadurch werden die Schätzungen und dessen Treue sowie Time to Market verbessert.

Ich bin absolut beeindruckt vom Konzept, „starte da wo Du bist“ (engl. „start where you are“). Damit ist gemeint, dass es nicht notwendig ist, ein neues System einzuführen, das erstmal viele Werkzeuge, Software und Geld benötigt, bevor überhaupt klar ist, dass es irgendein Problem löst.

Visualize work in progress

Zuerst ist es nötig, den aktuellen Status des Teams, Departments oder der Firma zu visualisieren (abhängig davon, welche Flughöhe gewählt wird).

Dazu kann z.B. Jeder seine aktuelle Arbeit auf ein Post-It notieren. Diese Post-Its werden an einem Brett oder der Wand angebracht. Es kann natürlich sein, dass es Widerstand gibt, wenn es darum geht, die Arbeit transparent zu machen. Das ist jedoch eine andere Geschichte.

Normalerweise werden da grosse Mengen von Zetteln an der Wand kleben.

201 Zettel auf einem Kanban Board
Prozess-Abbild

Im Bild ist zu sehen, dass bereits eine Struktur bzw. Gruppierung vorhanden ist. Das gilt es als nächstes zu tun. Die Prozess-Schritte werden mit Spalten abgebildet. Bei uns sind das Analyse, Entwicklung, Testen. Jede Spalte wird nochmals in zwei weitere Spalten In Arbeit und Abgeschlossen (doing und done) unterteilt.

Hier startet das Zieh-Prinzip. Jeder der keine Arbeit mehr hat, kann den nächsten Zettel aus der vorherigen Abgeschlossen-Spalte ziehen und die Arbeit daran beginnen.

Definition of done

Bevor eine Karte als abgeschlossen deklariert werden kann, muss sie einige Bedingungen erfüllen. In unserer Firma ist die Definition von Abgeschlossen (engl. definition of done) der Entwicklungs-Phase, dass die Software implementiert und die Dokumentation fertiggestellt sein muss.

Limit work in progress

Wenn die Strukturierung abgeschlossen ist, wird es Zeit, eine Begrenzung für die Anzahl der gleichzeitig bearbeiteten Aufgaben einzuführen. Diese Begrenzung wird Work in progress (WIP) limit genannt.
Jede Spalte kann eine andere Anzahl maximaler Aufgaben haben. Zudem können sie später noch verändert werden.
Die Idee ist, dass nie mehr Karten in einer Spalte sind, als die Begrenzung erlaubt (das beinhaltet auch die Abgeschlossen-Spalte).

Resulate

Nun zum Warum:

Mit der Zieh-Methode, das heisst, es wird immer die nächste Karte aus der vorherigen Spalte gezogen, wird erreicht, dass es wichtiger ist, Arbeit abzuschliessen, als neue Arbeit zu beginnen. Und mit den WIP-Limits wird sicher gestellt, dass die Arbeit auch tatsächlich beendet wird. Es ist nicht möglich neue Arbeit ins System zu geben, wenn die Alte nicht abgeschlossen wird.
Das Warum ist ganz einfach. Begonnene Arbeit bedeutet getätigte Ausgaben. Der Wert ist jedoch gleich Null, solange sie nicht komplett abgeschlossen ist.

Nehmen wir ein Smart-Phone. Es ist nicht möglich, dieses zu verkaufen, bevor ein Betriebs-System installiert ist. Es können auch keine Apps verkauft werden, bevor das Betriebs-System nicht korrekt läuft. Und mit der Entwicklung der Hardware wurde bereits ein grosser Aufwand betrieben, welcher nicht zu Gewinnen führen kann, bevor nicht auch ein Betriebs-System darauf läuft.

Arbeitsvorgang mit und ohne Kanban

Das Bild zeigt auf, was passiert, wenn mehrere Arbeiten gleichzeitig gestartet werden . abgeschlossene Arbeit (engl. finished work) bedeutet, es kann auf den Markt gebracht und Geld damit verdient werden. Nicht abgeschlossene Arbeit (engl. unfinished work) bedeutet nichts als Kosten.

Falsche Annahmen

Es gibt einige Annahmen, welche zu grossen Problemen führen können, welche wir mit Kanban zu lösen versuchen. Ich werde einige davon ausführen.

Durchsatz erhöhen

Eine falsche Annahme die viele haben ist, dass es möglich ist, den Output von System zu erhöhen, indem mehr Arbeit rein gegeben wird. Das ist nicht möglich!
Eine Arbeits-Station hat immer den gleichen durchschnittlichen Durchsatz. Es gibt keinen Weg um das zu ändern, als deren Arbeits-Leistung zu erhöhen (z.B. mit einer weiteren Maschine oder einem neuen Mitarbeiter).
Diese Annahme hat sehr schlechten Einfluss auf die Mitarbeiter, denn sie werden damit unter Druck gesetzt, was zu Stress führt. Aber andauernder Stress bedeutet nicht, dass die Mitarbeiter schneller arbeiten (normalerweise bewirkt es das Gegenteil).
Eine andere negative Auswirkung von paralleler Arbeit ist, dass Context-Switches (Wechseln zwischen parallelen Arbeiten) zu einer Verschwendung von Arbeitsleistung bzw. Zeit führt. Das gilt sowohl für Maschinen, wie auch für Menschen.

Wachsender Puffer ohne Kanban

Im Bild wird aufgezeigt, was passiert, wenn jede Arbeits-Station mit so viel Arbeit gefüllt wird, wie sie verarbeiten kann: Die erste Station verarbeitet mehr, als die zweite aufnehmen kann. Das führt dazu, dass der Puffer dazwischen immer grösser und grösser wird. Der Durchsatz des Gesamt-Systems bleibt jedoch nach wie vor derselbe. Der einzige Unterschied ist, dass die Planungs-Treue verloren geht, weil keine zuverlässige Aussage mehr gemacht werden kann, wie lange es dauern wird, wenn etwas ins System gefüllt wird, bis es fertig aus dem System wieder heraus kommt.

Warte-Zeiten

Da wir in unserem System WIP-Limits eingeführt haben und der Flaschenhals den Durchsatz des Gesamt-Systems bestimmt, wird es immer wieder Wartezeiten für die anderen Arbeits-Stationen geben.
Es wäre naiv anzunehmen, es wäre möglich ein System zu haben, wo jede Station dieselbe Arbeits-Leistung hat und es deswegen keinen Flaschenhals gibt.

Da es mit den WIP-Limits nun nicht mehr möglich ist, jede Station permanent auszulasten (ausser bei Maschinen, wo die Geschwindigkeit reduziert werden kann), sollten diese mit sinnvollen Tätigkeiten beschäftigt werden.
Dazu kann z.B. eine separate Verbesserungs-Linie eingeführt werden. Immer wenn jemand nichts zu tun hat, werden Arbeiten aus dieser Line ausgeführt, um das System zu verbessern. Wichtig ist, dass diese nicht den anderen WIP-Limits unterliegen und die Arbeit ohne grossen Verlust über längere Zeit unterbrochen werden kann. Zudem dürfen von diesen Arbeiten keine Aufgaben aus den anderen Linien abhängig sein.

Vergewaltigung des Systems

Es gibt einen interessanten Artikel ,welcher erklärt, was passiert, wenn man wie bekloppt einem Plan folgt und selber nichts studiert. Der Post handelt zwar von Scrum, hat jedoch bei Kanban dieselben Auswirkungen, wenn nicht einige Dinge beachtet werden. Zudem ist es möglich, dass mit Kanban das Gegenteil erreicht wird, wenn folgendes nicht berücksichtigt wird:

Die WIP-Limits dürfen mit keiner Ausnahme ignoriert werden. Die können zwar angepasst werden, wenn dies aber kurzfristig passiert, dann ist deren positiver Effekt dahin.

Die erste Spalte (das ist die mit den Arbeiten, welche ausgeführt werden können), darf nicht überfüllt werden. Ansonsten verschiebt sich der Puffer vom Flaschenhals dort hin.

Damit das Brett funktioniert, muss jede Aufgabe auf dem Brett erscheinen und deshalb den gesamten Prozess durchlaufen.

Es ist möglich, dass Druck von anderen Mitarbeiten, Teams oder dem Management aufgesetzt wird. Das System muss verteidigt und die Regeln eingehalten werden. Wenn auch nur eine einzige Ausnahme gemacht wird, ist die Struktur im Arsch.
Das heisst jedoch, dass es Unterstützung vom Chef oder der nächsten Stelle benötigt.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.