#leansoftwaredevelopment

Alles wat je moet weten over Lean Software Development

Julia van Toor

 - 

De introductie van Lean Software Development is een logische stap na het succes van Agile en SCRUM. Lean Software Development staat voor een effectieve software ontwikkeling met zo min mogelijk waste.

ford model t assembly line

1. Wat is Lean Software Development?

Wat is Lean?

Lean gaat om het elimineren van Waste: alle vormen van verspilling in de 'productielijnen' van je organisatie. Bewust zijn van waar onnodig werk wordt verricht, inzichtelijk maken waar werk zich ophoopt of waar werk wacht op de volgende stap in het proces.

Het draait om focus op de essentie van zinvol werk. Om respect voor elkaar, een gezonde drang naar hoge kwaliteit en gaan voor de beste oplossingen voor de lange termijn.

Je kunt "Lean" zien als een mindset. Om steeds scherp te zijn op welke werkzaamheden écht bijdragen aan je doelen. Balans te vinden in de stroom van binnenkomend werk naar waarde voor je klanten en gebruikers. Mensen die duurzaam productief zijn in plaats van opbranden.

Wat is Lean Software Development?

Lean is ontstaan in de productie industrie. De principes van Lean zijn echter met een aantal aanpassingen ook uitstekend toepasbaar op software ontwikkeling. Hier zien we ook veel "waste" om aan te pakken, denk bijvoorbeeld aan:

software functies waaraan al wel gewerkt is, maar die niet af zijn voor release

lang wachten op reviews van ontwikkelwerk, waardoor features onnodig lang 'op de plank' liggen voordat je klant ermee aan de slag kan

features in applicaties die nauwelijk worden gebruikt: uit onderzoek blijkt dat zo'n 2 van de 3 van de functies weinig tot geen klantwaarde heeft!

De 7 principes

Naast de principe van het Elimineren van Waste kent Lean Software Development nog meer principes. De principes van Lean Software Development op een rijtje.

  1. Eliminate Waste
  2. Build Quality In
  3. Create Knowledge
  4. Decide as late as possible
  5. Deliver Fast
  6. Respect People
  7. Optimize the Whole

Handige downloadable over Lean Software Development?

Download de whitepaper!

Download nu »
lean software development whitepaper

2. Waarom starten met Lean Software Development, als we al Agile werken?

Waarom starten met Lean Software Development?

Tegenwoordig is Agile en SCRUM niet weg te denken uit software ontwikkeling. Maar met Lean Software Development kijken we breder dan 'alleen' werkende software bouwen. We richten ons op de totale waardestroom van concept naar cash: van business-idee naar gerealiseerde klantwaarde.

Door de huidige waardestroom inzichtelijk te maken in een Value Stream Map kom je achter waar in het proces waste plaatsvindt. Door dit visueel te maken, zorgt dit vaak voor eye openers en duidelijke 'pijnpunten' in het software ontwikkelproces.

Vaak zien we dat met relatief simpele maatregelen veel winst kan worden geboekt, letterlijk en figuurlijk.

Lean VS Agile

Maar wat zijn dan precies de verschillen tussen Lean en Agile? Allereerst zit er een groot verschil in herkomst. Lean komt uit de productie industrie en Agile komt uit de software industrie.

Ten tweede gaat Lean uit van een tamelijk stabiele omgeving waarin de klant exact weet wat hij wil en de organisatie precies weet hoe het geproduceerd moet worden. Agile anticipeert daarentegen op verandering. Er wordt namelijk vanuit gegaan dat de klant nog niet precies weet wat hij wil en dat de organisatie ook nog niet precies weet hoe dit geproduceerd moet worden. Daarnaast wordt er rekening gehouden met dat er vanalles kan veranderen in de tussentijd.

Ten derde verschillen Lean en Agile in focus. Lean focust zich op procesefficiëntie en automatisering. Agile daarentegen focust zich op flexibiliteit en stelt de mens en interactie boven processen en tools.

Overeenkomsten Lean en Agile

Ondanks de verschillen tussen Lean en Agile kennen beiden methodes ook een aantal overeenkomsten. Zo stellen zowel Lean als Agile de klant centraal. Ze stellen beiden de vraag: wat is waardevolle software in de ogen van de klant? Een proces heeft daarna pas bestaansrecht.

Een tweede overeenkomst is dat beiden methodes het creëren van een flow als een belangrijk onderdeel zien. Wat inhoudt: regelmatig nieuwe software opleveren in plaats van eens in de zoveel tijd een grote lancering.

Een derde overeenkomst is dat beiden methodes zich richten op het voortdurend streven naar verbetering en het bevorderen van een ‘constante’ ontwikkeling.

Lean & Agile combineren

Ondanks de verschillen tussen Lean en Agile kunnen beide methodes goed gecombineerd worden. Hoe ziet dat er precies uit?

Werken volgens Lean & Agile is starten met de klantwens. De volgende stap om een Value Stream Map op te stellen. Met Value Stream Map kun je erachter komen waar verspillingen plaatsvinden in het software ontwikkelproces. Het is de bedoeling dat deze verspillingen worden geëlimineerd.

Bij Lean & Agile ligt de focus op een flexibele, maar snelle flow. Wat betekent: vasthouden aan de cadans van de opleveringen en tegelijkertijd kritisch blijven kijken of het proces efficiënter kan.

Ook moet er tijdens het software ontwikkelproces voortdurend nieuwe kennis gegenereerd worden door het doen van vele experimenten en door de klant regelmatig om feedback te vragen. We hebben tegenwoordig immers te maken met snelle technologische ontwikkelingen en snel veranderende klantwensen. Je ontkomt er dus niet aan om hierop te blijven inspelen.

De combinatie van Lean & Agile heeft veel weg van Lean Software Development, maar is niet helemaal hetzelfde. Lean Software Development heeft namelijk nog andere focuspunten en principes, zoals we in deel 1 al lazen. Hieronder kun je lezen hoe Lean Software Development eruit ziet in de praktijk.

3. Hoe werkt Lean Software Development in de praktijk?

Belangrijke tool: Value Stream Mapping

Lean Software Development gaat over het aanpakken van verspillingen en het stroomlijnen van het proces. Het doel is het zo snel mogelijk leveren van software dat van waarde is voor de eindklant. Om snel software te kunnen leveren moeten alle verspillingen uit het ontwikkelproces gehaald worden. Een verspilling is alles waar een klant niet voor wil betalen of op wil wachten. Om deze verspillingen in kaart te brengen gebruik je een Value Stream Map.

De Value Stream Map dient als tool voor het maken van een waardestroomanalyse. De Value Stream Map vormt de basis om je verspillingen aan te pakken. Rechts (of hieronder) staat een voorbeeld van een Value Stream Map op hoofdlijnen.

In een Value Stream Map beschrijf je alle activiteiten van het waardestroomproces, van klantwens tot oplevering of van concept to cash. In de Value Stream Map beschrijf je alle processtappen met daarbij de waardetoevoegende tijden (value added time) en niet-waardetoevoegende tijden of wachttijden (non value added time) per processtap.

value stream map, value stream mapping, value stream map lean software development

Value added time

De value added time is de tijd waar de klant voor wil betalen en op wil wachten.

Non value added time

De non value added time is de tijd, inclusief de wachttijden tussen de stappen, dat geen waarde toevoegt in de ogen van de klant. Dit is dus een verspilling.

Lead time

De lead time is de totale tijd tussen de klantwens en uiteindelijke oplevering.

Process efficiency

De process efficiency is het percentage van de tijd dat er daadwerkelijk waarde wordt toegevoegd aan het product in verhouding tot de time-to-marken. Een process efficiency van 15% is ‘normaal’ en van boven de 40% is ‘goed’.

De 7 Lean Software Development principes

Lean Software Development kent 7 kernprincipes. In deel 1 zijn ze al kort genoemd. Hieronder staan ze nog een keer met een korte uitleg.

principes lean software development

1Eliminate waste

Het Lean Software Development proces start met het elimineren van waste in het ontwikkelproces. Het gaat om alles wat in de weg staat om klanten te geven wat ze echt waarderen. Het ontwikkelproces is hierbij breder dan alleen het bouwen van de software. Voorbeelden van waste zijn gedeeltelijk afgemaakt werk en extra features die niet gebruikt worden.

2Build Quality In

Kwaliteit boven snelheid. Build Quality In betekent dat al vanaf het begin kwaliteit in de code wordt aangebracht en niet later tijdens de test. Bugs voorkomen in plaats van opstapelen in een tracking systeem.

3Create Knowledge

Software ontwikkeling is een proces van kenniscreatie. Een gedetailleerd plan of ontwerp kan niet goed anticiperen op de complexiteit van software ontwikkeling. Lange termijn successen worden juist behaald door het voortdurend genereren van nieuwe kennis over het proces én product.

4Decide as late as possible

Onomkeerbare beslissingen, zoals kritische ontwerpbeslissingen, kun je het beste nemen op het laatst verantwoorde moment. Dan heb je de meeste kennis opgedaan om weloverwogen beslissingen te kunnen nemen. Dit principe pas je alleen toe als je van een ‘onomkeerbare beslissing’ geen ‘omkeerbare beslissing’ kan maken.

5Deliver Fast

Bedrijven die kunnen concurreren op basis van leveringssnelheid hebben een grote voorsprong. Zorg daarom voor flow in het proces.

6Respect People

Er zijn drie basisingrediënten voor het respecteren van je mensen in de IT organisatie. Creëer cross-functionele teams. Stel leiders aan als decision-makers. Geef teams eigen verantwoordelijkheid.

7Optimize the Whole

Een Lean organisatie optimaliseert de gehele waardestroom van de organisatie: van idee tot ingebruikname van de klant. Dit start met het in kaart brengen van alle processtappen met bijbehorende doorlooptijden in een Value Stream Map. Wees vervolgens scherp op het gehele ontwikkelproces en detecteer tijdig als ergens waste ontstaat.

4. Wat levert Lean Software Development op?

Korte time-to-market

Het eerste voordeel dat Lean Software Development kan opleveren is een korte time-to-market. Oftewel een snellere levering van software. Dit is gunstig voor élke organisatie.

Ten eerste vanwege het concurrentievoordeel. Klanten willen tegenwoordig niet lang meer wachten voordat ze hun product kunnen gebruiken. Dus hoe sneller de levering hoe beter. Ten tweede vanwege de efficiëntie en kostenbesparing. Werken aan een snellere levering noodzaakt de organisatie om processen efficiënter in te richten, wat leidt tot kostenbesparing.

Time-to-market drukken we ook wel uit als ‘lead time’: de tijd die een klant moet wachten op de software. De eerste stap naar een korte time-to-market is de huidige lead time, processtappen en wachttijden in kaart brengen in een Value Stream Map. Ongetwijfeld vallen er dan gelijk een aantal bottlenecks op die de lead time behoorlijk verminderen. Door de bottlenecks één voor één aan te pakken zal de gemiddelde lead time elke keer weer verbeteren.

Daarnaast levert het opknippen van werk in kleine delen ook enorme winst op in de time-to-market en flow, omdat dit het werk overzichtelijk en afgebakend maakt. Op die manier kan iedereen in het proces werk snel oppakken en dit ‘first-time-right’ opleveren aan de volgende stap in de waardestroom.

Gezonde werkdruk voor ontwikkelaars

Een tweede voordeel is een gezonde werkdruk voor ontwikkelaars. Werkdruk ontstaat vaak doordat ontwikkelaars maar moeten ‘draaien’ zodra de business dit vraagt. De focus ligt op het voldoen aan verzoeken die de business neerlegt. Kort-door-de-bocht oplossingen liggen daarom al snel op de loer. Als dit regelmatig gebeurt ontstaat vanzelf een codebase met veel waste. Dit is één van de grootste demotivators van ontwikkelaars en remt de productiviteit.

Door juist flow aan te brengen in het proces kunnen de verzoeken op een meer stabiele manier worden aangeleverd en houdt het team ook rekening met het continue verbeteren van hun proces en kwaliteit van de code.

Blije klanten

Een derde voordeel is blije klanten. Wanneer is een klant blij? Klanten of eindgebruikers van de software zijn blij als ze op het juiste moment de juiste software tot hun beschikking hebben. Helaas staat software ontwikkeling er om bekend dat de oplevering vaak langer duurt dan gewenst of dat klanten niet de features krijgen waar ze op hoopten.

Dit heeft te maken met twee dingen: enerzijds worden beloftes aan de klant gedaan op basis van aannames, zonder de ontwikkelteams op een fatsoenlijke manier mee te laten denken. Anderzijds zijn ontwikkelprocessen soms onnodig lang. Soms staan zaken te wachten zelfs zonder dat dit opvalt! En soms kunnen stappen sneller genomen worden als men bereid is te investeren in een nieuwe tool of technologie.

Door te werken met Lean Software Development principes als ‘optimize the whole’ en ‘create knowledge’ kun je dit soort problemen tackelen.

Last van legacy software & systemen? Download de whitepaper!

Voor veel organisaties zijn legacy applicaties een blok aan het been voor innovatie. Bovendien verspillen ontwikkelaars bijna 50% van hun tijd met werken aan verouderde software & systemen.

Ontdek in de whitepaper strategieën om legacy software te vervangen met moderne technologie dat zelfs 30-50% langer meegaat. En dat, terwijl de business gewoon door draait.

Profiteren van deze voordelen? Zet de eerste stap. Download de whitepaper.

legacy software whitepaper