Von Lean Production zu Lean Software Development

Von Lean Production zu Lean Software Development
Mit Lean Production hat sich eine Unternehmensphilosophie herausgebildet, die die nachhaltige Steigerung der Wettbewerbsfähigkeit des Unternehmens zum Ziel hat. Dies geschieht, indem mittels eines ganzheitlichen Ansatzes Verschwendungen in allen Produktionsbereichen vermieden und gleichzeitig alle für die Wertschöpfung notwendigen Aktivitäten optimal aufeinander abgestimmt werden.[1]

Wie bereits im vorangegangenen Artikel „Effizient und kundenorientiert durch Lean Management“ thematisiert, sind historisch alle Lean-Ansätze aus der Lean Production (Stichwort: Toyota Production System) entstanden bzw. weiterentwickelt – so auch die Methodik Lean Management, welche als Führungs- und Organisationskonzept gilt. Die dabei angestrebte schlanke Unternehmensführung ist ein umfassendes Konzept, das sich auf eine Vielzahl an Tätigkeiten auswirkt und innerhalb der Strukturen des gesamten Unternehmens etabliert sein sollte. Daher sind im Verlauf der weiteren Verallgemeinerung und Adaption der Lean-Ansätze Weiterentwicklungen von Lean Production entstanden.[2]Neben vielen anderen Unternehmensbereichen entwickelte sich auch in der Softwareentwicklung eine Lean-Herangehensweise – das Lean Software Development.

Was ist Lean Software Development?

Wie die Erfahrungen in Produktion, Betrieb und Logistik zeigen, können schlanke Prozesse die höchste Geschwindigkeit, höchste Qualität und die niedrigsten Kosten in einem wettbewerbsintensiven Umfeld liefern. Der Lean-Ansatz stellt damit einen besseren Weg dar, um Produkte zu liefern. Mary und Tom Poppendieck haben deshalb die Prinzipien und Praktiken aus der Produktionsumgebung auf die Softwareentwicklung übertragen. Auch hierbei geht es um die Eliminierung von Verschwendung. In der Softwareentwicklung sind die Hauptursache für Verschwendung lange Feedbackschleifen, das heißt endlos wiederholende interne Abstimmungen, welche dazu führen, dass sich Softwarevorhaben verzögern. Die Verkürzung der Feedbackschleifen führt umgekehrt zu einer höheren Geschwindigkeit und Qualität bei gleichzeitig niedrigen Kosten.[3]

Prinzipien des Lean Software Development

Das Toyota Production System und das Toyota Product Development System sind die zugrundeliegenden Prinzipien des Lean Software Development, welche im Folgenden dargelegt werden:

Lean Software Development Prizipien

Die sieben grundlegenden Prinzipien im Lean Software Development in Anlehnung an Poppendieck und Poppendieck

  • Vermeiden von Verschwendung (Eliminate Waste): Zusätzliche Funktionen gelten nach den Prinzipien als Verschwendung. Ziel ist es, sich auf die 20 Prozent der Funktionen zu konzentrieren, die 80 Prozent des Wertes ausmachen. Auch Abweichungen sind eine Verschwendung. Eine Bedarfsabweichung ist beispielsweise das Resultat einer zu frühen Spezifikation, genauso sind zu späte Tests der Grund von Test- und Korrekturzyklen.
  • Qualität einbauen (Build Quality In): Wenn im Verifikationsprozess routinemäßig Fehler festgestellt werden, so ist der Prozess fehlerhaft. Qualität sollte durch fehlersicheren Code mit testgetriebener Entwicklung implementiert werden. Zusätzlich soll nur Code produziert werden, der automatisierte Einheits- und Akzeptanztests enthält (Legacy-Code). Neuer Code wird außerdem kontinuierlich integriert.
  • Wissen schaffen (Create Knowledge): Lernen ist essenzieller Bestandteil, weshalb Teams dazu in der Lage sein sollten, wissenschaftliche Methoden zu nutzen, um die beste Alternative zu implementieren. Gleichzeitig sollten Standards/Normen in Frage gestellt werden und stetig verbessert werden, wobei immer die bekannten und aktuell besten Praktiken in Normen verkörpert werden sollten. Außerdem sollten Organisationen schnell auf die Zukunft reagieren und durch Feedback getrieben sein, anstatt mit Vorhersagen über die Zukunft zu planen.
  • Commitment verschieben (Defer Commitment): Hierbei geht es darum hinzunehmen, dass nicht erst bei vollständiger Spezifikation mit der Entwicklung begonnen werden kann. Die Systemarchitektur soll vielmehr das Hinzufügen beliebiger Funktionen unterstützen und damit Abhängigkeiten auflösen. Es werden zusätzlich immer weitere Optionen offengehalten und Code wird als Experiment und änderungstolerant angesehen. Außerdem sollten irreversible Entscheidungen dementsprechend im letzten zu verantwortenden Moment getroffen werden.
  • Schnelle Lieferung (Deliver Fast): Unternehmen, die auf der Grundlage von Geschwindigkeit konkurrieren, haben einen erheblichen Kostenvorteil, liefern eine überlegene Qualität und sind stärker auf die Bedürfnisse ihrer Kunden ausgerichtet. Die Konzentration auf eine volle Auslastung führt zu Staus. Deshalb sollten die Zykluszeiten verkürzt und kleine Chargen geliefert werden. Damit sind weniger Dinge gleichzeitig in Arbeit, wodurch die tatsächliche Auslastung geringer ist. Ebenfalls sollte das Arbeitsvolumen auf die Kapazität des Teams beschränkt und an die Lieferfähigkeit angepasst sein.
  • Respektieren der Menschen (Respect People): Engagierte, denkende Menschen bieten den nachhaltigsten Wettbewerbsvorteil, weshalb Teams durch Werte wie Stolz, Engagement und Vertrauen geprägt sein sollten. Effektive Teams haben effektive Führungskräfte, die das Beste aus dem Team herausholen.
  • Optimieren des Ganzen (Optimize the whole): Gute Produkte entstehen aus einer einzigartigen Kombination von Chancen und Technologie. Deshalb liegt die Fokussierung auf dem gesamten Wertstrom und der Lieferung eines kompletten Produkts, was auch nur von kompletten Teams entwickelt werden kann. Durch Messungen der Prozessfähigkeit, der Teamleistung oder der Kundenzufriedenheit kann dann dementsprechend gehandelt werden.

Diese Prinzipien sind vorrangig als Leitlinien zu sehen, um Software schneller, besser und kostengünstiger bereitstellen zu können.

Fazit

Lean Software Development hat, wie auch Lean Management, im Kern die Prinzipien der Lean Production verankert. Im Vordergrund steht die Eliminierung jeglicher Art von Verschwendung, Fehlern oder überflüssigen Kostenaufwänden. Gleichzeitig wird auf die Erreichung einer optimalen Qualität abgezielt.
Da es sich beim Lean Software Development nicht um strikte Regeln, sondern vielmehr um Leitlinien handelt, lassen sie sich für jedes Unternehmen individuell und auf das jeweilige Projekt zugeschnitten adaptieren und umsetzen. Dadurch ermöglicht der Ansatz eine Verbesserung der Effizienz in den Projekten sowie eine Optimierung der Prozesse.

[1] vgl. Brunner, Franz J.: Japanische Erfolgskonzepte: KAIZEN, KVP, Lean Production Management, Total Productive Maintenance, Shopfloor Management, Toyota Production Management

[2] vgl. Schwickert, Axel C.; Ostheimer, Bernhard; Eroglu, Murat: Kaizen, TPM, Lean – Grundlagen, Abgenzung, Zusammenhänge, in Arbeitspapiere WI, Nr. 4/2011

[3] vgl. Poppendieck und Poppendieck[/artikel_text]

Picture of Adrian Liepert

Adrian Liepert

Er verfügt über mehrjährige Beratungs- und Transaktionserfahrung und unterstützt als M&A Manager die Buy&Build und Wachstumsstrategie der digatus Gruppe. Adrian Liepert ist Absolvent des Studiengangs Mergers & Acquisitions (LL.M.) der Frankfurt School of Finance & Management sowie des Durham-EBS Executive MBAs.

Adrian auf LinkedIn

Letzte Beiträge

Erfolgreiche Transition der IT-Landschaft der Thüga Aktiengesellschaft und Übernahme des IT-Supports

digatus und Gubbi bündeln ihre Expertise in einer strategischen Partnerschaft

digatus unterstützt Infrareal bei der Übernahme des Pharma- und Biotech-Standorts in Orth