Productivity Improvement

durch Lean Software Development

Ineffizienzen in der Softwareentwicklung

Moderne Geschäftsprozesse erfordern Unterstützung durch Software-Systeme. Um in globalisierten Märkten Wettbewerbsvorteile zu erzielen sind häufig Anpassungen und Neuentwicklungen dieser Systeme notwendig, die jedoch oft hohe Investitionen erfordern. Versuche, diesem Problem mit detaillierten Vorgaben bzw. Entwicklungsprozessen, Controlling und präziserer Planung zu begegnen, reduzieren Risiken, führen jedoch in der Regel nicht zu Kostensenkungen, da der Aspekt der Effizienz hierdurch nicht explizit adressiert wird. Zudem konsumieren die zusätzlich erforderlichen Aktivitäten für Planung und Kontrolle weitere Ressourcen und reduzieren die Flexibilität der Organisation.  

Neben der Risikominimierung kann auch die Effizienz in Software-Projekten erheblich verbessert werden. Studien und Erfahrungen belegen, dass die Produktivität zwischen Entwicklerteams bis zu Faktor 10-20 variiert.

Lernen von anderen: Schneller, billiger und besser produzieren

Um zu verstehen, wie hohe Produktivität erreicht wird, lohnt sich ein Blick über die IT hinaus. In reifen Branchen, wie der Automobilindustrie, haben Hersteller längst Mittel und Wege gefunden, sich in einem Umfeld intensiver Konkurrenz durch hohe Effizienz zu behaupten.  

In den Jahren 1950 bis 1990 konnte die japanische Automobilindustrie gegenüber der amerikanischen Konkurrenz um bis zu 50% geringere Kosten, kürzere Entwicklungs- und Produktionszeiten und gleichzeitig deutlich höhere Qualität vorweisen. Toyota ist es so gelungen etablierte Wettbewerber zu überholen und weltweit führender Hersteller zu werden. Die Prinzipien hinter diesem Erfolg lauten Lean Production und Kaizen. Ihre Überlegenheit ist mittlerweile in vielen Industriezweigen akzeptiert.

Ein Kernelement der Lean Production ist die konsequente Überprüfung und Optimierung aller Aktivitäten im Hinblick auf ihre Wertschöpfung und Effizienz. Alle Mitarbeiter sind in den Prozess der fortlaufenden Identifikation und konsequenten Beseitigung von Hindernissen eingebunden (Kaizen). Entwicklungs- und Produktionszyklen werden sukzessive verkürzt, die Flexibilität erhöht und die Qualität durch zeitnahes Feedback verbessert.

Lean Software Development

Die Prinzipien der Lean Production und des Kaizen lassen sich auf die Softwareentwicklung übertragen. Eine wertschöpfungsorientierte Analyse identifiziert in jedem Entwicklungsprojekt Aktivitäten, die ineffizient ausgeführt werden oder keinen Beitrag zum Ergebnis – Mehrwert im Geschäftsprozess des Kunden – leisten. Die Mitarbeiter des Entwicklungsteams werden befähigt, ihr Arbeitsumfeld fortlaufend zu verbessern. Häufige Integration, Iterationen, enge Kooperation mit dem Kunden, vertikale Verantwortlichkeiten und für alle sichtbare Kennzahlen erlauben es den Mitarbeitern, die Produktivität des Gesamtprojekts zu optimieren.

Beispiele für Produktivitätsverluste und ihre Beseitigung:

Problem

Verlust

Lösung

Testdaten werden vor jedem Test manuell zurückgesetzt.

Wertvolle Entwicklerzeit wird verschwendet. Zudem besteht ein erhöhtes Fehlerrisiko.

Automatisierte Aufbereitung der Testdaten.

Hintergrundlärm (z.B. läutende Telefone in Großraumbüros) stört Entwickler in ihrer Konzentration.

Wissenschaftliche Studien gehen von bis zu 25% geringerer Produktivität aus – dies entspricht im Jahr mindestens 15.000€ pro Mitarbeiter! Zudem sinkt die Zufriedenheit und der Krankenstand nimmt zu.

Maßnahmen zur Schallunterdrückung in Büros, Stummschaltung von Telefonen, Steigerung der Disziplin der Mitarbeiter.

Konzepte werden mit hohem Aufwand angefertigt, finden aber keine Verwendung in der weiteren Entwicklung.

Ein 100-seitiges Dokument erfordert eine Investition von mindestens 20.000€; diese wird verschwendet.

Dokumente durch Umsetzung des Pull-Prinzips nur in genau dem Umfang und Detailgrad produzieren, wie sie auch genutzt werden.

Fehler werden erst in einer nachgelagerten Testphase beseitigt.

Arbeiten, die auf die fehlerhafte Konzeption oder Realisierung aufbauen müssen zurückgenommen werden. Der investierte Aufwand ist verschwendet.

Zero-Defects-Policy – Konzentration auf Fehlervermeidung in der Entwicklung.

Redundanz in Dokumenten und Software (häufig 30%)

Wiederholte und überflüssige Komponeten vervielfachen den Aufwand für Konstruktion und Qualitätssicherung ohne einen Mehrwert einzubringen.

Sensibilisierung des Entwicklungsteams und Transparenz durch werkzeuggestützte Nachverfolgung.

Productivity Governance

Die erfolgreiche Einführung der Prinzipien des Lean Software Developments ist eine mittel- bis langfristige Führungsaufgabe und erfordert ein kontinuierliches Vorgehen. Die in jedem Verbesserungsschritt erzielten Gewinne tragen zur Entwicklung des Verständnis der Organisation bei und finanzieren die Folgeschritte. Durch die inkrementelle Verbesserung anhand überschaubarer Einzelmaßnahmen entsprechend dem Kaizen-Prinzip entstehen zu keinem Zeitpunkt Risiken für die laufende Produktion.

Ein Leitstand unterstützt die Productivity Governance

Nach der Einführung der Prinzipien des Lean Software Developments wandelt sich die Führungsaufgabe von Change-Management zu Governance. Die Basis für eine langfristig erfolgreiche Governance niedriger Produktionskosten, kurzer Time-to-System und hoher Produktqualtität ist die regelmäßige Messung von Prozess- und Produktmerkmalen.

itestra Research

itestra Services

Meta Navigation

Produktivität pragmatisch
messen und steigern

Vortrag von Dr. Markus Pizka

(TU München, 16. 10. 2008)