
Woran liegt es, dass manche Softwareprojekte erfolgreich sind, während andere scheitern? Die Antwort liegt oft darin, wie gut die Teams die Lean-Prinzipien im Rahmen des agilen Projektmanagements einbeziehen und umsetzen. Die Lean-Prinzipien, die ihre Wurzeln in der Fertigung haben und sich branchenübergreifend bewährt haben, bilden das Rückgrat der agilen Praktiken. Dieser Prinzipien übernehmen ist jedoch nicht so einfach. Dies erfordert nicht nur neue Tools oder Prozesse, sondern auch einen kulturellen Wandel, der für viele Unternehmen entmutigend sein kann. Wie lassen sich diese Prinzipien in praktikable Verfahren umsetzen, und welche Lehren können wir aus ihrer Anwendung in der Softwareentwicklung ziehen? Neugierig geworden? Dann lesen Sie weiter.
Agiles Projektmanagement basiert auf Lean-Prinzipien
Softwareprojekte werden heute meistens mit Hilfe des agilen Projektmanagements durchgeführt, das weitgehend auf Lean-Prinzipien beruht. Lean-Prinzipien sind seit Jahrzehnten bekannt und werden in vielen Organisationen und Branchen erfolgreich umgesetzt. Vielen Unternehmen ist es jedoch nicht gelungen, sie einheitlich anzuwenden, da der Lean-Gedanke einen Kulturwandel und Änderungen der organisatorischen Gewohnheiten erfordert, die ihre Möglichkeiten übersteigen können.
Von Lean-Prinzipien zu Praktiken
Prinzipien (Principles) sind weit gefasste, leitende Konzepte innerhalb einer Disziplin, während Praktiken (Practices) sich auf die spezifischen Tätigkeiten zur Umsetzung dieser Prinzipien beziehen. Prinzipien sind in verschiedenen Bereichen anwendbar, aber ihre Anwendung in bestimmten Kontexten kann eine Herausforderung darstellen. Praktiken bieten spezifische Anleitungen, müssen aber auf den jeweiligen Bereich zugeschnitten werden. Es gibt keine einzelne „Best“ Practice; vielmehr sollten die Praktiken an den jeweiligen Kontext angepasst werden. Probleme können entstehen, wenn man versucht, Praktiken von einer Disziplin auf eine andere zu übertragen, ohne die zugrunde liegenden Prinzipien zu berücksichtigen.
Lesen Sie mehr über agile Prinzipien und Praktiken
Softwareentwicklung ist eine breit gefächerte Disziplin, die verschiedene Ausprägungen hat. Sie umfasst z.B. die Entwicklung von Mobile Apps bis zu Software in der Satellitenentwicklung. Während Praktiken, die für einen Bereich spezifisch sind, möglicherweise nicht auf andere Bereiche anwendbar sind, können die Prinzipien breit angewendet werden, solange sie in geeignete Praktiken für den spezifischen Kontext übersetzt werden. Das agile Projektmanagement hat viele bekannte und akzeptierte Lean-Prinzipien übernommen und diese in spezifische agile Praktiken umgewandelt. Die folgenden sieben Lean-Prinzipien bieten eine gute Zusammenfassung und wurden von Mary Poppendieck1 beschrieben:
Sieben Lean-Prinzipien, die in spezifische agile Praktiken umgesetzt werden
Verschwendung eliminieren: (Eliminate Waste) Als Verschwendung wird alles bezeichnet, was aus Sicht des Kunden keinen Mehrwert für ein Produkt darstellt. Im Kontext des Lean-Thinking umfasst Verschwendung jede unnötige Komponente oder jeden unnötigen Prozess, der nicht dazu beiträgt, die Bedürfnisse des Kunden schnell zu befriedigen. Dazu gehören übermäßige Lagerbestände, unnötige Anforderungserfassung, überflüssige Funktionsentwicklung und unnötige Bewegungen oder Übergaben im Fertigungs- oder Entwicklungsprozess. Ziel ist es, effizient und zeitnah genau das zu liefern, was der Kunde wünscht.
Lernen fördern: (Amplify Learning) Im Entwicklungsprozess stehen Entdeckungen und Experimente im Vordergrund, die oft mit Versuch und Irrtum verbunden sind. Im Gegensatz dazu konzentriert man sich in der Produktion auf Konsistenz und die Reduzierung von Abweichungen. Ein schlanker Entwicklungsansatz umfasst Praktiken, die sich von denen in der schlanken Produktion unterscheiden. Softwareentwicklung ist eher mit der Erstellung eines Rezepts vergleichbar, während die Produktion der Zubereitung des Gerichts ähnelt. Um den Softwareentwicklungsprozess zu verbessern, ist es von entscheidender Bedeutung, das Lernen und Experimentieren zu verstärken.
So spät wie möglich entscheiden: (Decide as late as possible) In Situationen, die durch ein hohes Maß an Ungewissheit gekennzeichnet sind, können Entwicklungspraktiken, die eine späte Entscheidungsfindung ermöglichen, sehr effektiv sein. Solche Verfahren bieten einen optionsbasierten Ansatz, der es den Beteiligten ermöglicht, Entscheidungen zu verschieben, bis sie über mehr Informationen verfügen und bessere Vorhersagen treffen können. Es ist von Vorteil, Entscheidungen so lange aufzuschieben, bis sie auf Fakten statt auf Spekulationen beruhen. In einem sich schnell verändernden Markt ist es oft vorteilhafter, sich Gestaltungsoptionen offen zu halten, als sich frühzeitig festzulegen. Damit man sich bei der Entwicklung eines komplexen Systems erst spät festlegen muss, kann es hilfreich sein, Flexibilität und Veränderungsfähigkeit darin einzubauen..
So schnell wie möglich liefern: (Deliver as Fast as Possible) Die Bedeutung einer schnellen Softwareentwicklung wurde lange Zeit nicht erkannt und ein sorgfältiges, fehlerfreies Vorgehen wurde bevorzugt. Schnelle Entwicklung bietet jedoch zahlreiche Vorteile, z.B. ist es möglich Entscheidungen hinauszuzögern, zuverlässiges Feedback zu erhalten und durch kürzere Design-, Implementierungs- und Feedbackzyklen kontinuierlich zu lernen. Durch die Schnelligkeit erhalten die Kunden genau das, was sie brauchen, rechtzeitig und können Entscheidungen über ihre Anforderungen aufschieben, bis sie mehr Informationen haben. Reduzieren von Verschwendung im Value Stream durch schnelle Entwicklung ist eine Schlüsselstrategie des Lean-Thinking.
Teams befähigen: (Empower the Team) Für eine exzellente Ausführung ist es entscheidend, sich auf die Details zu konzentrieren und die Mitarbeitenden an der Front in die technische Entscheidungsfindung einzubeziehen. Die Mitarbeitenden verfügen über fundierte Kenntnisse ihrer spezifischen Aufgaben und sind besser als jeder andere in der Lage, fundierte technische und verfahrenstechnische Entscheidungen zu treffen.
In einer schlanken Umgebung, in der Entscheidungen erst spät getroffen werden und die Ausführung schnell erfolgt, kann eine zentrale Autorität die Arbeit aller Mitarbeitenden nicht effektiv koordinieren. Stattdessen nutzen Lean-Praktiken Pull-Techniken, um die Arbeit zu planen, und verlassen sich auf lokale Signalisierungsmechanismen wie sichtbare Diagramme, tägliche Besprechungen, häufige Integration und umfassende Tests, um Bedürfnisse und Fortschritte zu kommunizieren. Im Zusammenhang mit der Softwareentwicklung bedeutet der Pull-Mechanismus, dass in regelmäßigen Abständen zunehmend verfeinerte Versionen von Arbeitssoftware geliefert werden.
Integrität einbauen: (Build Integrity In) Integrität ist ein entscheidender Faktor, wie die Benutzer ein System wahrnehmen. Sie bezieht sich auf die Kohärenz der Kernkonzepte des Systems und seine langfristige Nützlichkeit. Software mit Integrität zeichnet sich durch eine klare Architektur aus, ist benutzerfreundlich, erfüllt effektiv ihren Zweck und kann leicht gewartet, angepasst und erweitert werden. Die Forschung zeigt, dass Integrität in einem System durch eine starke Führung, relevantes Fachwissen, effektive Kommunikation und gesunde Disziplin entsteht und nicht nur durch Prozesse und Verfahren. Der Marktanteil kann als grober Maßstab für die wahrgenommene Integrität eines Produkts im Laufe der Zeit dienen.
A system is perceived to have integrity when a user thinks, “Yes! That is exactly what I want. Somebody got inside my mind!” (Marry Poppendieck)
Das Ganze sehen: (See the Whole) Komplexe Systeme erfordern ein breites Spektrum an Fachwissen, um ihre Integrität zu wahren. Experten für bestimmte Bereiche, wie Datenbanken oder Benutzeroberflächen, können jedoch ihren eigenen Spezialgebieten Vorrang vor der Gesamtleistung des Systems einräumen, was zu einer Suboptimierung führt. Diese Tendenz kann entstehen, wenn Einzelpersonen oder Organisationen auf der Grundlage ihrer spezialisierten Beiträge und nicht auf der Grundlage der Gesamtleistung des Systems bewertet werden. Das Problem wird noch verschärft, wenn zwei Organisationen im Rahmen eines Vertrags zusammenarbeiten, da jeder Einzelne die Leistung seines eigenen Unternehmens über die des Gesamtsystems stellen kann. Suboptimierung verhindern kann in großen Organisationen eine besondere Herausforderung darstellen, vor allem, wenn Verträge im Spiel sind.
Die Lean-Prinzipien anwenden: Der Schlüssel zum agilen Erfolg
Die Lean-Prinzipien haben das agile Projektmanagement tiefgreifend beeinflusst und bieten einen Rahmen für Effizienz, Anpassungsfähigkeit und kontinuierliche Verbesserung. Teams können bessere Ergebnisse in ihren Softwareprojekten erzielen, wenn Sie sich fokussieren Verschwendung zu beseitigen, Lernprozesse zu fördern und schnell Value zu liefern. Lean Thinking einführen erfordert jedoch mehr als nur befolgen von Praktiken – es geht um einen Kulturwandel und das Engagement für Veränderungen. Richtig angewendet ermöglichen diese Prinzipien den Unternehmen, außergewöhnlichen Value zu liefern und gleichzeitig die Zusammenarbeit und Innovation zu fördern. Diesen Ansatzes umsetzen ist nicht nur eine Methode, sondern auch eine Denkweise (Mindset), die zu nachhaltigem Erfolg führt. Sind Sie bereit, diese Erkenntnisse in die Tat umzusetzen? Die Ergebnisse könnten Sie überraschen.
Lesen Sie mehr über agile Prinzipien und Praktiken
Hier gibt es noch mehr Wissen
Möchten Sie noch mehr erfahren, wie Sie Ihre Projekte mit agilem Projektmanagement und Scrum noch erfolgreicher machen? Mein Buch „Scrum – Agiles Projektmanagement und Scrum erfolgreich anwenden“ bringt Sie einen wichtigen Schritt weiter!
Kennen Sie jemanden, den dieser Artikel auch interessieren könnte? Dann leiten Sie ihn einfach weiter oder teilen ihn. Danke!
- Marry Poppendieck – Lean Software Development, An Agile Toolkit 2003 ↩︎