#leansoftwaredevelopment   #decideaslateaspossible

Lean Software Development principe #4 Decide as late as possible

Yvan Rens

 - 

Software ontwikkeling is een proces van kenniscreatie. Het is daarom zinvol om eerst zoveel mogelijk kennis op te doen en beslissingen op het laatste moment te nemen. Maar dan wel op het laatst verantwoorde moment. Lees in dit blog hoe je het principe ‘Decide as late as possible’ van Lean Software Development toepast.

decide as late as possible, principes lean software development

Omkeerbare beslissing VS onomkeerbaar beslissing

Voordat je een beslissing neemt is het belangrijk om na te gaan met wat voor soort beslissing je te maken hebt. Is je beslissing, eenmaal genomen, makkelijk weer terug te draaien? Dan is de beslissing omkeerbaar en waarschijnlijk minder kritiek. Maak dan een keuze die je het beste lijkt.

Is de beslissing erg lastig te wijzigen nadat het eenmaal genomen is? Dan is de beslissing onomkeerbaar en waarschijnlijk kritiek. In de rest van dit blog bespreken we hoe je om kunt gaan met onomkeerbare beslissingen in de context van software ontwikkeling.

Omzeil het point of no return

Bij een nieuw software systeem moet je normaliter een aantal architectuur en design keuzes maken. In de beginfase is alleen vaak nog niet duidelijk waar een systeem exact aan moet voldoen.

De kans bestaat dus dat je in de toekomst andere keuzes moet gaan maken. Met als gevolg dat aanpassingen veel tijd kosten of dat nieuwe features niet meer geïmplementeerd kunnen worden. Voor je het weet ben je een legacy systeem van de toekomst aan het creëren.

Om het point of no return te omzeilen raden we je aan beslissingen omkeerbaar te maken. Bijvoorbeeld door al rekening te houden met het feit dat je de gekozen technologie op een dag moet vervangen. Op die manier hoef je je minder zorgen te maken of je wel de juiste beslissing neemt.

Lean Software Development verder ontdekken?

Download de whitepaper!

Download nu »
lean software development whitepaper

Beslis op het laatst verantwoorde moment

Kun je van een ‘onomkeerbare beslissing’ geen ‘omkeerbare beslissing’ maken? Beslis dan op het laatst verantwoorde moment. Maar hoe bepaal je dit moment? Dat kan van veel factoren afhangen.

Als je bijvoorbeeld te maken hebt met een harde deadline zul je tijd moeten incalculeren om na de beslissing de softwareoplossing te kunnen bouwen. Wacht je te lang met de beslissing, dan kom je in tijdnood. Bepaal daarom allereerst wanneer de beslissing uiterlijk gemaakt moet worden.

Is de datum bekend? Ga dan aan de slag met het verzamelen van informatie dat bijdraagt aan het nemen van de juiste beslissing. Om de best mogelijke ‘onomkeerbare beslissing’ te nemen heb je namelijk zoveel mogelijk informatie en kennis nodig.

Manieren om nieuwe kennis te vergaren is door regelmatig feedback te vragen aan de klant het doen van experimenten. Lees hieronder meer over experimenteren.

Experimenteer voordat je de beslissing moet nemen

De tijd voordat je de ‘onomkeerbare beslissing’ neemt is kostbare tijd om nieuwe kennis te genereren. Start daarom met experimenteren en vraag de klant regelmatig om feedback. Voorbeelden van tools en methodes om succesvol te kunnen experimenteren binnen software ontwikkeling zijn het ontwikkelen van een change tolerant system en werken volgens set-based design.

Ontwikkel een change tolerant system

Een change tolerant system is een software systeem waarin je eenvoudig en snel aanpassingen kunt doen. Dit systeem creëer je door jezelf bij elke beslissing af te vragen of het eenvoudig veranderd kan worden als dit in de toekomst nodig blijkt te zijn. Het voordeel van zo'n flexibel systeem is dat wijzigingen sneller gedaan kunnen worden, wat vervolgens weer snel feedback oplevert en ook weer snel verwerkt kan worden. Een hoop voordelen dus.

Werk volgens set-based design

Set-based design kun je het beste toepassen als je een werkend software product moet hebben voor een harde deadline. Werken volgens set-based design betekent dat meerdere teams tegelijkertijd zowel een simpele als een uitgebreide versie van het uiteindelijke product bouwen. Op die manier is er altijd één team dat de deadline kan halen.

Voorbeeld: er zijn twee teams. Eén team werkt aan een versie met alleen het uiterst noodzakelijke om het product te kunnen lanceren voor de deadline (Minimum Viable Product). Het andere team werkt aan een betere versie met iets meer features, waarvan niet gegarandeerd kan worden of ze de deadline zullen halen. Dit scenario zorgt ervoor dat er op een afgesproken deadline in ieder geval één versie van het product in gebruik genomen kan worden. Welke dat is, hangt af van de voortgang van het tweede team.

Nadat de deadline geweest is en één van de software producten gelanceerd is, kunnen beide teams hun eigen versie van het product verbeteren op basis van de feedback van de klant. Tegelijkertijd kunnen de gebruikers van de software al een versie in gebruik nemen en daarop feedback leveren.

Meer lezen over hoe je kennis genereert?

Bekijk het blog over het principe ‘Create Knowledge’ van Lean Software Development.

Lean Software Development verder ontdekken?

Een juiste toepassing van Lean Software Development zorgt voor een effectieve software ontwikkeling met zo min mogelijk waste. Kortom: ICT-projecten van hogere kwaliteit met een kortere doorlooptijd tegen de laagst mogelijke kosten. Een aantal concrete resultaten zijn:

  1. 30 - 75% kortere time-to-market
  2. 30 - 50% langere levensduur van webtechnologie
  3. 20 - 50% toename in productiviteit

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

lean software development whitepaper