Was ist Kanban?

Kanban ist ein agiler Ansatz, der Erkenntnisse aus der Lean Production mit Ergebnissen der Engpasstehorie und der Fluss-basierten Produktentwicklung nach Donald Reinertsen verbindet und diese auf die IT überträgt.
Stärker als andere agile Ansätze wie Scrum oder XP legt Kanban den Fokus auf die gesamte Wertschöpfungskette - also über die reine Softwareentwicklung hinaus. Deshalb wird Kanban auch häufig in Wartung und Betrieb eingesetzt.

Worum geht es bei Kanban?

Im Kern von Kanban geht es darum, die Menge an paralleler Arbeit, den Work in Progress (WIP), zu beschränken und dadurch die Durchlaufzeiten von einzelnen, wertschöpenden Anforderungen zu verkürzen.
Zu diesem Zweck wird für alle Teammitglieder gut sichtbar ein Kanban-Board aufgehängt, auf dem die verschiedenen Prozessschritte sichtbar sind, die eine Anforderung (User Story, Use Case, Task oder Feature) im jeweiligen Workflow durchläuft, bevor sie produktiv geht. Dies können beispielsweise die Schritte Anforderungsdefinition (Anford.), Programmierung (Prog.), Dokumentation (Doku.), Test und Betrieb sein.
Die Anforderungen werden auf Karteikarten oder Haftnotizen notiert und wandern als Tickets durch alle Stationen, bis sie komplett erledigt sind.

Als nächster Schritt werden Limits eingeführt: Für jede einzelne Station wird festgelegt, wie viele Anforderungen parallel bearbeitet werden dürfen. Darüber hinaus kann es Puffer zwischen den einzelnen Stationen geben, die auch wiederum in ihrer Kapazität beschränkt werden. Anforderungen dürfen nur dann zur nächsten Station weiterwandern, wenn diese freie Kapazitäten hat. Jede Station holt sich also gewissermaßen ihre Arbeit bei der Vorgängerstation ab (Pull-Prinzip). Durch diese Beschränkung wird garantiert, dass die Teammitglieder sich auf wenige Anforderungen fokussieren, die zur Zeit in Bearbeitung sind. Dadurch ergeben sich weniger Ablenkungen von der aktuellen Arbeit durch unterschiedliche Anforderungen und durch häufige Kontextwechsel. Die Beschränkung führt letztendlich dazu, dass Anforderungen schnell das gesamte System durchlaufen und so früh wie möglich produktiv gehen können. Um eine gleichmäßige Arbeitsbelastung zu gewährleisten, werden zusätzlich Queues (Warteschlangen) eingeführt, die aber ebenfalls in ihrer Kapazität beschränkt sind und möglichst klein gehalten werden sollten.

Schon nach kurzer Zeit das Kanban-Bord zu Transparenz, dess es macht deutlich, wie lange die unterschiedlichen Anforderung durchschnittlich benötigen, um ausgeliefert zu werden, wie groß die Abweichungen sind und an welcher Stelle sich Anforderungen anstauen (Engpass). Diese Erkenntnisse werden genutzt, um Ressourcen umzuverteilen und andere Optimierungen durchzuführen. Nach und nach werden die Kapazitätsbeschränkungen angepasst, um einen möglichst gleichmäßigen Fluss (Flow) zu gewährleisten. 

Unterschiede zu anderen agilen Methoden

Der auffälligste Unterschied zu Scrum und eXtreme programming besteht darin, dass Kanban die Abstimmung mit dem Kunden, die Abarbeitung der Anforderungen und die Releases voneinander entkoppelt. In Kanban existieren deshalb weder Iterationen noch Timeboxes. Vielmehr wird für jede erledigte Anforderung eine neue in das System gegeben. Alle Anforderungen, die zum Releasetermin komplett fertig sind, können mit in das aktuelle Release aufgenommen werden. Releases werden dabei nach einem selbst gewählten Rhythmus durchgeführt, der je nach Gegebenheiten unterschiedlich lang sein kann. Es ist sogar möglich, Releases "on Demand" durchzuführen. Die Abstimmungsmeetings sind wiederum unabhängig von den Releases. Beispielsweise können sich Team und Kunde jede Woche treffen, während nur alle drei Monate neue Releases stattfinden.

Vorteile von Kanban

  • Schafft schnell hohe Transparenz über Projektfortschritt und akute Probleme.
  • Geht über die reine Softwareentwicklung hinaus und beleuchtet auch Bereiche wie Testing, Wartung und Systemadministration.
  • Gut geeignet für Organisationen mit starker Arbeitsteilung und Spezialisierung.
  • Lässt sich behutsam in bestehende Prozesse (gleichgültig ob agil oder nicht) integrieren und schrittweise anpassen.
  • Fördert eine gleichmäßige und nachhaltige Geschwindigkeit (Sustainable Pace).

Unser Angebot zu Kanban

Was bedeutet Einfachheit für Softwareprojekte? Film ansehen

Wieso sind Kanban-Limits
nützlich?

David Anderson spricht in diesem Interview über Kanban.

Wir haben häufige Fragen zu Kanban gesammelt.