Von Toyotas Lean Production zu Lean Development

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 sind geschlossen.