Effizienzoptimierung und Kostenminimierung sind zwei wichtige Bestandteile des Lean-Ansatzes in der Softwareentwicklung, der bereits von vielen IT-Unternehmen in der Praxis erprobt wurde.
Die Wurzeln dieses Ansatzes gehen auf die Geschichte des bekannten Automobilherstellers Toyota zurück und basieren auf dessen Problemlösungsansätzen. Unterm Strich geht es darum, nur die Änderungen vorzunehmen, die von Nutzen sind, gleichzeitig aber möglichst wenig Kosten verursachen und nicht zu viel Zeit in Anspruch nehmen.
In Bezug auf die Softwareentwicklung wurde die Lean-Methodik erstmals von Mary Poppendieck und Tom Poppendieck behandelt, die 2003 das Buch “Lean Software Development” veröffentlichten. Es beschreibt die traditionellen Prinzipien der schlanken Produktion in Bezug auf die Softwareentwicklung sowie eine Reihe von 22 Werkzeugen (Praktiken) und deren Vergleich mit der agilen Entwicklungsmethodik.
Lean Software Development – ist keine Methodik für das Projektentwicklungsmanagement, wie es auf den ersten Blick scheinen mag. Es handelt sich um eine Reihe von Grundsätzen, die in verschiedenen Projekten eingesetzt werden, um den Entwicklungsprozess zu verbessern und seine Effektivität zu erhöhen.
Die 7 Grundsätze der schlanken Softwareentwicklung
Im Kern der schlanken Entwicklung stehen eine Reihe wichtiger Grundsätze, die in den letzten Jahren praktisch unverändert geblieben sind. Lassen Sie uns versuchen, sie in kurzen und einfachen Worten zu erklären.
1. Eliminieren Sie Verschwendung. In der App-Entwicklung ist Verschwendung alles, was dem Kunden keinen geschäftlichen Nutzen bringt, die Qualität des entwickelten Produkts nicht verbessert und die Projektlaufzeit nicht beschleunigt.
Mit anderen Worten: Das ist das, wofür wir Geld ausgeben und keinen Gewinn erzielen. Zum Beispiel ungenutzter Code und unnötige Funktionen, die weder dem Benutzer noch dem Unternehmen einen zusätzlichen Nutzen bringen, aber Zeit für Diskussion, Entwicklung, Tests und Dokumentation erfordern.
2. Lernen verstärken. Damit das Team ein System entwickeln kann, das dem Kunden einen geschäftlichen Nutzen bringt, muss es über ein breites Spektrum an Fähigkeiten verfügen. Das Team muss Wissen ansammeln und es weitergeben, z. B. in Form eines Reviews am Ende der Iteration.
Ein Teil des neuen Wissens wird technisch sein, andere hingegen werden als nicht-funktionale Anforderungen eingestuft. Zum Beispiel ein Verständnis dafür zu haben, was ein Geschäftsanwender wirklich will, und nicht, was sich die Entwickler vorstellen. Daher muss sich das Team ständig weiterentwickeln, lernen und Wissen anhäufen. Dies ermöglicht es dem Team, Probleme in der Zukunft zu vermeiden.
3. So spät wie möglich entscheiden. Der Hauptgedanke hierbei ist, bis zum letzten Moment zu warten, bevor man eine Entscheidung trifft, insbesondere eine unumkehrbare. Dies gilt insbesondere, wenn es sich um Entscheidungen handelt, die erhebliche Auswirkungen auf den Erfolg der Entwicklung haben können.
Alle Entscheidungen müssen durch analytische Daten und Prozessüberwachungsergebnisse gestützt werden, da das Team sonst Gefahr läuft, sich in zu vielen Änderungen zu verlieren und den Hauptzweck des Projekts zu vergessen.
Je später Sie eine Entscheidung treffen, desto mehr Fähigkeiten und Verständnis haben Sie, und desto weniger müssen Sie später wiederholen.
4. So schnell wie möglich liefern. Dies ist die Grundlage der iterativen Entwicklung. Je schneller Sie dem Kunden Ihre Vorarbeit zeigen, desto eher bekommen Sie sein Feedback, und desto eher erhält er das Produkt mit den notwendigen Verbesserungen.
Eine interessante Geschäftsfunktion, die in ein paar Monaten in Produktion ging, kann sich am Ende als völlig nutzlos erweisen. Wurde sie jedoch innerhalb von zwei Wochen freigegeben, kann sie sich für den Kunden als nützlich erweisen.
5. Befähigen Sie das Team. Software-Entwicklung ist ein Prozess der geistigen Arbeit, daher sollten die Mitarbeiter als kompetente, motivierte Fachleute behandelt werden und nicht als Fachleute mit begrenzten Fähigkeiten im Schreiben von Code oder Zeichnen von Diagrammen.
Damit die Mitarbeiter Verantwortung übernehmen, motiviert sind und als solides Team arbeiten können, sollten sie sich ihres Beitrags zu dem zu entwickelnden Produkt bewusst sein. Es ist notwendig, Bedingungen zu schaffen, unter denen sich jeder auf die aktuelle Aufgabe konzentrieren kann.
Vertrauen Sie Ihrem Team und respektieren Sie es. Der menschliche Faktor ist eines der wichtigsten Elemente für eine erfolgreiche Softwareentwicklung.
6. Integrität einbauen. Nach den Grundsätzen der schlanken Entwicklung kann ein Problem entweder erst nach seinem Auftreten gefunden werden, oder Sie können die Ursachen, die zu einem Problem führen, im Voraus beseitigen.
Die Autoren von Lean Software Development schlagen vor, das Qualitätsproblem direkt zu lösen, wenn es zum ersten Mal auftritt – zunächst, indem Sie die Qualität in das Produkt einbauen und die Identifizierung und Behebung von Fehlern nicht dem Testen oder der Produktion überlassen. Dazu lohnt es sich, in kleinen Schritten vorzugehen und die Qualität nach jedem Schritt zu überprüfen.
7. Das Ganze sehen.
Die Hauptmethode zur Lösung von Problemen besteht darin, sie in kleinere Probleme zu zerlegen und konsequent die Ursachen für ihr Auftreten zu beseitigen. Doch um die Wurzel des Problems zu sehen, sollte das Team ein gutes Gesamtverständnis des aktuellen Entwicklungsprozesses, des Konzepts und der Strategie des zu entwickelnden Produkts haben.
Zusammenfassung
In diesem Artikel erfahren Sie etwas über die Prinzipien der schlanken Softwareentwicklung, die Sie bei der Arbeit an Projekten in Ihrem Team anwenden können. Es kann gut sein, dass Sie dadurch die Effizienz steigern und Prozesse optimieren können.
Es ist wichtig zu verstehen, dass es sich um Prinzipien und nicht um strikte Regeln handelt. Daher muss man sich etwas Mühe geben, um sie effektiv an die Besonderheiten Ihres Projekts anzupassen.
Wollen Sie ein Projekt starten?
Unser Team ist bereit, Ihre Ideen umzusetzen. Kontaktieren Sie uns jetzt, um Ihren Fahrplan zu besprechen!