Lean Software Development

Lean Software Development - Toolshero

Lean Software Development: in dit artikel wordt Lean Software Development (LSD) praktisch uitgelegd. Na het lezen begrijp je de basis van deze krachtige tool voor informatietechnologie.

Wat is Lean Software Development?

Lean Software Development is een softwareontwikkelingsmethode die gebaseerd is op de principes van Lean Manufacturing. De methode is in opkomst binnen de softwarebranche met steun van een pro-lean subcultuur binnen de agile gemeenschap.

Het flexibele raamwerk is gericht op het optimaliseren van ontwikkeltijden en middelen, het elimineren van verspilling en leveren wat het product nodig heeft. Deze Lean-aanpak wordt geregeld Minimum Viable Product genoemd.

Lean Software Development definitie oorsprong

De term Lean Software Development werd geïntroduceerd door Mary Poppendieck en Tom Poppendieck, in hun gelijknamige boek uit 2003. Het boek gaat in op de traditionele Lean-principes, evenals een verzameling van 22 tools die vergeleken worden met bijbehorende agile-activiteiten. De betrokkenheid van de auteurs met de agile-gemeenschap heeft ertoe geleid dat het concept vaker wordt geaccepteerd.

Lean is gebaseerd op het Toyota Production System. Autofabrikant Toyota vond aan het einde van vorige eeuw een manier om auto’s op een gestroomlijnde manier te produceren. Elke actie die niet bijdroeg aan het productieproces werd verwijderd, waardoor verspilde tijd en middelen tot de verleden tijd behoorde.

Uiteindelijk werd het concept aangenomen in veel andere sectoren en organisaties en werd het bekend als Lean. De methode werd voor het gelinkt aan softwareontwikkeling in het boek uit 2007.

Lean Software Development principes

Lean Software Development is gebaseerd op dezelfde principes als Lean:

  1. Elimineer waste
  2. Ingebouwde integriteit
  3. Versterk leren en kennisdeling
  4. Houd opties open
  5. Team empowerment
  6. Optimalisatiegericht
  7. Snelle levertijden

De Lean-principes in relatie tot Lean Software Development (LSD) worden hieronder toegelicht.

Lean Software Development principes - Toolshero

Elimineer waste

De Poppendiecks vonden net als de mensen bij Toyota dat verspilling en afval de grootste boosdoeners zijn in welk productieproces dan ook. Om deze reden besloten zij het tevens het eerste principe te maken voor hun Lean Software Development model. Afvalvermindering definieert direct het hele doel van Lean.

In softwareontwikkeling benadelen de volgende soorten verspilling de efficiëntie van het ontwikkelproces:

  • Te veel taken in het logboek
  • Onnodige codes en functies
  • Vertragingen
  • Vage ontwikkelingseisen (software requirements)
  • Kwaliteitsproblemen
  • Onnodige bureaucratie
  • Duplicatie (code/gegevens)

Na elke iteratie worden vergaderingen gehouden door projectmanagers om de voortgang te bespreken. Teamleden rapporteren de status van het project en geven knelpunten aan. Ook doen ze suggesties voor de wijzigingen die nodig zijn om de volgende iteratie optimaal te laten verlopen.

Ingebouwde integriteit

Lean streeft ernaar om issues te voorkomen, in plaats van er mee om te gaan wanneer ze zich voordoen. Op alle mogelijke gebieden is effectief kwaliteitsbeheer leidend in het gehele proces. Een goede manier om dit te doen is door kleine iteraties uit te voeren.

Elke actie wordt dan onmiddellijk gevolgd door een beoordeling. De tijd tussen verschillende fasen wordt zoveel mogelijk beperkt en afwegingen worden regelmatig besproken op een flexibele manier.

Een voorbeeld van dit principe in de softwareontwikkeling is Pair Programming, waarbij 2 ontwikkelaars werken aan een taak. Zij zijn dankzij hun ervaring goed in staat om effectieve oplossingen te bedenken en kunnen samen meer kwaliteit bieden dan alleen.

Versterk leren en kennisdeling

Lean Software Development is ontstaan vanuit Lean Manufacturing, waarin het doel was om een vereenvoudigde pijplijnproductie te ontwikkelen waarvoor geen uitgebreide kennis nodig was. In softwareontwikkeling stond leren echter nooit centraal.

Met Lean Software Development reflecteren ontwikkelaars direct op stukjes code en nemen vervolgens alle lessen op die zij uit het proces getrokken hebben. Om ervoor te zorgen dat niet 1 ontwikkelaar alle best practices leert, wordt Pair Programming toegepast.

Houd opties open

Het komt wel eens voor dat een applicatie of systeem volledig ongeschikt blijkt voor een markt bij de lancering ervan. Dit kan verschillende oorzaken hebben, maar een daarvan is dat de markt constant verandert en nieuwe behoeften krijgt.

De Lean-toepassing binnen softwareontwikkeling erkent dit gevaar. Het schrijft daarom voor om altijd ruimte te laten voor veranderingen door onomkeerbare beslissingen uit te stellen totdat alle kennis is verzameld om vast te stellen dat het product nog steeds relevant is.

Het doel van de methode is om softwareontwikkeling flexibel te maken, zodat ontwikkelaars altijd kunnen handelen met de nieuwste kennis zonder eerder uitgevoerde handelingen ongedaan te maken. Het belang van dit principe dient niet onderschat te worden, aangezien alle projecten met onzekerheid te maken hebben.

Team empowerment

In plaats van medewerkers constant te controleren, is Lean Software Development gericht op de empowerment van teamleden en respect. Ontwikkelaars krijgen de vrijheid om belangrijke beslissingen te nemen op basis van de kennis die zij hebben tijdens het schrijven van de code en hun persoonlijke oordeel over een situatie of product.

Empowerment van het team draagt bij aan de flexibiliteit van het team en zorgt ervoor dat veranderingen sneller kunnen worden toegepast dan in een werkomgeving die nauwlettend in de gaten wordt gehouden.

Snelle levertijden

In het ontwikkelingsproces van software stapelen defecten zich soms op. Door grote taken op te splitsen in kleinere taken, is het makkelijker om de oorzaken van deze defecten te identificeren en weg te nemen.

Hoe groter het systeem, hoe meer mensen erbij betrokken zijn en hoe meer onderdelen door meerdere teams worden ontwikkeld.

Daarom is het belangrijk om goed gedefinieerde relaties binnen het productieproces te hebben. Componenten van een systeem moeten soepel en vlekkeloos op elkaar kunnen inwerken.

Optimaliseren van het geheel

Volgens de auteurs van Lean Software Development, Tom en Mary Poppendieck wordt nog steeds te vaak geoptimaliseerd op microniveau. Dit is zeer onproductief.

Wil je onbeperkte en advertentievrije toegang?   

Managers kiezen ervoor om elk probleem te verdelen in meerdere samenhangende delen die vervolgens door verschillende teams opgelost moeten worden zonder de systemen zelf te optimaliseren.

Lean Software Development staat daarom voor het optimaliseren van het hele systeem.

Lean Software Development metrics

Lean-statistieken meten de prestaties van een systeem en worden gebruikt om een holistisch beeld te geven van de algehele status van een systeem.

De basisstatistieken voor agile en lean-processen zijn doorlooptijd, cyclustijd, teamsnelheid en open/close-ratio’s. Enkele van de meest bekende metrics worden hieronder kort toegelicht. De waardes helpen bij het nemen van beslissingen over procesverbeteringen en de planning.

Doorlooptijd (lead time)

De statistiek doorlooptijd geeft aan hoe lang het duurt voordat een taak is volbracht vanaf het moment dat deze aangevraagd wordt. Het wordt ook wel gebruikt om de tijd aan te geven die nodig is van idee naar geleverde producten.

Als een team sneller wil reageren op de behoeften van klanten, is het belangrijk dat de lead time verkort wordt. Dat wordt bijvoorbeeld bereikt door het besluitvormingsproces te vereenvoudigen.

Lead time is inclusief de onderstaande cyclustijd.

Cyclustijd (cycle time)

De cyclustijd geeft aan hoe lang het duurt om een wijziging in het softwaresysteem aan te brengen en de wijziging door te voeren in het productieproces.

Teams die werken in korte iteraties volgens Lean- en agile-principes, kunnen cyclustijden terugbrengen naar minuten in plaats van maanden.

Teamsnelheid (team velocity)

De teamsnelheid geeft weer hoeveel werk een team voltooit in een enkele iteratie. Dit getal wordt gebruikt om te plannen, niet om de prestaties van een team te meten.

Snelheid is een ongepaste manier om succes te meten omdat het dikwijls kwaliteit in de weg staat.

Open / close-ratio’s

Open / close-ratio’s geven weer hoeveel productieproblemen gemeld worden en hoeveel er direct weer gesloten worden. De trend op de lange termijn is hierbij belangrijker dan de cijfers over een korte periode.

Sammenvatting

Lean Software Development is ontwikkeld vanuit het gedachtengoed van Lean Manufacturing, ontstaan uit het Toyota Production System na adoptatie in het bedrijfsleven en daarbuiten. Lean Software Development werd geïntroduceerd in het gelijknamige boek van Tom en Mary Poppendieck.

De methode kent dezelfde 7 principes als Lean Manufacturing. Het elimineren van afval en verspilling is daarvan de belangrijkste.

Daarnaast is het belangrijk om een systeem te bouwen waarin problemen op een flexibele manier en snel worden aangepakt.

Het derde principe gaat over het creëren van delen van kennis, iets dat te weinig wordt gedaan in de softwareontwikkeling, volgens auteurs Tom en Mary.

Principe vier weerspiegelt de flexibiliteit van agile: het openhouden van opties. Door onomkeerbare beslissingen zolang mogelijk uit te stellen, blijft het mogelijk om veranderingen door te voeren die het product relevant houden.

Team empowerment wordt gekozen boven team controle in deze Lean-benadering voor softwareontwikkeling. De ontwikkelaars moeten hun ding kunnen doen in korte iteraties en ontwikkelingen direct bespreken met collega-ontwikkelaars of hun projectmanager.

Het zesde principe gaat over de levertijden. Door grote taken op te splitsen in kleine stukjes, wordt het makkelijker om de oorzaken van problemen te identificeren, wat het weer beter mogelijk maakt om producten snel op te leveren.

Principe 7 vertelt de ontwikkelaar om minder te focussen op optimalisaties op microniveau.

  Ontvang gratis ons Toolshero Top 30 modellenboek   

Nu is het jouw beurt

Wat denk jij? Herken jij de uitleg over Lean Software Development? Wordt deze methode toegepast in jouw werkomgeving? Vind jij de principes van Lean Manufacturing passen bij softwareontwikkeling? Denk jij dat de methode verbeterd kan worden door andere technieken toe te voegen?

Deel jouw kennis en ervaring via het commentaar veld onderaan dit artikel.

Meer informatie

  1. Poppendieck, M. (2007). Lean software development. In 29th International Conference on Software Engineering (ICSE’07 Companion) (pp. 165-166). IEEE.
  2. Poppendieck, M., & Cusumano, M. A. (2012). Lean software development: A tutorial. IEEE software, 29(5), 26-32.
  3. Ebert, C., Abrahamsson, P., & Oza, N. (2012). Lean software development. IEEE Computer Architecture Letters, 29(05), 22-25.
  4. Poppendieck, M., & Poppendieck, T. (2003). Lean software development: an agile toolkit. Addison-Wesley.

Citatie voor dit artikel:
Janse, B. (2022). Lean Software Development (LSD). Retrieved [insert date] from Toolshero: https://www.toolshero.nl/informatie-technologie/lean-software-development/

Published on: 14/03/2022 | Last update: 14/03/2022

Wilt u linken naar dit artikel, dat kan!
<a href=”https://www.toolshero.nl/informatie-technologie/lean-software-development/”>Toolshero: Lean Software Development (LSD)</a>

Interessant artikel?

Geef je waardering of deel het artikel via social media!

Gemiddelde beoordeling 4 / 5. Totaal aantal beoordelingen: 4

Dit artikel is nog niet beoordeeld! Wees de eerste met jouw beoordeling.

We vinden het jammer dat het artikel niet waardevol voor je was

Laat ons dit artikel verbeteren!

Vertel ons wat er beter kan aan het artikel? Wat mis je bijvoooebeeld of wat kan worden aangevuld?

Word lid en ontvang onbeperkt toegang

Als lid heb je onbeperkt toegang tot alle artikelen (1000+), templates en meer!

Geef een antwoord