Software-Kanban – eine Einführung
Um konkurrenzfähig zu bleiben, ist eine stetige Optimierung der Arbeitsprozesse notwendig. In der Software-Entwicklung gibt es dafür mit Software-Kanban eine einfache Methode, um den bestehenden Arbeitsprozess für das Team transparent darzustellen und so Verbesserungsansätze aufzuspüren. Arne Roock stellt in diesem Beitrag Software-Kanban sowie dessen Prinzipien vor und zeigt an einem konkreten Beispiel, wie sich die Methode einsetzen lässt. Der Grundgedanke von Software-Kanban kann aber auch auf andere Bereiche übertragen werden.
Software-Kanban – eine Einführung
Um konkurrenzfähig zu bleiben, ist eine stetige Optimierung der Arbeitsprozesse notwendig. In der Software-Entwicklung gibt es dafür mit Software-Kanban eine einfache Methode, um den bestehenden Arbeitsprozess für das Team transparent darzustellen und so Verbesserungsansätze aufzuspüren. Arne Roock stellt in diesem Beitrag Software-Kanban sowie dessen Prinzipien vor und zeigt an einem konkreten Beispiel, wie sich die Methode einsetzen lässt. Der Grundgedanke von Software-Kanban kann aber auch auf andere Bereiche übertragen werden.
Viele von uns waren schon an groß angekündigten Änderungsvorhaben beteiligt – und haben auch erlebt, wie diese gescheitert sind. Große, revolutionäre Veränderungen zum Erfolg zu führen, ist schwierig und scheitert oft an der mangelnden Akzeptanz der Betroffenen. In der Software-Entwicklung und -Wartung bietet "Software-Kanban" für Change-Projekte einen interessanten Ansatz: Denn hier wird der Ist-Zustand des Arbeitsprozesses als Ausgangspunkt betrachtet und darauf aufbauend Änderungen in kleinen Schritten vorgenommen. Dabei werden einige Elemente aus dem Lean Thinking mit Ideen der Engpasstheorie und der flussbasierten Produktentwicklung kombiniert.
Dieser Artikel stellt das Prinzip "Software-Kanban" anhand eines Beispiels vor und diskutiert dessen Stärken und Schwächen. Der Beitrag richtet sich vornehmlich an Führungskräfte und Projektmanager aus der IT-Branche; der Grundgedanke, der dahinter steckt, lässt sich aber auch auf andere Industriezweige anwenden.
Herr Paulsen probiert was aus...
Herr Paulsen ist Entwicklungsleiter eines renommierten Software-Hauses, das eine Warenwirtschaftssoftware für mittelständische Unternehmen entwickelt. Obwohl die Zahlen noch recht gut aussehen, bahnen sich immer mehr Probleme an: Die Konkurrenz hat gerade eine neue Version ihres Produkts mit einigen wirklich innovativen Features auf den Markt gebracht, wodurch ein deutlicher Verlust an Kunden droht. Gleichzeitig war das letzte eigene Release kein großer Erfolg, denn es enthielt eine Menge Fehler, so dass jetzt die Support-Hotlines heiß laufen und die Entwicklungsteams überwiegend mit Wartungsarbeiten beschäftigt sind. Es muss sich also etwas ändern. Aber was?
Die nächstliegende Lösung bestünde wohl darin, mehr Entwickler einzustellen. Das hatte Herr Paulsen jedoch schon vor einem Jahr getan und erstaunlicherweise hatte sich dadurch kaum etwas verbessert. Außerdem würde sein Chef Neueinstellungen kaum zustimmen. Vielleicht sollte er eine groß angelegte Qualitätsoffensive starten, mit motivierenden Postern an den Wänden? Er könnte auch die aktuell verwendeten Tools und Frameworks prüfen, ob diese überhaupt noch zeitgemäß sind? Doch bei all diesen Überlegungen beschleicht ihn das ungute Gefühl, damit auch nicht die gewünschten Veränderungen herbeizuführen – zu oft schon sind ähnliche Aktionen ohne Erfolg geblieben.
Da fällt ihm ein, dass er vor einiger Zeit von Software-Kanban gelesen hat, einem Ansatz, mit dem sich kontinuierlich Verbesserungen in kleinen Schritten verwirklichen lassen. Er informiert sich mehr über Software-Kanban und beschließt, dieses Prinzip in seiner Abteilung auszuprobieren.
Was ist Kanban?
Kanban in der Fertigung
Ursprünglich stammt Kanban aus der Fertigung und stellt neben "Jidoka" (intelligente Automatisierung des Produktionsprozesses) eine der beiden Säulen des Toyota Production Systems dar. Bei Kanban geht es darum, Lagerbestände zu reduzieren und zu gewährleisten, dass Zwischenerzeugnisse sich stets in der richtigen Anzahl zur richtigen Zeit am richtigen Ort befinden und dadurch weder Überproduktion noch Mangel entsteht.
Das Mittel dafür ist sehr einfach: Sobald der Bestand eines bestimmten Zwischenerzeugnisses unter eine definierte Anzahl sinkt (aber erst dann), wird dem vorgelagerten Produktionsschritt signalisiert, dass er nachproduzieren soll. Dafür werden Karten verwendet (der Begriff "Kanban" bedeutet ursprünglich "Signalkarte") auf denen die Art des Zwischenerzeugnisses, die benötigte Menge und einige weitere Informationen vermerkt sind (in vielen Bereichen wurden die Karten inzwischen durch vollständig elektronische Systeme abgelöst).
Software-Kanban
In der Automobilindustrie und in anderen Bereichen der Fertigung, wie z.B. dem Werkzeugbau, ist Kanban seit Jahrzehnten im Einsatz. Allerdings lässt sich diese Technik nicht einfach eins zu eins auf die Software-Entwicklung (bzw. -Wartung und -Betrieb) übertragen – denn diese ist keine Fließbandproduktion. Features für ein neues Software-System sind keine Einzelteile, die einfach nur nachbestellt und in der richtigen Reihenfolge zusammengefügt werden müssen. Vielmehr zeichnet sich Software-Entwicklung durch ein hohes Maß an Kreativität, Ungewissheit und somit auch Variabilität aus: Einige Anforderungen lassen sich in wenigen Stunden umsetzen, andere dauern Wochen, Fachexperten und Spezialisten sind ungleichmäßig verfügbar usw.
Dennoch lassen sich für die Software-Entwicklung sehr wohl einige allgemeine Kanban-Prinzipien aus der Fertigung übernehmen. Dies ist zum einen das Pull-Prinzip (genaue Erklärung siehe unten) und zum anderen die Vorstellung von "Flow": Die Arbeit soll möglichst gleichmäßig die einzelnen Prozessschritte durchlaufen und dabei möglichst wenig Wartezeiten aufweisen.
Wenn wir heute in der IT von Kanban sprechen, meinen wir nicht das eben beschriebene Produktions-Kanban, sondern sprechen von Software-Kanban. Dabei handelt es sich um eine Methode des "Evolutionären Change Managements", die von David Anderson entwickelt wurde. "Evolutionär" ist Kanban aus zwei Gründen:
- Ausgangspunkt ist der Ist-Zustand, der schrittweise verbessert werden soll; einen definierten Endzustand gibt es nicht. Ebenso wie die Evolution niemals endet, ist auch in Software-Kanban eine ständige Weiterentwicklung vorgesehen.
- Änderungen werden stets in kleinen Schritten vorgenommen, während große, einschneidende Verbesserungen nicht vorgesehen sind. So entstehen Systeme, die einzigartig und für den jeweiligen Kontext optimiert sind.
Jennifer
05.01.2012
Steffen
25.02.2011