Menu
✁
digitalien.org — Stefan Knecht
Lean Development ist die Anwendung der Prinzipien von Lean Production und Lean Thinking auf die (Software)-Entwicklung: es zählt das nutzbare Resultat der Entwicklung, das nutzenstiftende Produkt — alles andere gilt es ständig zu überprüfen.
In der Softwareentwicklung gelten andere ökonomische Parameter als in der industriellen Produktion:
Mehr dazu: ➚ Was lean thinking ausmacht
Mary und Tom Poppendieck bieten sieben Prinzipien aus lean für die Software-Entwicklung an.
Es gibt sie in mehreren Versionen, die aktuellste ➚ listet auf:
Diese Prinzipien des lean software development sind agilen Prinzipien sehr ähnlich.
Manche sind eine wertvolle Ergänzung wie der Blick auf das ‘Große Ganze’, über den Tellerrand eines einzelnen (Scrum-)Teams hinaus: einen Zweck definieren, in Wertströmen denken, globale statt lokale Optima suchen.
Mit den Prinzipien aus lean wird agiles Vorgehen skalierbar und lässt sich auf die gesamte Organisation ausweiten. Aus einzelnen agilen Teams wird im Konzert die Business Agility eines Unternehmens.
Der Transfer von Produktion zu Softwareentwicklung wird schön in dieser Tabelle deutlich.
Die bekannten 7 Quellen der Verschwendung der industriellen Produktion aus dem Toyota Production System sind der Entwicklung von Software gegenüberstellt:
Industrielle Produktion | Entwicklung von Software |
Inventory (Bestände): an verschiedenen Stellen der Wertschöpfungskette (Rohmaterialien, Work in Process, Fertigprodukte) | Partially Done Work: läuft Gefahr, obsolet zu werden und verzögert die Erkenntnis, ob das Problem gelöst werden kann oder nicht |
Overproduction: wenn mehr produziert wird, als der Kunde aktuell abnehmen kann oder will | Extra Features: Features, die ohne erkennbaren Nutzen “für alle Fälle” entwickelt werden. Dies bedeutet nicht nur Aufwand in der Entwicklung, sondern auch bei der fortlaufenden Wartung. Das Softwaresystem wird unnötig kompliziert. |
Overprocessing / Overengineering: die Prozesse verkomplizieren das Vorgehen und legen mehr fest als nötig wäre | Extra Processes: z.B. Papierkram, notwendige Unterschriften für Freigaben |
Transportation: Rohmaterialien Werkstücke, Fertigprodukte, Werkzeuge… | Task Switching: z.B. dadurch, dass Menschen unterschiedlichen Projekten gleichzeitig zugewiesen sind |
Waiting: der Mitarbeiter wartet auf das Produkt, oder das Produkt wartet auf Mitarbeiter (die gerade mit etwas anderem beschäftigt sind) | Waiting / Delays: z.B. schon vor dem Start eines Projekts durch die Zuweiseung von Budget und Mitarbeitern, ausführliche Spezifikationen; |
Motion: Weiterreichen von Werkzeugen, Gang zur zentralen Werkzeugausgabe… | Motion: z.B. durch das Einholen von Informationen, das Arbeiten an unterschiedlichen Standorten |
Defects: Ausschuss / Nacharbeit durch Fehler, besonders wenn sie erst am Schluss der Wertschöpfungskette gefunden werden. | Defects: je später der Fehler gefunden wird, desto mehr Nacharbeit ist damit verbunden |
Lean Thinking ist die Fusion dieser Prinzipien und ein Führungsprinzip, das den Mitarbeiter nicht mehr als Produktionsfaktor betrachtet, sondern ihn einbezieht.
Scrum übernahm viele der Lean-Prinzipien. Jeff Sutherland sagt, Scrum baue auf einem Beitrag “The New New Product Development Game” von Hirotaka Takeuchi and Ikujiro Nonaka auf. So lesen sich die frühen Artikel zu Scrum wie eine Zusammenfassung aus Lean Development.
Takeuchi und Nonaka haben übrigens für viele lean organisierten Firmen wie Honda oder Toyota gearbeitet, waren aber keineswegs Jünger der Effizienz. Beide interessierten sich für Innovation und die Erzeugung von Wissen, weniger für die Optimierung von Produktionsprozesse.
Mehr dazu: ➚ Was lean thinking ausmacht