Wat is Lean Software Development?
Lean Software Development is een paradigma dat een theoretische ideale set van omstandigheden voor softwarecreatie beschrijft. Het is belangrijk om Lean Software Development te beschouwen als slechts een van de vele theorieën over softwareontwikkeling, elk met hun voor- en nadelen. Bij het gebruik van het Lean Software Development-model zijn er zeven cruciale punten om te begrijpen: verspilling elimineren, leren versterken, late besluitvorming, snelle levering, team empowerment, integriteitsopbouw en visualisatie van het geheel.
Afvalverspilling is zowel een tijd- als geldbesparende doelstelling. Door de hoeveelheid overtollige code en overbodige functies in Lean Software Development te verminderen, bespaart het software-ontwikkelingsteam geld en levert het strengere code aan de eindgebruiker. Programma's die met het Lean Software-model zijn gemaakt, zijn dus minder resource-intensief en meer gericht.
Leerversterking in Lean Software Development verwijst naar het concept van het gebruik van korte cycli tussen testfasen. In theorie zorgt dit voor meer constante feedback aan de ingenieurs, waardoor problemen eerder in de ontwikkelingsketen kunnen worden geïdentificeerd. De eindgebruikers worden in deze fasen opgenomen en zorgen ervoor dat de bètaversies van het programma aan hun behoeften voldoen.
Laattijdige besluitvorming zorgt voor extra flexibiliteit in het ontwerpschema, waardoor beslissingen alleen kunnen worden genomen als het maximale aantal feiten is verzameld. Bijvoorbeeld, voordat u begint met de ontwikkeling dat Programma X functies A, B en C moet hebben, lijkt dit een goed idee, totdat tests ter plaatse onthullen dat deze functies niet op tijd kunnen worden voltooid. In Lean Software Development zou de beslissing om A, B en C op te nemen worden uitgesteld tot het zeker was of het echt mogelijk was.
Snelle levering verwijst naar een voorkeur om de eindgebruiker zo snel mogelijk een werkend bètamodel te bieden - mogelijk wanneer het programma 85 tot 90 procent voltooid is - en dat model te blijven patchen en upgraden gedurende de levensduur van het programma. Dit staat in contrast met wachten tot het programma 100 procent voltooid is en het dan levert. In theorie stelt dit de eindgebruiker in staat meer leven uit het programma te persen, en geeft het ontwikkelingsteam extra feedback van de werkende bètamodellen.
Team empowerment betekent het team meer autonomie geven tijdens het programmeerproces. Als gevolg hiervan zullen ze in theorie meer geïnvesteerd worden in het project. Bovendien betekent dit dat ze toegang moeten krijgen tot de klanten, waardoor de verwachtingen beter worden afgestemd op de daadwerkelijke levering.
Ten slotte is het opbouwen van integriteit en het zien van het geheel gericht op het bekijken van het programma als een enkele eenheid. Vergelijk dit met andere systemen, die een programma zien als een patchworkcollectie van verschillende systemen. Deze 'grote afbeelding' manier van denken levert in theorie een completer product op, omdat het hele team op dezelfde pagina zit als het gaat om het eindproduct.