Schlank mit Kanban?!

Der Bekanntheitsgrad von Kanban liegt zwar nach wie vor hinter Scrum, jedoch zu Unrecht. Es lassen sich mit Kanbans schlankem Vorgehensmodell vor allem in der Support- bzw. Wartungsphase von Projekten rasch beeindruckende Ergebnisse erzielen.

Kanban ist ein recht junges und schlankes Vorgehensmodell zum einfachen Verwalten von Entwicklungsprozessen. Man hat sich dabei die Grundprinzipien der – ursprünglich von Toyota für die Automobilindustrie entwickelten – „Lean Production“ zum Vorbild genommen. Es wird bei Kanaban versucht diese Prinzipien auf die Software-Entwicklung zu übertragen. Die zentralen Punkte lauten:

  • Es soll eine gleichmäßige Arbeitsbelastung geschaffen werden, indem Engpässe und Lastspitzen vermieden werden.
  • Produktionsfaktoren und Mitarbeiter müssen aus-, aber nicht überlastet sein.
  • Nur der Nachschub wird extern organisiert („push“), in ihrem Aufgabenbereich arbeiten die Teams jedoch eigenverantwortlich und weisen sich Aufgaben selbst zu („pull“).

Die Anwendung

Sobald ein Projekt abgeschlossen wurde, beginnt die Support- und Wartungs-Phase. Diese ist gekennzeichnet durch viele kleine, oftmals unzusammenhängende Arbeitspakete von unterschiedlicher Priorität und Dauer. Idealerweise werden diese per Bugtracker-Ticket, üblicherweise aber per Mail oder im schlimmsten Fall nur mündlich zugewiesen.

Im Projektalltag befinden sich meistens noch weitere Projekte in dieser Phase. Es ergibt sich daher eine gewaltige Summe an Aufgaben, die sich kaum effizient organisieren oder zumindest kontrollieren lassen. Weder Scrum noch das alte Wasserfallmodell helfen hier weiter, da der Overhead beider Methoden einfach zu groß ist. Im Vergleich würde bei Scrum alleine die Planungsdauer einer Sprintphase bereits den Umfang eines Arbeitspakets überschreiten. Hier liegt nun die Stärke von Kanban!

Die Funktionsweise

Das zentrale Hilfsmittel bei Kanban ist ein Whiteboard, das so genannte Kanban-Board. Auf dieses Kanban-Board haben alle Mitarbeiter Zugriff. Es ist in verschiedene, frei definierbare Spalten aufgeteilt, die die Phasen des Workflows des Teams visualisieren. Den Spalten werden anschließend die priorisierten Arbeitspakete zugeordnet. Jedes Teammitglied bedient sich selbst („Pull“ statt „Push“) und es wird so Paket für Paket abgearbeitet. Ist eine Aufgabe erledigt, wandert das Paket eine Spalte weiter.

Ein Kanban-Board visualisiert die einzelnen Prozesschritte und den Status der Aufgaben.

Was ein Paket ist, bestimmt das Team. Ebenso die Kriterien, um ein Paket in die nächste Phase zu verschieben. Wichtig dabei sind einheitliche Kriterien. So kann ein Paket alles sein, was länger als zwei Stunden und weniger als zwei Tage zur Umsetzung benötigt. Als erledigt gilt ein Paket eventuell dann, wenn es tatsächlich ins Produktivsystem eingespielt wurde. Auf diese Art lässt sich auch ein großes Arbeitspaket von mehreren Tagen Aufwand ganzheitlich nachverfolgen – von der Analyse bis zum Rollout.

Es gibt bei Kanban wenige Regeln aber ein Grundsatz muss immer gelten: Jede Spalte hat ein eigenes „Work in Progress“-Limit (WiP-Limit). Dieses WiP-Limit bestimmt, wieviele Arbeitspakete sich gleichzeitig in einem Prozessschritt befinden dürfen und darf auf keinen Fall überschritten werden. Das WiP-Limit ergibt sich aus der Entwicklungskapazität des Teams und verhindert damit dessen Überlastung. Mögliche Engpässe im Prozess fallen damit sofort auf. Ein Arbeitspaket, das für längere Zeit nicht abgenommen wird, sorgt demnach für Stau in den vorangehenden Schritten. In der Lehre des Kanban, die alles „im Fluss“ halten und gleichmäßig bewegen will, stellt das ein Problem dar, dem man sich umgehend annehmen muss.

Messtechnik

Kanban bietet vielfältige Metriken an, um die Leistung eines Teams zu messen oder Engpässe im Prozess aufzuspüren. So lässt sich etwa feststellen, wie lange ein Arbeitspaket braucht, um den gesamten Workflow zu durchlaufen („Cycle Time“). Diese Zahl stellt nichts anderes als die Entwicklungsgeschwindigkeit des Teams dar.

Ein „Cumulative Flow“-Diagramm hingegen deckt auf, in welchem Prozessschritt Engpässe auftreten und sich Arbeitspakete stauen. Dazu wird die Summe aller Pakete pro Prozessschritt in Abhängigkeit der Zeit gemessen. So kann man gezielt gegensteuern, indem man etwa das Abnahme/Testing-Team aufstockt, falls es bei der Abnahme immer wieder zu Verzögerungen kommt.

 

Ein Cumulative-Flow-Diagramm macht Engpässe sichtbar – zu sehen an den Stellen, an denen die Linien stärker auseinander laufen.

Die Verwaltung mehrerer Projekte ist ebenfalls ohne Probleme mit nur einem Whiteboard zu bewerkstelligen. Dazu gibt es zwei unterschiedliche Ansätze: Ergänzt man das Board um weitere Zeilen („Swimlanes“), lassen sich diese jeweils einem bestimmten Projekt zuordnen. Alternativ sind Kanban-Karten in verschiedenen Farben gebräuchlich.

Für unterschiedliche Projekte eignen sich entweder unterschiedlich gefärbte Karten oder eigene Zeilen auf dem Whiteboard.

Auch online lässt sich das Kanban-Modell visualisieren. Entsprechende Werkzeuge wie Greenhopper oder das Kanban-Tool sind aufgrund des zeit- und ortsunabhängigen Zugangs besonders bei verteilten Teams an unterschiedlichen Standorten sinnvoll.

Fazit

Nach einem Jahr Kanban-Nutzung im Support-Alltag fällt mein Urteil durchwegs positiv aus: Denn so simpel das Prinzip auch ist, in der Praxis zeigen sich verblüffende Effekte, sobald sich das Team darauf eingestellt hat. Durch die zentrale Bündelung aller Aufgaben am Kanban-Board gerät nichts in Vergessenheit.

Arbeitspakete werden nicht mehr per Mail oder gar auf Zuruf verteilt, sondern strukturiert erfasst und im Kontext der anderen Projekte betrachtet, was die Koordination der verschiedenen Aufgaben erheblich verbessert. Entwickler können sich endlich wieder auf die Entwicklung konzentrieren, anstatt ihre anstehenden Aufgaben verwalten zu müssen. Die WiP-Limits vermeiden indes eine Überlastung und störende Kontextwechsel zwischen verschiedenen Aufgaben. All das hat für erheblich mehr Ruhe und Konzentration im sonst hektischen Entwickleralltag gesorgt.

Auch das Projektmanagement profitiert von Kanban! Einen Blick auf das Kanban-Board sorgt für Transparenz und bringt einen schnellen Überblick. Wie hoch ist die Auslastung? Wer arbeitet gerade an welcher Aufgabe? Was steht als nächstes an? Aufwändige Status-Meetings und Nachfragen reduzieren sich von selbst auf ein kurzes, tägliches Stand-Up-Meeting vor dem Board. Die Arbeitsplanung und umständliche Lokalisierung freier Entwicklerkapazitäten wird vereinfacht, da letztlich nur noch Karten ans Board gepinnt werden müssen.

Fazit – Kanban sorgt für eine höhere Mitarbeiterzufriedenheit und Produktivität, obwohl das System (fast) ohne Regeln auskommt.