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:

5

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

3

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

2

features in applicaties die nauwelijk worden gebruikt: uit onderzoek blijkt dat zo'n 2/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

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

Maar we werken toch al Agile?

Tegenwoordig is Agile en SCRUM niet weg te denken uit software ontwikkeling. 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 beiden methodes het creëren van een flow als een belangrijk onderdeel zien. Wat inhoud: 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 Lean 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 lean software development
2

Value added time

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

1

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.

2

Lead time

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

3

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 start met het minimaliseren van verspilling in het ontwikkelproces. Het gaat om alles wat in de weg staat om klanten te geven wat ze echt waarderen. Liefst precies waar en wanneer ze de meeste waarde ervaren. Het ontwikkelproces is hierbij breder dan alleen het bouwen van de software. Het gaat ook om het opstellen van requirements, het regelen van budget en hoe om te gaan met deadlines.

2Build Quality In

Streef ernaar om bugs helemaal te voorkomen tijdens ontwikkeling met test-driven-development, continuous integration en tijdig refactoren om de codebase overzichtelijk te houden. Zorg voor vroege Quality Assurance en snelle feedback loops via review apps. En neem geen shortcuts ten koste van kwaliteit.

3Create Knowledge

Software is een proces van kenniscreatie. Maak een gewoonte van het documenteren hiervan tijdens ontwikkeling. Release early, release often om feedback op te halen bij echte gebruikers, hiervan te leren en de software iteratief te verbeteren.

4Decide as late as possible

Committeer je pas aan kritische ontwerpbeslissingen op het laatste, nog verantwoorde moment. Dan heb je de meeste kennis opgedaan om weloverwogen beslissingen te nemen. Probeer ontwerpbeslissingen ook altijd flexibel te houden voor toekomstige veranderingen. De wereld om je heen verandert en je software moet mee kunnen komen.

5Deliver Fast

Zorg voor flow in het proces, zodat functies die klaar zijn voor release direct live gebracht kunnen worden. Lever zo veel sneller waarde aan je klanten. Als bonus zorgt deze manier van werken voor veel minder verspilling in je ontwikkelproces. Vaak releasen betekent ook dat een release minder spannend wordt, lagere risico's heeft en minder bugs bevat.

6Respect People

Goed leiderschap van ontwikkelteams zorgt voor een hogere productiviteit, blijere ontwikkelaars en minder stress. De kunst is om gebalanceerde, cross-functionele teams te creëren waarin elk teamlid zijn of haar maximale potentieel kan benutten.

7Optimize the Whole

Een Lean organisatie optimaliseert de gehele waardestroom van idee naar ingebruikname voor de klant. Wees scherp op het gehele ontwikkelproces en detecteer tijdig als ergens waste ontstaat: werk dat zich ophoopt in het proces of de kwaliteit die omlaag gaat om deadlines maar te halen. Implementeer retrospectives om continu te blijven leren en maak het een gewoonte om veel kleine verbeteringen door te voeren in het ontwikkelproces.

Een greep uit onze opdrachtgevers

Rabobank logo
Kennisnet logo
Payter logo
Datacount logo
Pax logo
Green Orange logo
WineSTEP logo
Backbase logo

Onze 3 garanties

We zijn trots dat onze klanten de vruchten plukken van onze aanpak:

1. Aantoonbaar sneller, beter en tegen lagere kosten ontwikkelen van webapplicaties

2. Productievere én blijere ontwikkelaars

3. 30-50% langere levensduur van webtechnologie met Auto-Evergreen®