Kanban

Kanban kommt vom japanischen Begriff kan ban und bedeutet in etwa Signaltafel. In Fertigungsbetrieben wird damit z.B. gut sichtbar dargestellt, daß ein bestimmtes Produktionsmittel nachgefüllt werden muß. Die Grundidee ist in einem Produktionsablauf Dinge durch den nachgeordneten Produktionsschritt anfordern zu lassen anstelle sie vom vorherigen Schritt nach hinten schieben zu lassen. Statt das sich Halbfertigprodukte irgendwo sammeln wird nur soviel produziert wie weiter hinten tatsächlich benötigt wird. Im Englischen wird das als pull system bezeichnet.

Kanban Signaltafel

In der Softwareentwicklung könnte man kanban z.B. so nutzen, wie im Diagramm dargestellt. In der ersten Spalte sammelt man die neuen Anforderungen. Sobald dann Zeit für die Analyse einer neuen Anforderung ist, wird diese von "Neu" nach "Analyse" verschoben und wandert dann nach und nach in Richtung "Fertig". Statt Arbeit den Analysten, Programmierern und Testern zuzuweisen, fordern diese einfach die nächste Aufgabe an.

Vermeidung von Staus

Ganz wie im Verkehr auf der Autobahn wird in der praktischen Anwendung von kanban häufig ein Limit gesetzt. Man will nicht, daß sich z.B. in der Spalte "Test" die Aufgaben auftürmen und die Tester überflutet werden. Würde das geschehen, würde sehr verscheinlich die Qualität der Software durch fehlende rechtzeitige Rückmeldung sinken und viele Dinge müßten nachträglich korrigiert werden. Es kommt zuerst zum Stau und dann zum Infarkt des Gesamtsystems durch eine Art Schneeballeffekt.

Daher setzt man für jede Spalte ein Limit, sodaß z.B. in der Spalte Test nur zwei Aufgaben warten dürfen. Das bedeutet dann, daß die Arbeitsschritte davor entsprechend langsamer durchgeführt werden müssen oder die Mitarbeiter weiter hinten helfen, um das Gesamtsystem am Laufen zu halten.

Erfolgreich ohne Planung

Häufig wird gemessen wie lange es dauert die Lösung zu einer neuen Anforderung zu liefern. Das ist dann die Zykluszeit (engl. cycle time). Auch kann die Zeit des Verbleibs in einzelnen Spalten interessant sein, um Hinweise auf Schwierigkeiten und Gelegenheiten für Verbesserungen zu liefern.

Durch Kenntnis der Zykluszeit kann ein Team, welches kanban benutzt, ganz ohne Planung und Aufwandsschätzung auskommen, weil es aus der Erfahrung sagen kann wann eine neue Anforderung an die Software sehr wahrscheinlich erfüllt sein wird.

Kanban mit Scrum

Gern wird eine kanban Signaltafel auch in Verbindung mit Scrum benutzt. Statt die für den Sprint vorgesehenen Aufgaben einfach ungeordnet an die Wand zu heften, teilt man die Wand in Spalten ein und hat so ein Werkzeug zur Koordinierung der unterschiedlichen Rollen im Team.

Fit für die Zukunft

Arbeitsgruppen aus Spezialisten bringen un­ter­durch­schnitt­liche Leistung, weil die darin ver­sam­mel­ten Spezialisten nicht wirklich zielgerichtet zu­sammenarbeiten können. Die Grundlage für Erfolg ist immer technisches Können. Die Grundlage für dauerhaften Erfolg ist organisatorisches Können.

Gern unterstütze ich Sie bei der Entwicklung organisatorischer und technischer Fähigkeiten. Beispiele für dazu hilfreiche Maßnahmen sind:

Lernendes Team
Die Fähigkeit schnell zu lernen erlaubt Unter­nehmen jeder Art sich auf schnelle Ver­än­derungen im Markt gut anzupassen und dadurch fortwährend die Erwartungen von Kunden und Mitarbeitern zu erfüllen. Be­geis­ter­te Kunden beweisen den Erfolg!
Lean Startup
Beobachtung, Schluß­fol­ge­rung und Anpassung sind Schlüsseltechnologien. Lernen Sie durch kontrollierte Experimente, sorgsames Messen und Schlußfolgern Erkenntnisse für die weitere Unternehmensentwicklung zu gewinnen.
Agile Vorgehensweisen
Das Ziel agiler Vorgehensweisen war nie­mals das Ziel mehr Software schneller zu entwickeln (Effizienzsteigerung). Statt­des­sen geht es darum zielgerichteter die Ar­beit im Unternehmen zu organisieren - ganz egal, ob es dabei um Software­ent­wick­lung oder andere Tätigkeiten geht.
Defekte durch ATDD vermeiden
Auftraggeber und Entwick­lungsteam de­fi­nie­ren gemeinsam in Form einer aus­führ­baren Spezifikation was die zu entwickelnde Soft­ware tun soll.
Activity-Centered Design
Produkte mit gutem Design sind aus einem tiefen und umfassenden Ver­ständ­nis der Tätigkeiten des Anwenders her­vor­ge­gan­gen. Das macht sie fit für einen an­spruchs­vol­len Markt und besser als der Mitbewerb. In einigen Fällen kann dieser Unterschied zu gewöhnlichen Produkten einen ganzen In­du­strie­zweig auf den Kopf stellen.