Efficiency optimalisatie en het minimaliseren van de kosten zijn twee belangrijke componenten van de lean aanpak van software-ontwikkeling, die al door veel IT-bedrijven in de praktijk is getest.
De wortels van deze aanpak gaan terug naar de geschiedenis van de bekende autofabrikant Toyota, en zijn gebaseerd op zijn probleemoplossende benaderingen. Het komt erop neer dat alleen die veranderingen worden doorgevoerd die voordelig zijn en tegelijkertijd minimale kosten en niet te veel tijd vergen om te worden doorgevoerd.
In relatie tot softwareontwikkeling werd de Lean-methodologie voor het eerst behandeld door Mary Poppendieck en Tom Poppendieck, die in 2003 het boek “Lean Software Development” publiceerden. Het beschrijft de traditionele principes van lean productie in relatie tot software-ontwikkeling, evenals een set van 22 tools (praktijken) en hun vergelijking met agile ontwikkeling methodologie.
Lean Software Development – is geen methodologie voor projectontwikkeling management, zoals het misschien lijkt op het eerste gezicht te zijn. Het is een set van principes die in verschillende projecten wordt gebruikt om het ontwikkelproces te verbeteren en de effectiviteit ervan te vergroten.
De 7 principes van Lean Software Development
Aan de basis van lean development ligt een aantal belangrijke principes die de afgelopen jaren vrijwel onveranderd zijn gebleven. Laten we proberen ze in korte en eenvoudige bewoordingen uit te leggen.
1. Elimineer verspilling. In app-ontwikkeling is verspilling alles wat geen zakelijke waarde voor de klant oplevert, en de kwaliteit van het product dat wordt ontwikkeld niet verbetert of de releasetijd van het project versnelt.
Met andere woorden, dit is waar we geld aan uitgeven en geen winst uit halen. Bijvoorbeeld, ongebruikte code en onnodige functies die geen extra waarde brengen voor zowel de gebruiker als het bedrijf, maar tijd vergen voor discussie, ontwikkeling, testen en documentatie.
2. Versterk Leren. Opdat het team een systeem kan ontwikkelen dat aan de klant waarde zal toevoegen, moet het over een brede waaier van vaardigheden beschikken. Het team moet kennis vergaren en delen, bijvoorbeeld in de vorm van een evaluatie aan het einde van de iteratie.
Sommige van de nieuwe leerervaringen zullen technisch zijn, en andere daarentegen worden geclassificeerd als niet-functionele eisen. Bijvoorbeeld, het hebben van een begrip van wat een zakelijke gebruiker echt wil, en niet wat ontwikkelaars zich voorstellen. Daarom moet het team voortdurend ontwikkelen, leren en kennis vergaren. Hierdoor kan het team problemen in de toekomst vermijden.
3. Beslis zo laat mogelijk. Het belangrijkste idee hier is te wachten tot het laatste moment alvorens een beslissing te nemen, vooral onomkeerbare beslissingen. Dit geldt vooral wanneer het gaat om beslissingen die van grote invloed kunnen zijn op het succes van de ontwikkeling.
Alle beslissingen moeten worden ondersteund door analytische gegevens en resultaten van procesbewaking, anders loopt het team het risico te worden geabsorbeerd door te veel veranderingen en kan het hoofddoel van het project uit het oog worden verloren.
Hoe later je een beslissing neemt, hoe meer vaardigheden en begrip je hebt, en hoe minder je later opnieuw hoeft te doen.
4. Lever zo snel mogelijk op. Dit is de basis van iteratieve ontwikkeling. Hoe sneller je je grondwerk aan de klant laat zien, hoe eerder je zijn feedback krijgt, en dus zal hij het product met de nodige verbeteringen veel eerder ontvangen.
Een interessante bedrijfsfunctie die in een paar maanden in productie is gegaan, kan uiteindelijk volkomen nutteloos blijken te zijn. Maar als het binnen twee weken werd vrijgegeven, zou het voordelig voor de klant kunnen blijken.
5. Versterk het team. Softwareontwikkeling is een proces van mentaal werk, dus behandel mensen als competente, gemotiveerde professionals, in plaats van professionals met beperkte vaardigheden in het schrijven van code of het tekenen van diagrammen.
Om mensen verantwoordelijkheid te laten nemen, gemotiveerd te laten zijn en als een hecht team te laten werken, moeten zij zich bewust zijn van hun bijdrage aan het product dat wordt ontwikkeld. Het is noodzakelijk voorwaarden te scheppen waarin elke persoon geconcentreerd kan werken aan de huidige bedrijfstaak.
Trouw uw team en respecteer het. De menselijke factor is een van de belangrijkste elementen in succesvolle software ontwikkeling.
6. Bouw integriteit in. Volgens de principes van lean development, kan een probleem ofwel worden gevonden na het verschijnen ervan, of u kunt de oorzaken die leiden tot een probleem op voorhand elimineren.
De auteurs van Lean Software Development suggereren dat u het kwaliteitsprobleem direct oplost wanneer het voor het eerst begint te verschijnen – in eerste instantie door de kwaliteit in het product te stoppen, en niet het identificeren en repareren van bugs over te laten aan testen of productie. Hiervoor is het de moeite waard om in kleine stapjes te werk te gaan en na elke stap de kwaliteit te controleren.
7. Zie het Geheel.
De belangrijkste manier om problemen op te lossen is om ze op te splitsen in kleinere problemen en consequent de oorzaken van het ontstaan ervan weg te nemen. Maar om de wortel van het probleem te kunnen zien, moet het team een goed algemeen begrip hebben van het huidige ontwikkelingsproces, het concept en de strategie van het product dat wordt ontwikkeld.
Samenvatting
In dit artikel leest u over de principes van Lean Software Development, die u kunt toepassen wanneer u in uw team aan projecten werkt. Wellicht kunt u hiermee de efficiency verbeteren en processen optimaliseren.
Het is noodzakelijk om te begrijpen dat we het hebben over principes, en niet over strikte regels. Daarom moet men enige moeite doen om ze effectief aan te passen aan de specifieke kenmerken van uw project.
Wilt u een project starten?
Ons team staat klaar om uw ideeën uit te voeren. Neem nu contact met ons op om uw stappenplan te bespreken!