Welke rol speelt Lean bij softwareontwikkeling?

Algemeen

Welke rol speelt Lean bij softwareontwikkeling?

Digitalisering en softwareontwikkeling worden vandaag de dag steeds belangrijker binnen organisaties. Je kunt gelijkenissen en invloeden van de Lean filosofie herkennen in software-ontwikkelmethodes. Welke rol speelt Lean bij softwareontwikkeling en welke Lean principes komen aan bod?

Waterval methode

In het verleden werkten softwareontwikkelaars voornamelijk met de waterval methode, waarbij de nadruk ligt op geplande processtappen en veel documentatie. De waterval methode heeft zijn naam te danken aan het feit dat de fases van een project met een ‘neerwaartse stroom’ worden afgerond. Dit doet denken aan de stroom van een waterval.

De waterval methode is echter een tijdrovende methode waarbij geen rekening wordt gehouden met externe veranderingen, zoals wijzigende eisen van de opdrachtgever. Bovendien moet elke fase eerst afgerond worden, voordat er kan worden gestart aan een nieuwe fase. De methode paste niet meer bij de softwarewereld die continu verandert, daarom werden er alternatieven bedacht.

Agile softwareontwikkeling

Een van die alternatieven is Agile softwareontwikkeling. Deze methodiek is inmiddels populair in de softwarewereld en is een overkoepelende term voor meerdere software ontwikkelmethodes, zoals Scrum, kanban en Lean softwareontwikkeling.

Bij Agile softwareontwikkeling is het belangrijk dat je kunt inspelen op (onverwachte) veranderingen tijdens het ontwikkelproces. Kenmerkend voor de ontwikkelmethodes is de korte periode, van ongeveer 1 tot 4 weken, waarin de software wordt ontwikkeld. Deze periodes worden iteraties of sprints genoemd. Agile softwareontwikkeling bestaat uit een iteratief proces, daarom kun je sommige processtappen, die nog niet compleet zijn, herhalen totdat je het gewenste resultaat hebt bereikt.

 

agiledevelopment

Agile Manifesto

Agile Manifesto bestaat uit 4 kernwaarden en 12 onderliggende principes die de filosofie van Agile softwareontwikkeling omschrijven. De 4 kernwaarden zijn:

  1. Personen en interacties zijn belangrijker dan processen en tools.
  2. Werkende software is belangrijker dan documentatie.
  3. Samenwerking met de klant is belangrijker dan onderhandelingen over contracten.
  4. Omgaan met verandering is belangrijker dan het volgen van een plan.

Uit de 4 kernwaarden kun je opmaken dat de klant centraal staat (Lean principe: waarde) bij Agile softwareontwikkeling, net als bij Lean.

Uit welke fases bestaat Agile softwareontwikkeling?

Eerste fase (sprint 0)

De eerste sprint wordt ‘sprint 0’ genoemd. Voordat een goede softwareontwikkelaar begint met zijn eerste regel code, wil hij inzicht krijgen in het doel van het project en de (business)behoefte. De organisatie wil namelijk iets waardevols realiseren voor haar (interne) klant. Ook wordt meestal een eerste versie van de Product Backlog gemaakt.

De digitalisering van een onlogisch, bureaucratisch of ingewikkeld proces, waarvan het doel niet gedefinieerd is, zal zelden met applaus worden ontvangen. Een voorbeeld van zo’n proces is een ingewikkeld goedkeuringsproces. Dit proces kan worden vereenvoudigd met behulp van business rules.

In deze fase komen twee Lean principes aan bod: ‘waarde’ (wat wil de klant en waar streven we naar?) en ‘waardestroom’ (hoe ziet het proces eruit en wat is het doel van het proces?).

Tweede fase (sprint 1, 2 en verder)

Zodra in de eerste fase de behoefte en het doel zijn bepaald, wordt in de volgende fase een eerste concept of functionaliteiten gebouwd. Dit noem je ook wel ‘sprint 1’. Stel je voor dat het doel is “sneller van A naar B komen”, dan kun je de eerste fase zien als het bouwen van een fiets. Deze fiets gaat pas bewegen in de tweede fase, want dan wordt er actie ondernomen om het doel te bereiken.

Tijdens elke sprint wordt er een deel van het product opgeleverd. Het is dus van belang dat de code al écht werkt, zodat het kan worden toegevoegd aan de bestaande software. Vervolgens wordt de code getest: werkt alles zoals het hoort? Deze code kan altijd worden aangepast, als blijkt dat het nog niet voldoet aan de verwachtingen (van de klant).

Evaluatie van de klant

De tweede fase wordt afgesloten met een beoordeling door de klant (Lean principe: waarde). Hierin worden bijvoorbeeld de volgende vragen beantwoord:

  • Voldoen de resultaten van de sprint aan de verwachtingen?
  • Wat levert de meeste klantwaarde op?
  • Is dit dezelfde klantwaarde als voorheen? Waarom wel/niet?
  • Wat wordt de focus van de volgende sprint?

Wanneer de klant deze vragen heeft beantwoord, weten de softwareontwikkelaars of ze op de goede weg zitten. Op basis van de feedback wordt het volgende concept gebouwd (sprint 2). Hierna volgt alweer een evaluatie van de klant. Deze cyclus wordt herhaald totdat het doel is bereikt.

Agile softwareontwikkeling zorgt ervoor dat de softwareontwikkelaars effectiever en efficiënter werken. De tussentijdse evaluaties resulteren in meer waarde voor de klant en het minimaliseren van verspillingen. Het ontwikkelteam stopt met ontwikkelen als concepten niet van waarde zijn voor de klant, hierdoor besparen zij veel tijd.

Waarde creëren voor de klant is dus bij Agile softwareonwikkeling erg belangrijk. Gebruikt jouw organisatie deze methodiek al?

Wil jij meer weten over Lean en Agile? Volg dan onze Agile & Lean Foundation training! Lean en Agile passen uitstekend bij elkaar, want de klant staat centraal en er wordt gestreefd naar continu leren en verbeteren. 

Ga naar WhatsApp