Kanban in der IT

Kanban in der IT

Kanban in der IT ist ein Vorgehen, das bei der Softwareentwicklung die Anzahl paralleler Arbeiten, den Work in progress (WiP), reduziert und somit schnellere Durchlaufzeiten erreicht und Probleme – insbesondere Engpässe – schnell sichtbar macht.

Inhaltsverzeichnis

Wurzeln und Geschichte

Das japanische Wort Kanban bedeutet ursprünglich ‚Signalkarte‘ (kan ‚Signal‘, ban ‚Karte‘) und ist eine Technik aus dem Toyota-Produktionssystem, mit der Lagerbestände reduziert werden und ein gleichmäßiger Fluss (Flow) in der Fertigung hergestellt werden soll. Kanban in der IT übernimmt zwar den Namen, versucht aber keine direkte Übertragung einzelner Techniken aus der Produktion auf die IT. Vielmehr werden einige grundlegende Prinzipien aus der Lean Production (‚Schlanke Produktion‘), und mehr noch dem Lean Development (auch Lean Product Development), übernommen und ergänzt durch die Theory-of-Constraints und das klassische Risikomanagement. Insbesondere die Ideen Don Reinertsens, der verschiedene Techniken vorstellt, wie sich Produkte in wesentlich kürzerer Zeit entwickeln lassen, spielen eine wichtige Rolle in Kanban. Als „Begründer“ von Kanban in der IT gilt David Anderson,[1] der das Gesamtkonzept erstmals 2007 der Öffentlichkeit vorstellte.

Grundidee

Kanban vertritt zwei Grundideen:

  • Die Wertschöpfungskette mit ihren verschiedenen Prozessschritten (zum Beispiel Anforderungsdefinition, Programmierung, Dokumentation, Test, Inbetriebnahme) wird gut sichtbar für alle Beteiligten visualisiert. Dafür wird ein Kanban-Board (in der Regel ein großes Whiteboard) verwendet, auf dem die unterschiedlichen Stationen als Spalten dargestellt werden. Die einzelnen Anforderungen (es können Tasks, Features, User Storys, Minimal Marketable Features (MMF) usw. sein) werden auf Karteikarten oder Haftnotizen festgehalten und durchwandern mit der Zeit als so genannte Tickets das Kanban-Board von links nach rechts.
  • Die Anzahl der Tickets (Work in Progress – WiP), die gleichzeitig an einer Station bearbeitet werden dürfen, wird limitiert. Wenn beispielsweise die Programmierung gerade zwei Tickets bearbeitet, und das Limit für diese Station zwei beträgt, darf sie kein drittes Ticket annehmen, auch wenn die Anforderungsdefinition ein weiteres bereitstellen könnte. Hierdurch entsteht ein Pull-System, bei dem sich jede Station ihre Arbeit bei der Vorgängerstation abholt, anstatt fertige Arbeit einfach an die nächste Station zu übergeben.

Die Visualisierung und die Begrenzung des WiP sind einfache Mittel, mit denen rasch sichtbar wird, wie schnell die Tickets die verschiedenen Stationen durchlaufen und wo sich Tickets stauen. Die Stellen, vor denen sich Tickets häufen, während an den nachfolgenden Stationen freie Kapazitäten vorhanden sind, werden als Bottlenecks bezeichnet. Durch Analysen des Kanban-Boards können immer wieder Maßnahmen ergriffen werden, um einen möglichst gleichmäßigen Fluss (Flow) zu erreichen. Beispielsweise können die Limits für einzelne Stationen verändert werden, es können Puffer eingeführt werden (insbesondere vor Bottlenecks, die durch nur zeitweise Verfügbarkeit von Ressourcen entstehen), die Anzahl der Mitarbeiter an den verschiedenen Stationen kann verändert werden, technische Probleme werden beseitigt usw. Dieser kontinuierliche Verbesserungsprozess (japanisch: Kaizen) ist wesentlicher Bestandteil von Kanban.

Verhältnis zu anderen Vorgehensweisen in der Softwareentwicklung

Wasserfall

Auch wenn die Stationen auf einem Kanban-Board häufig genau den Schritten des Wasserfallmodells entsprechen, besteht hier kein zwingender Zusammenhang. Insbesondere ist Kanban darauf angelegt, dass die einzelnen Tickets möglichst schnell alle Stationen durchlaufen und dann auch regelmäßig freigegeben werden. Kanban arbeitet also mit kleinen Schritten, die regelmäßig überprüft und gegebenenfalls wieder korrigiert werden. Allerdings lässt sich Kanban auf ein existierendes Wasserfall-Modell aufsetzen und kann dazu führen, dieses allmählich schneller und flexibler zu gestalten.

Der Unterschied zum klassischen Wasserfall wird insbesondere dadurch deutlich, dass im Wasserfall das gesamte Produkt parallel die einzelnen Produktionsphasen durchläuft, bei Kanban dagegen einzelne „Werkstücke“ bzw. Produktanforderungen. Insbesondere versucht man bei Kanban, die batch size, d. h. die Menge gleichzeitig in das Produktionssystem eingegebener Anforderungen, zu reduzieren.

Scrum

Kanban weist viele Gemeinsamkeiten mit dem agilen Managementframework Scrum auf, steht jedoch in keinem zwingenden Verhältnis zu diesem. Weder muss man zuerst Scrum einsetzen, bevor man Kanban einführt, noch schließen sich beide Ansätze komplett aus. In gewisser Weise lässt sich Scrum als eine mögliche Implementierung von Kanban ansehen. Der Haupt-Unterschied zwischen beiden Ansätzen besteht darin, dass Scrum Iterationen („Sprints“) mit festen, stets gleich langen Zeiträumen (Time-Boxes) zwingend vorgibt, während Kanban per se kein Iterationsprinzip vorschreibt, dieses jedoch auch nicht ausschließt. Weiter sind bei Scrum die Eingabe- sowie die Ausgabekadenz synchronisiert, während diese bei Kanban explizit entkoppelt werden können.

Nach Henrik Kniberg lassen sich folgende Gemeinsamkeiten und Unterschiede zwischen Scrum und Kanban ausmachen.[2]

Gemeinsamkeiten zwischen Kanban und Scrum

  • schlank ("lean") und agil
  • Pull-System
  • begrenzen den WiP
  • setzen auf Transparenz, um den Prozess zu verbessern
  • fokussieren darauf, möglichst schnell und möglichst häufig releasefähige Software-Inkremente auszuliefern
  • basieren auf selbstorganisierenden Teams
  • erfordern, dass Anforderungen in kleine Einheiten heruntergebrochen werden
  • In beiden wird der Releaseplan immer wieder optimiert, indem empirische Daten ausgewertet werden (Team-Geschwindigkeit / Durchlaufzeiten)

Unterschiede zwischen Kanban und Scrum

Kanban Scrum
Iterationen sind optional. Es kann unterschiedliche Takte für Planung, Releases und Prozessverbesserung geben. Iterationen mit gleichen Längen sind vorgeschrieben.
Commitments sind optional. Das Team vereinbart, eine bestimmte Menge an Arbeit während der nächsten Iteration zu erledigen.
Die Durchlaufzeit (Cycle Time) wird als Basis-Metrik für Planung und Prozessverbesserung verwendet. Die Team-Geschwindigkeit (Velocity) ist die Basis-Metrik für Planung und Prozessverbesserung.
Cross-funktionale Teams sind optional. Experten-Teams sind erlaubt. Cross-funktionale Teams sind vorgeschrieben.
Keine Vorschrift bezüglich der Größe von Anforderungen. Anforderungen müssen so aufgeteilt werden, dass sie sich innerhalb einer Iteration erledigen lassen.
Es ist kein bestimmter Diagrammtyp vorgeschrieben. Burndown-Charts werden verwendet.
WiP wird direkt limitiert. WiP wird indirekt limitiert (durch die Menge an Anforderungen, die in einen Sprint „passt“).
Schätzungen sind optional. Schätzungen sind vorgeschrieben.
Neue Anforderungen können zu jedem Zeitpunkt an das Team gegeben werden, falls Kapazitäten frei sind. Während eines laufenden Sprints können keine neuen Anforderungen an das Team gegeben werden.
Gibt keine Rollen vor. Schreibt drei Rollen vor (Product Owner, Scrum Master, Team).
Ein Kanban-Board kann von mehreren Teams und/oder Einzelpersonen geteilt werden. Ein Scrum-Board gehört einem einzelnen Team.
Ein Kanban-Board wird kontinuierlich weitergepflegt. Das Scrum-Board wird nach jedem Sprint gelöscht und neu aufgesetzt.
Priorisierung ist optional. Schreibt vor, dass alle Einträge im Backlog priorisiert sein müssen.

Kaizen

Kanban enthält als festen Bestandteil eine Kultur des kontinuierlichen Verbesserungsprozesses (KVP), gibt aber keine detaillierten Praktiken hierfür vor. In vielen Kanban-Teams haben sich aber mindestens die folgenden drei Praktiken etabliert:

Tägliche Statusmeetings (Standup-Meetings)
Das Team trifft sich täglich (in der Regel morgens) vor dem Kanban-Board. Dort wird anhand der Tickets der Projektfortschritt seit dem letzten Meeting deutlich gemacht. Außerdem werden Probleme verdeutlicht und Lösungswege besprochen. Das Meeting ist allerdings auf Kürze angelegt (zirka 15 Minuten), so dass längere Diskussionen ausgelagert werden.
Operations Reviews
In Kanban werden so genannte Operations Reviews abgehalten. Dies sind Meetings, die der kontinuierlichen Verbesserung dienen. Sie weisen Ähnlichkeiten zu Retrospektiven auf, wie sie aus anderen agilen Methoden bekannt sind. Allerdings finden Operations Reviews unregelmäßig statt. Und sie streben eine hohe Objektivität an, indem sie sich stärker auf die gesammelten Daten aus der Vergangenheit beziehen. Weiterhin wird versucht, dass an diesen Meetings Teilnehmer aus der gesamten Organisation teilnehmen (inklusive Management), und nicht nur das Entwicklungsteam.
Root Cause Analysis
Probleme sollen in Kanban nicht verwaltet, sondern behoben werden. Dies geschieht im Wesentlichen dadurch, dass durch das Kanban-Board Fehler schnell deutlich werden, zum Beispiel weil sich Arbeit staut, einzelne Stationen nicht ausgelastet sind, die Durchlaufzeiten zu lang sind oder einzelne Tickets ständig an derselben Station bleiben. Die Fehlerursachen sollen schnell ausfindig gemacht und schnell beseitigt werden (gegebenenfalls durch die Zusammenarbeit des gesamten Teams).

Value, Flow und Waste Elimination

Kanban orientiert sich am Grundsatz aus dem Lean Thinking Value Trumps Flow, Flow Trumps Waste Elimination (deutsch: „Wert geht über Fluss, Fluss geht über Beseitigung von Verschwendung“). Dies bedeutet, dass zwar großer Wert darauf gelegt wird, Verschwendung zu beseitigen (zum Beispiel unfertige Aufgaben) und einen möglichst gleichmäßigen Fluss zu gewährleisten, dass an erster Stelle jedoch stets der Wert der zu erledigenden Tickets steht. Deshalb kann es auch gerechtfertigt werden, ein Kanban-Limit kurzfristig zu brechen, um ein sehr wichtiges Ticket schneller zu bearbeiten oder Features schon im Vorwege detailliert zu spezifizieren, obwohl ungewiss ist, ob/wann sie tatsächlich realisiert werden.

Priorisierung

Um zu entscheiden, welche Storys/Tasks/Features zu welchem Zeitpunkt in das Kanban-System gegeben werden, wird häufig nach dem Schema der Verzögerungskosten (Cost of Delay) priorisiert, das auf Reinertson/Smith zurückgeht. Die Idee dahinter ist, dass es nicht nur Kosten verursacht, neue Funktionalität zu entwickeln, sondern dass auch Kosten dadurch entstehen, dass neue Funktionalität mit Verzögerung auf den Markt gebracht wird. Streng genommen handelt es sich dabei zwar nicht um „Kosten“, sondern um „nicht-gemachte Gewinne“, was letztlich auf dasselbe hinausläuft (Opportunitätskosten). Oft wird es so sein, dass eine neue Funktionalität umso mehr Verzögerungskosten verursacht, je später sie am Markt ist. Die Frage ist dann, wie teuer jeder weitere Tag/Woche/Monat Verzögerung ist und wie sich diese Kosten im Verhältnis zu den Verzögerungskosten für andere Funktionalitäten verhalten. Es gibt jedoch auch Fälle, in denen mehrere Wochen/Monate/Jahre gar keine Verzögerungskosten anfallen, diese dann aber an einem Termin schlagartig ansteigen (und dann sogar das gesamte Unternehmen gefährden können). Wenn beispielsweise eine wichtige Messe, auf der gewöhnlich neue Software einer bestimmten Branche vorgestellt wird, im November stattfindet, dann sind die Verzögerungskosten von September nach Oktober sehr gering (oder sogar null), von November auf Dezember jedoch sehr hoch (eventuell so hoch, dass es wirtschaftlich nicht sinnvoll ist, die Software zu dem späteren Termin überhaupt noch freizugeben). Ein weiteres Beispiel sind gesetzliche Änderungen, die ab einem bestimmten Stichtag gelten. Wenn die Software/Hardware bis zu diesem Stichtag nicht an die neuen Regelungen angepasst ist, kann es bedeuten, dass das Produkt vom Markt genommen werden muss. Auf der anderen Seite ist es nicht wirtschaftlich, die geänderten Regelungen schon weit im Voraus einzusetzen. Deshalb würde man in einem Kanban-System die durchschnittliche Durchlaufzeit für diese Funktionalität berücksichtigen, einen ausreichenden Puffer einplanen und die Funktionalität kurz vor dem Stichtag produktiv stellen.

Service Level Agreements (SLA)

Wenn ein Kanban-System installiert wird, werden zu Beginn in der Regel alle Tickets gleich behandelt. Das bedeutet, dass diejenigen Tickets, die zuerst von der ersten Station erledigt wurden, auch zuerst von der nächsten Station bearbeitet werden. Dieses Vorgehen wird als FIFO (First in, First out) bezeichnet. Oft wird jedoch schnell deutlich, dass Tickets mit verschiedener Wichtigkeit behandelt werden. Deshalb wird in Kanban vorgeschlagen, verschiedene Service-Arten (Classes of Service) zu definieren. Dies sind die häufigsten Service-Arten:

Beschleunigt (Expedite)
Diese Tickets müssen mit hoher Priorität behandelt werden. Je nach Domäne kann es nötig sein, dass das gesamte Team seine momentane Tätigkeit stoppt, um dieses Ticket zu bearbeiten. Dies ist beispielsweise der Fall, wenn für einen wichtigen Internet-Dienst Server ausfallen und der Dienst nicht mehr erreichbar ist. Für diese Service-Arten werden häufig die Kapazitätslimits der einzelnen Stationen vorübergehend außer Kraft gesetzt.
Fester Termin (Fixed Date)
Wenn eine Funktionalität erst zu einem fixen Termin benötigt wird (zum Beispiel weil dann eine Gesetzesänderung wirksam wird), dann werden die entsprechenden Tickets so durch das Kanban-System geschleust, dass die Funktionalität kurz vor diesem Stichtag produktiv geht.
Vage (Intangible)
Wenn der Geschäftswert und/oder die Verzögerungskosten für eine neue Funktionalität vage sind, werden die entsprechenden Tickets nachrangig behandelt. Das Team kann zum Beispiel definieren, dass sich zu jedem Zeitpunkt nur ein solches Ticket im System befinden darf.
Standard (Standard)
Alle anderen Tickets zählen zur Standard-Serviceklasse. In der Regel werden Sie nach FIFO behandelt. Das Team kann jedoch auch andere/zusätzliche Regeln definieren.

Die Service-Arten werden maßgeblich bestimmt durch die Art der Verzögerungskosten, die mit den jeweiligen Funktionalitäten verbunden sind.

Anwendungsbereiche

Die Anwendungsbereiche von Kanban in der IT sind sehr vielfältig. Momentan wird Kanban hauptsächlich in diesen Fällen eingeführt:

  • Ein Team, das bereits agil vorgeht (zum Beispiel nach Scrum), sucht nach weiteren Verbesserungsmöglichkeiten. Kanban stellt hierbei eine Möglichkeit dar, noch flexibler mit den Anforderungen umzugehen, die Durchlaufzeiten zu verkürzen, häufiger zu releasen und fokussierter zu arbeiten.
  • Für klassisch ausgerichtete Unternehmen, die zum Beispiel nach dem Wasserfall-Modell vorgehen, stellt es häufig eine zu große Herausforderung dar, ein agiles Vorgehen wie Scrum einzuführen, weil hierfür recht weit reichende Veränderungen nötig sind. In diesem Fall bietet Kanban den Vorteil, dass Änderungen allmählich eingeführt werden können, ohne dass dies unmittelbar größere Änderungen nötig macht.
  • Für Bereiche, die durch starke Arbeitsteilung und Spezialisierung gekennzeichnet sind, ist Kanban häufig attraktiver als andere agile Methoden, in denen häufig gefordert wird, dass die Teams aus Generalisten bestehen und keine Wissensinseln vorhanden sind. Dies scheint aber für einige Bereiche (zum Beispiel die Spieleindustrie) momentan unrealistisch zu sein.
  • Weil Wartung und IT-Betrieb durch viele Unterbrechungen und regelmäßige Notfälle gekennzeichnet sind, sind hier ungestörtes Arbeiten und Iterationen fester Länge wie in Scrum kaum möglich. Hier kann Kanban die bessere Wahl darstellen, insbesondere, weil die verschiedenen Service-Arten in Kanban gut zum Alltag von Systemadministratoren und Wartungsteams passen.

Varianzen

Anders als in der Automobilproduktion ist es in der IT zwar unrealistisch, dass alle Anforderungen exakt dieselbe Größe haben bzw. immer in nahezu derselben Zeit erledigt werden können. Dennoch wird in Kanban-Systemen angestrebt, diesem Ideal möglichst nahe zu kommen. Ein Ziel von Kanban ist es daher, die Varianzen zu verringern. Dies geschieht, indem zum Beispiel User Stories in Tasks möglichst gleicher Komplexität heruntergebrochen werden.

Tracking

In Kanban-Systemen werden verschiedene Metriken getrackt, um empirische Daten für zukünftige Verbesserungen zu sammeln. Dies sind die üblichen Arten des Trackings in Kanban:

Cumulative Flow Diagram (CFD)
Dieses Diagramm kann als Weiterentwicklung der Burnup-Diagramme angesehen werden, die in XP und (teilweise) Scrum verwendet werden. Allerdings zeigt ein CFD nicht nur an, wann wie viele Tasks erledigt werden, sondern es visualisiert die Zustände an allen Stationen des Kanban-Systems (Programmierung, Dokumentation, Test usw.) Es macht so schnell deutlich, wo sich die Bottlenecks befinden.
Work in Progress (WiP)
Dieses sehr einfache Diagramm zeigt an, wie sich die Anzahl der Tasks und Stories entwickelt, die sich gleichzeitig im Kanban-System befinden. Eine stetig steigende Kurve signalisiert dabei in der Regel ein Problem (zum Beispiel immer mehr blockierte Tickets).
Durchsatz
In einem einfachen Liniendiagramm wird dargestellt, wie viele Tickets pro Woche erledigt wurden.
Fehlerrate
Durch dieses Diagramm wird kontrolliert, wie sich die Anzahl der Bugs über die Zeit entwickelt. Weil Kanban auf kurze Durchlaufzeiten ausgerichtet ist und eine Grundannahme lautet, dass kurze Durchlaufzeiten nur durch hohe Qualität zu erreichen ist, liegt ein wichtiges Ziel von Kanban immer in der Reduzierung der Fehlerrate.

Literatur

  • Donald G. Reinertsen: The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas Publishing, Redondo Beach/Kalifornien 2009, ISBN 978-1-935401-00-1.
  • Preston G. Smith, Donald G. Reinertsen: Developing Products in Half the Time. New Rules, New Tools. Van Nostrand Reinhold, New York 1998, ISBN 0-442-02548-3.
  • Corey Ladas: Scrumban – Essays on Kanban Systems for Lean Software Development. Modus Cooperandi Press, Seattle/Washington 2008, ISBN 978-0-578-00214-9.
  • David J. Anderson: Kanban. Successful Evolutionary Change for Your Technology Business. Blue Hole Press, Sequim, Washington 2010, ISBN 978-0-9845214-0-1.
  • David J. Anderson: Kanban. Evolutionäres Change Management für IT-Organisationen. dpunkt.verlag, Heidelberg 2011, ISBN 978-389864-730-4.

Weblinks

Einzelnachweise

  1. http://www.agilemanagement.net/Articles/hidden/Biography.html
  2. übernommen aus Kanban vs Scrum von Henrik Kniberg

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Kanban-System —   [japanisch Kanban »Karte«, »Schild«], Betriebswirtschaftslehre: in Japan entwickeltes Instrument zur Steuerung des Materialflusses mit dem Ziel einer Gesamtkostenminimierung durch Verwirklichung des Prinzips einer »Produktion auf Abruf« (Just… …   Universal-Lexikon

  • Kanban — Materialbegleitkarte im Bergbau Kanban (jap. 看板, dt. „Karte“, „Tafel“, „Beleg“) ist eine Methode der Produktionsablaufsteuerung. Das auch Hol oder Zurufprinzip genannte Pull Prinzip orientiert sich ausschließlich am tatsächlichen Verbrauch von… …   Deutsch Wikipedia

  • Kanban-System — 1. Begriff: In Japan entwickeltes System zur flexiblen, dezentralen ⇡ Produktionsprozesssteuerung; „Kanban“ bedeutet wörtlich „Karte“ und bezeichnet die Identifizierungskarte, die sich bei jedem Endprodukt, jeder Baugruppe und jedem Einzelteil,… …   Lexikon der Economics

  • Kanban für Prozesse (Conwip) — ConWIP (Constant Work In Process) bezeichnet ein Verfahren zur Produktionssteuerung. Im Unterschied zu anderen Verfahren werden nicht primär Termine gesteuert, sondern die Höhe des Materialbestands in der Produktion. Dieser Materialbestand wird… …   Deutsch Wikipedia

  • Liste der Erfinder — Dies ist eine Liste von Erfindern, die die Welt mit ihren Erfindungen bereichert haben. Ein Erfinder ist jemand, der ein Problem erkannt hat, es gelöst und mindestens einmal damit Erfolg gehabt hat. Er muss nicht der erste gewesen sein; eine… …   Deutsch Wikipedia

  • Kanbansteuerung — Kanban (japanisch 看板, dt. „Karte“, „Tafel“, „Beleg“) ist eine Methode der Produktionsablaufsteuerung nach dem Pull Prinzip (auch Hol oder Zurufprinzip) und orientiert sich ausschließlich am Bedarf einer verbrauchenden Stelle im Fertigungsablauf.… …   Deutsch Wikipedia

  • Pull-Prinzip — Kanban (japanisch 看板, dt. „Karte“, „Tafel“, „Beleg“) ist eine Methode der Produktionsablaufsteuerung nach dem Pull Prinzip (auch Hol oder Zurufprinzip) und orientiert sich ausschließlich am Bedarf einer verbrauchenden Stelle im Fertigungsablauf.… …   Deutsch Wikipedia

  • Lean Management — Der Begriff Lean Management (in deutschen Übersetzungen auch Schlankes Management) bezeichnet die Gesamtheit der Denkprinzipien, Methoden und Verfahrensweisen zur effizienten Gestaltung der gesamten Wertschöpfungskette industrieller Güter[1].… …   Deutsch Wikipedia

  • Lean-Management — ist die Gesamtheit der Denkprinzipien, Methoden und Verfahrensweisen zur effizienten Gestaltung der gesamten Wertschöpfungskette industrieller Güter[1]. Inhaltsverzeichnis 1 Begriff 2 Kernidee 2.1 Zehn Prinzipien für schlanke Unternehmensführung …   Deutsch Wikipedia

  • Leanmanagement — Lean Management ist die Gesamtheit der Denkprinzipien, Methoden und Verfahrensweisen zur effizienten Gestaltung der gesamten Wertschöpfungskette industrieller Güter[1]. Inhaltsverzeichnis 1 Begriff 2 Kernidee 2.1 Zehn Prinzipien für schlanke… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”