Blog

Von Toyotas Lean Production zu Lean Development

Von Philippe Jordi, publiziert am 11. Dezember 2009
Tags: Agile, Extreme Programming, Lean, Projektleitung, Scrum

Toyota hat in den achtziger Jahren mit grossem Erfolg eine neue Unternehmensphilosophie eingeführt: Weglassen aller überflüssigen Arbeitsgänge in der Produktion und in der Administration.

Die fünf Leitprinzipien des Lean Development

Lean Development ist die Adaption von Lean Production auf Entwicklungsprozesse. Lean Development stützt sich auf fünf Leitprinzipien:

  • Wert: Spezifiziere präzise den Wert deines Produktes
  • Wertstrom: Erkenne den Wertstrom
  • Flow: Erzeuge einen Wertstromfluss ohne Unterbrechungen
  • Pull: Lasse den Kunden den Takt der Bearbeitung bestimmen
  • Perfektion: Verbessere die Dinge kontinuierlich

Effizienzeinbussen in Software-Entwicklungsprojekten

Soweit so gut, doch wo liegen die Stolpersteine der klassischen Ansätze? Jack Milunsky hat in seinem Blog sieben Gründe für Effizienzeinbussen aufgelistet. Diese können durch Einsatz von Lean Development und weiteren agilen Methoden (Scrum, Extreme Programming) behoben werden:

1. Partially done work

Nicht vollständig erledigte Arbeit. Entwickler müssen die selben Aufgaben mehrmals bearbeiten. Wir gehen davon aus, dass diese Einbussen mittels dem Ansatz von Scrum (Scrum-Board, Status DONE) weitgehend verhindert werden können.

2. Extra Features

Zusätzliche Erweiterungen die der Kunde nicht braucht oder wünscht. Hier stellt Scrum sicher, dass Erweiterungen nach Priorität des Kunden implementiert werden.

3. Relearning / Extra Processing

Schlecht dokumentierter Code, schlechte Planung und schlechte Qualität zwingen Entwickler zum mehrmaligen Bearbeiten von Aufgaben. Scrum (Planung) und Extreme Programming (Qualität) bieten Werkzeuge, um diesen Aufwand zu reduzieren.

4. Transportation / Handoffs

Entwickler oder ganze Teams müssen unfertige Arbeiten an Kollegen übergeben. Gleich wie bei Punkt 1 helfen hier die Mechanismen von Scrum, damit möglichst wenig Arbeit nur teilweise erledigt liegen bleibt.

5. Motion / Task Switching

Entwickler erledigen mehrere Aufgaben gleichzeitig und erleben ständige Kontextwechsel. Hier greift der Scrum Master ein: Er stellt sicher, dass die Teammitglieder ungestört an den zugewiesenen Paketen arbeiten können.

6. Delays

Potenzielle Verzögerungen (z.B. fehlende Spezifikationen) müssen früh erkannt und wenn möglich verhindert werden. Dies gelingt, indem bestehende Prozesse im Hinblick auf bekannte Verzögerungsgründe untersucht und optimiert werden.

7. Bugs / Defects

Fehler kann man als Entwickler nicht immer verhindern, aber sie sollten früh erkannt werden. Bei Scrum wird darauf geachtet die Erweiterungen in kleinen, abgeschlossenen Paketen umzusetzen. Diese sollten möglichst eindeutig spezifiziert und durch automatische Tests kontrolliert werden. Pair Programming (Extreme Programming) hilft unter anderem, die Code-Qualität auf hohem Niveau zu halten.

Schlussfolgerung

Lean Development bietet enormes Spar- und Verbesserungspotential in der Softwareentwicklung. Durch den umfassenden Einsatz von Scrum und Teilen von Extreme Programming, sind diese bei Puzzle teilweise abgedeckt. Wir versuchen das Restpotential auch noch auszuschöpfen.


Kommentare

  • Von Patrick Weibel am 17.12.2009:

    Hallo Philippe

    Ich habe diesbezüglich ebenfalls was geschrieben. Die sieben Verschwendungen oder auch Mudas genannt können auf verschiedene Weise auf die Software-Entwicklung gemappt werden. Siehe mein Blogeintrag unter:
    http://blog.eweibel.net/?p=489

    Gruss

    Patrick

  • Von Jonas am 18.12.2009:

    Interessant ... ich habe zwei Bedenken:

    Im allgemeinen Hype von Lean/Scrum/Kanban/Kaizen... geht aus meiner Sicht verloren, dass Toyota eine industriellen Produktionsprozess optimierte.

    Softwareentwicklung hat jedoch meiner Meinung nach sehr wenig Ähnlichkeiten mit einem industriellen Produktionsprozess. Die Analogie der "Software-Fabrik" hat sich als unpassend erwiesen. Softwareentwicklung ist meiner Meinung nach vielmehr ein explorativer, kreativer Prozess. Die Analogie eines "Forschungslabors" passt viel besser. Daher bin ich skeptisch ob die Toyota-Ansätze wirklich für die SW-Industrie passen...

    Mein zweites Bedenken ist aus der Praxis:

    Ich erfahre in Projekten, dass es mit Scrum sehr einfach ist sich nicht um das "Big-Picture" zu kümmern ganz im Motto von „Embracing Change“. Dies ist im Moment bequem, zahlt Sich aber sehr oft schon sehr bald nicht aus. Aufgaben erledigen heisst in Scrum Stories erledigen. Sehr oft sehe ich aber immer wieder Stories in späteren Sprints, die „fertige“ Dinge aus vorangehenden Sprints wieder umbauen. Dies ist natürlich nicht grundsätzlich zu verhindern (sonst sind wir beim unmöglichen Wasserfall), in meiner Erfahrung dient Scrum oft als Ausrede sich zu wenig um das „Big Picture“ zu kümmern… Mit dem Fokus auf kleine User-Stories wird dies bestärkt. Grundsätzlich sind „Embracing Change“ und „Done“ zwei entgegengesetzte Kräfte und Scrum kann die Illusion geben, dass dies nicht der Fall ist.

Kommentar schreiben

Puzzle ITC GmbH
Eigerplatz 4
CH-3007 Bern

Tel. +41 31 370 22 00
Fax +41 31 370 22 01

Puzzle Stein