Wie bei der Konstruktion ein Bauplan verwendet und bei der Zubereitung einer Mahlzeit ein Rezept befolgt wird, so gibt es auch für die effiziente Software-Entwicklung Prinzipien, die befolgt werden müssen. Diese Grundsätze werden in der Regel als Softwareentwicklungsmethodik bezeichnet. Eine Softwareentwicklungsmethodik ist unerlässlich, da sie Verfahren enthält, die zum Erfolg eines Softwareentwicklungsprojekts führen.
Wenn man bei der Konstruktion nicht nach einem Plan vorgeht, sind die Ergebnisse katastrophal, und das gilt auch für die Entwicklung eines Softwareprodukts, wenn man nicht die richtigen Grundsätze befolgt. Sie werden viele entscheidende Schritte verpassen und schließlich eine Unzahl von Problemen mit der Softwarequalität haben. Als Projektmanager ist es wichtig zu wissen, dass es viele Ansätze für ein Softwareprojekt gibt, einschließlich der schlanken Entwicklungsmethodik, und dass eine richtig gewählte Softwareentwicklungsmethodik immer ein qualitativ hochwertiges Softwareprodukt hervorbringt.
Schlanke Softwareentwicklung
Die schlanke Entwicklungsmethodik ist ein agiler Ansatz, der auf den Grundsätzen der schlanken Produktion beruht. Lean Manufacturing umfasst äußerst erfolgreiche Prinzipien, die erstmals vom Toyota-Produktionssystem als Praxis zur Verwaltung und Optimierung des Prozesses der Fahrzeugproduktion verwendet wurden, um den Kundennutzen zu erhöhen und Verschwendung zu minimieren.
Wenn also Lean-Prinzipien mit der Fahrzeugherstellung zu tun haben, wo kommt dann die Softwareentwicklung ins Spiel? Wir wissen, dass die Fertigung und die Softwareentwicklung unterschiedlich sind – in der Fertigung werden physische Produkte hergestellt, während das Produkt der Softwareentwicklung immateriell ist und sein Wert nur in den Köpfen des Entwicklungsteams wahrgenommen und geschaffen werden kann.
Die Zuordnung zwischen schlanker Fertigung und schlanker Softwareentwicklung wurde erstmals 2003 in einem Buch mit dem Titel „Lean Software Development: An Agile Toolkit“ von Mary und Tom Poppendieck. In diesem Buch erläutern die Poppendiecks, wie die Prinzipien der schlanken Fertigung produktiv auf die Softwareentwicklung angewendet werden können. Sowohl die Fertigung als auch die Softwareentwicklung folgen wiederholbaren Verfahren und erfordern präzise Qualitätsstandards. Außerdem sind sie auf Teamarbeit angewiesen, um Ergebnisse zu erzielen. Daher können die sieben Lean-Manufacturing-Prinzipien auch in der Software-Entwicklung angewandt werden.
Sieben Lean-Prinzipien für die Software-Entwicklung
Da sie eine schnellere Entwicklung von Softwareprodukten ermöglichen, sind agile Entwicklungsansätze bei vielen Entwicklungsunternehmen beliebt. Solche Unternehmen setzen bereits Lean-Entwicklungsprinzipien ein. Hier sind die 7 Lean-Prinzipien, die Sie in Ihren Softwareentwicklungsprojekten anwenden können:
- Verschwendung eliminieren
Das erste Prinzip, das bei der schlanken Entwicklung zu beachten ist, besteht darin, alles zu eliminieren, was dem Endbenutzer keinen Wert bringt. Bei der Softwareentwicklung kann dieser Grundsatz umgesetzt werden, indem zunächst der Wert des zu entwickelnden Softwareprodukts ermittelt wird. Sobald dies geschehen ist, wird es einfacher, die „Verschwendung“ zu erkennen – alles, was dem Produkt und schließlich den Benutzern keinen Mehrwert bringt, wie z. B. unnötiger Code, unklare Anforderungen, zusätzliche Funktionen und Prozesse, usw. Andere Phasen der Methodik, die keinen Wert bringen, müssen ebenfalls entfernt werden. Es gibt Werkzeuge, die bei der Identifizierung von Verschwendung in der Softwareentwicklung helfen, z. B. Value Stream Mapping.
- Wissen schaffen
Die Softwareentwicklung an sich ist ein wissensgenerierender Prozess. Das Prinzip „Wissen schaffen“ ermutigt daher Entwicklungsteams, über die richtigen Strukturen zu verfügen, um ein angemessenes Lernen zu ermöglichen. Klingt einfach, aber das Prinzip erfordert volle Konzentration und Engagement. Es kann durch Schulungen, Code-Reviews, angemessene Code-Kommentare, Pair Programming, Projektdokumentation, gemeinsame Sitzungen und mehr umgesetzt werden.
- Build Quality In
Ein schlankes Entwicklungsteam sollte sicherstellen, dass sein Schwerpunkt auf der Entwicklung von Qualität im Produkt liegt. Sie sollten sich daher nicht auf die Vorstellung verlassen, ein fehlerfreies Endprodukt zu gewährleisten. Umgekehrt sollten die Teams den Entwicklungsprozess weiter verbessern und aufhören, von Anfang an Fehler im Produkt zu verteilen, um ein funktionales Endprodukt zu erhalten.
- Schnelle Lieferung
Agile Entwicklungstechniken konzentrieren sich darauf, Software so schnell wie möglich zu liefern. Lean Development als agiler Ansatz legt ebenfalls Wert auf eine schnelle Softwarelieferung. Das bedeutet, dass ein Projektteam eine bestimmte Komponente zum richtigen Zeitpunkt an die Benutzer liefern muss. Schaffen Sie für Ihr Team gleichmäßige und stabile Arbeitsabläufe, die sich aus dem Verständnis des Prozesswerts ergeben, um schnellere Ergebnisse zu ermöglichen.
- Stärken Sie Ihr Team
Die Stärkung Ihres Projektteams erfordert, dass Sie jeden Einzelnen respektieren – Menschen, die als Team zusammenarbeiten, sollten sich gegenseitig respektieren. Wenn etwas schief geht, und das wird meistens der Fall sein, geben Sie nicht anderen die Schuld. Suchen Sie stattdessen nach Lücken im Prozess, die zu Herausforderungen und Konflikten führen könnten. Schaffen Sie ein günstiges Arbeitsumfeld für alle und gehen Sie mit gutem Beispiel voran. Erlauben Sie den Teammitgliedern darüber hinaus innovative Freiräume, damit sie die richtigen Ansätze und Werkzeuge für die ihnen zugewiesenen Aufgaben wählen und identifizieren können.
- Entscheidungsverzögerung
Ich weiß, dass dies kontrovers klingt, da wir herkömmlicherweise dazu neigen, Entscheidungen so schnell wie möglich zu treffen. Der Lean-Grundsatz, spät zu entscheiden, bedeutet nicht, dass man unverantwortliche Entscheidungen trifft. Vielmehr ermutigt es ein Projektteam, sich Optionen für einen längeren Zeitraum offen zu halten, um mehr Daten und Informationen zu sammeln, die ihnen helfen können, wichtige Entscheidungen zu treffen. Wenn man eine Entscheidung hinauszögert, hat man mehr Zeit, um zu lernen und mehr Wissen zu erwerben, was zu noch besseren Entscheidungen führt. Infolgedessen erleidet Ihr Projekt keine negativen Auswirkungen, die sich aus einer schlechten Entscheidungsfindung ergeben könnten. Denken Sie darüber nach: Würden Sie lieber eine überstürzte Entscheidung treffen, die Sie später bereuen, oder sich Zeit nehmen, um Informationen zu sammeln und die richtige Entscheidung zu treffen?
- Optimieren Sie das Ganze
Sie sollten immer die Optimierung des gesamten Entwicklungsprozesses anstreben und nicht nur Teilprozesse. Wenn Sie nur einen oder wenige Prozesse optimieren, wirkt sich das auf das Endprodukt aus, und Ihre Ergebnisse sind suboptimal. Sie sollten kein minderwertiges Produkt auf den Markt bringen, nur weil Sie nicht genug Zeit hatten. Um der Suboptimierung entgegenzuwirken, ermutigt das Prinzip der Optimierung des Ganzen dazu, die teuflischen Entwicklungs- und Testzyklen abzuschaffen und stattdessen mit viel besseren Arbeitskapazitäten zu arbeiten. Die Optimierung des Ganzen ermöglicht die Identifizierung von Prozesswertströmen für ein komplettes Team, was eine schnellere und wertvolle Lieferung ermöglicht. Konzentrieren Sie sich also auf den gesamten Wertstrom von Anfang bis Ende, um eine Optimierung zu erreichen.