Was ist Lean Software Development?
Lean Software Development ist ein Paradigma, das einen theoretischen idealen Satz von Umständen für die Softwareerstellung beschreibt. Es ist wichtig, sich Lean Software Development als eine von vielen Theorien der Softwareentwicklung vorzustellen, von denen jede ihre Vor- und Nachteile hat. Bei der Verwendung des Lean Software Development-Modells sind sieben wichtige Punkte zu verstehen: Vermeidung von Verschwendung, Verbesserung des Lernprozesses, verspätete Entscheidungsfindung, schnelle Bereitstellung, Stärkung der Teamfähigkeit, Integritätsbildung und Visualisierung des Ganzen.
Abfallbeseitigung ist ein zeit- und geldsparendes Ziel. Durch die Reduzierung der Menge an überschüssigem Code und überflüssigen Funktionen in Lean Software Development spart das Software-Entwicklungsteam Geld und liefert dem Endbenutzer genaueren Code. Programme, die mit dem Lean Software-Modell erstellt wurden, sind daher weniger ressourcenintensiv und zielgerichteter.
Lernverstärkung in der Lean-Software-Entwicklung bezieht sich auf das Konzept der Verwendung kurzer Zyklen zwischen Testphasen. Theoretisch bietet dies den Ingenieuren eine konstantere Rückmeldung, sodass Probleme früher in der Entwicklungskette erkannt werden können. Die Endbenutzer werden in diese Phasen einbezogen, um sicherzustellen, dass die Beta-Versionen des Programms ihren Anforderungen entsprechen.
Eine verspätete Entscheidungsfindung ermöglicht zusätzliche Flexibilität im Entwurfsplan, sodass Entscheidungen erst dann getroffen werden können, wenn die maximale Anzahl von Fakten erfasst wurde. Die Entscheidung, dass in Programm X die Funktionen A, B und C enthalten sein sollen, vor Beginn der Entwicklung scheint beispielsweise eine gute Idee zu sein, bis Tests vor Ort ergeben, dass diese Funktionen nicht rechtzeitig fertiggestellt werden können. In der Lean Software-Entwicklung würde sich die Entscheidung, A, B und C aufzunehmen, so lange verzögern, bis feststeht, ob dies tatsächlich möglich ist.
Schnelle Bereitstellung bezieht sich auf die Präferenz, dem Endbenutzer so schnell wie möglich ein funktionierendes Betamodell zur Verfügung zu stellen - möglicherweise, wenn das Programm zu 85 bis 90 Prozent abgeschlossen ist - und dieses Modell über die Laufzeit des Programms weiter zu patchen und zu aktualisieren. Dies steht im Gegensatz zu dem Warten, bis das Programm zu 100 Prozent vollständig ist und es dann liefert. Theoretisch ermöglicht dies dem Endbenutzer, mehr Leben aus dem Programm herauszuholen und dem Entwicklungsteam zusätzliches Feedback von den funktionierenden Betamodellen zu geben.
Team Empowerment bedeutet, dem Team während des Programmierprozesses mehr Autonomie zu geben. Infolgedessen werden sie theoretisch stärker in das Projekt investiert. Darüber hinaus bedeutet dies, dass sie Zugang zu den Kunden erhalten und die Erwartungen besser an die tatsächliche Lieferung anpassen können.
Schließlich konzentriert sich die Integritätsbildung und das Sehen des Ganzen darauf, das Programm als eine einzige Einheit zu betrachten. Vergleichen Sie dies mit anderen Systemen, die ein Programm als Patchwork-Sammlung verschiedener Systeme betrachten. Diese Art des "Gesamtüberblicks" liefert theoretisch ein vollständigeres Produkt, da das gesamte Team in Bezug auf das fertige Produkt auf einer Seite ist.