•  
  •  
  •  
  •  
  •  
Lean Software Development

Schlank und rank statt gross und schwerfällig

Tiefere Kosten, höhere Qualität, optimierte Zusammenarbeit: Die schlanke Software-Entwicklung nach dem Konzept des Lean Software Development bietet gegenüber klassischen Entwicklungsmethoden einige Vorteile.

11.06.2018Text: bbv0 Kommentare
Lean Software Development
  •  
  •  
  •  
  •  

Das Konzept des Lean Software Development stammt ursprünglich nicht aus der IT, sondern aus der Autoindustrie: Der Autohersteller Toyota, der die Bezeichnung «Lean Production» bzw. «Lean Manufacturing» prägte, führte die schlanke Arbeitsweise bereits in den 1960er-Jahren ein. Beim japanischen Konzern war der Lean-Produktionsansatz (Just-in-time-Produktion) eingebettet in eine Unternehmenskultur, die ebenfalls auf Effizienz basierte.

Was im Automobilbau funktioniert, führt auch in der Softwareentwicklung zum Erfolg. Die Softwareentwicklung hat den Begriff übernommen und im Konzept des Lean Software Developments eingebunden. Die Kernaussage lautet: Jede Art von Verschwendung soll reduziert oder besser noch eliminiert werden. In den Arbeitsprozessen sollen die Feedbackschlaufen kurzgehalten und Backlogs abgebaut werden. Regelmässige Unit Tests sorgen dafür, dass keine Leerläufe entstehen – kurz: dass schlank entwickelt werden kann.

Kosten runter, Qualität rauf

Lean Software Development beschreibt eine agile Arbeitsmethodik, bei der effizient und möglichst ohne Ballast gearbeitet wird. Das heisst: Man konzentriert sich auf das Wesentliche und verfolgt eine schnelle und effektive Kommunikation unter allen Beteiligten. «Lean Software Development ist eine gute Ergänzung zur agilen Arbeitsmethode», sagt Urs Enzler, Senior Software-Architekt .NET bei bbv. «Je nach Projekt und Team lassen sich einzelne Prinzipien von Lean Software Development sehr hilfreich anwenden. Die Hauptvorteile liegen in der Verringerung der Kosten, in der optimierten Zusammenarbeit im Team und in der Steigerung der Qualität, die von Anfang an in die Prozesse eingebaut wird.»

Theoretisch gestützt, flexibel anwendbar

Konkret lassen sich mit Lean Software Development Prozesse optimieren. So, wie in der Produktion beispielsweise Lagerhaltungen minimiert werden, sollen in der Softwareentwicklung Warteschlaufen vermieden werden. «Lean Software Development bietet verschiedene Bausteine für die Prozessoptimierung, von denen man sich je nach Art des Projekts bedienen kann. Oft arbeitet man schon unbewusst nach diesen Prinzipien, die eigentlich Abläufe beschreiben, auf die man auch mit gesundem Menschenverstand kommt», erklärt Enzler.

Das theoretische Fundament umfasst 7 Prinzipien:

Die Prinzipien des Lean Software Development

  1. Verschwendung eliminieren: Schlanke Produktionsabläufe generieren schlanke Produkte. Es sollen keine unnötigen Tasks oder Wartezeiten entstehen. Alles, was keinen Mehrwert liefert, wird nicht gemacht. Jede Aktivität, die weggelassen werden kann, wird weggelassen.
  1. Wissen schaffen / Lernen unterstützen: Anstatt ausufernde Dokumentationen zu erstellen, gilt «learning by doing». Der Problemlösungsprozess soll Wissen schaffen, indem verschiedene Ansätze umgesetzt und die Resultate mit Feedbacks in kurzen Zyklen überprüft und verbessert werden.
  1. Qualität einbauen: Qualität wird von Anfang an eingebaut und bleibt ein wichtiger Bestandteil über alle Prozesse. Die Qualität misst sich am Grad, im welchem das System die Ansprüche aller Stakeholder befriedigt. Die Methoden dazu sind: Test Driven Development, Pair Programming, schnelle Feedback-Zyklen, enge Zusammenarbeit der Fachabteilungen, Entwicklung und Betrieb und Continuous Refactoring.
  1. So schnell wie möglich liefern: Je früher ein Teil der Software fertig ist, umso früher kann ein Feedback erfolgen. So können beispielsweise Probleme, die bei mehreren Teams auftauchen, früher behoben werden.
  1. So spät wie möglich entscheiden: Trotz ständiger Unsicherheiten in der Softwareentwicklung soll nicht sofort entschieden werden, was zu tun ist. Auch Kunden sollen erst dann entscheiden können, wenn sie ihre Anforderungen besser kennen. Die Planung soll verschiedene Optionen offen lassen.
  1. Verantwortung an das Team abgeben: Durch die Möglichkeiten, selbstständig Entscheidungen zu treffen und Hand in Hand zusammenarbeiten zu können, kann die Motivation im Team gesteigert werden. Ziele sollen gemeinsam verfolgt werden, Rollen sind nicht starr.
  1. Integrität einbauen: Die Software soll beim Kunden als Ganzes, aus einem Guss wahrgenommen werden. Das System soll sich so verhalten, wie erwartet. Ähnliche Probleme werden mit denselben Methoden behoben.

Der Experte

Urs Enzler

Urs Enzler ist als Expert Software-Architekt .NET bei bbv tätig. Als agil gesinnter Softwareentwickler spricht er an Konferenzen und Community-Anlässen gerne über architektonische Herausforderungen und über das Lernen im Team. Enzler ist Ko-Gründer der .NET Usergroup Zentralschweiz.

Unser Wissen im Abo

Misserfolge in der Softwareentwicklung

Die Freude am Scheitern

Softwareentwicklung
Software Development Quality

Schatzkarte für Entwickler-Teams

Softwareentwicklung

Artikel kommentieren

Die E-Mail-Adresse wird nicht publiziert. Notwendige Felder sind mit einem * versehen.