DevOpsOptimalisatie van software ontwikkelproces

Optimalisatie van software ontwikkelproces

VSM2

Snel releasen is belangrijk bij software. Maar om het software ontwikkelproces te versnellen, moet je eerst vaststellen waar de knelpunten zitten. In dit artikel staan we stil bij het doen van een Value Stream Mapping sessie. Deze methodiek is een goede manier om alle betrokkenen rondom een proces bij elkaar te krijgen, kennis en ervaringen te delen en knelpunten te identificeren en op te lossen.

Value Stream Mapping

Een Value Stream is een middel om een proces in een bedrijf in kaart te brengen en, op basis van de bevindingen, te optimaliseren. Een Value Stream Map brengt alle activiteiten in kaart die uitgevoerd worden om een product te leveren.
In beginsel is dit een methodiek die vooral wordt toegepast binnen productie organisaties waarbij je van een grondstof tot een eindproduct gaat. Het is echter ook mogelijk om dit binnen een Software Ontwikkel proces toe te passen. Je doorloopt dan het proces van Idee tot en met een feature die is opgeleverd in de productie omgeving

Lean methodiek

Value Stream Mapping is een methodiek die komt uit Lean. Een belangrijk uitgangspunt is dat je moet bepalen waar (welke activiteit en processtap) de zwakste schakel zit. In het boek “The Goal” geschreven door Eliyahu M. Goldratt wordt dit goed beschreven. Wanneer je een processtap optimaliseert die geen bottleneck is, dan los je het probleem niet op. Het eindproduct wordt niet sneller gemaakt, het werk bij de bottleneck stapelt zich alleen sneller op.

Doel van de Value Stream Map is dan ook om de bottleneck te bepalen en maatregelen te nemen waardoor de onderkende bottleneck wordt opgelost. Vervolgens gaat ergens anders een bottleneck ontstaan, je herhaalt de optimalisatie totdat er geen winst meer te behalen is en je een volledig geoptimaliseerd proces hebt.

Een Value Stream Mapping sessie

Het belangrijkste bij het uitvoeren van een Value Stream Mapping exercitie is de aanwezigheid van iedereen die werkzaamheden uitvoert in het proces. Wanneer niet iedereen aanwezig is kun je geen goed beeld van het gehele proces krijgen en niet van elkaar leren. Daarnaast moet iemand de rol als facilitator op zich nemen. Bij voorkeur iemand die geen directe relatie heeft met het te behandelen proces.

Uiteraard heb je een voldoende grote ruimte nodig en diverse materialen, zoals een rol papier waar het hele proces op kan, post-its van verschillende kleuren en pennen.

De stappen van een Value Stream Map

Om tot een Value Stream Map (VSM) te komen worden er een aantal stappen doorlopen.

Stap 0: Introductie en bepalen doel van het Proces waar de VSM voor wordt gemaakt
De eerste stap bij het uitvoeren van een VSM sessie is tweeledig. Als eerste moet je de deelnemers uitleggen wat VSM is en wat er wordt verwacht van de deelnemers.
De tweede stap is bepalen wat de succesfactoren zijn van het proces waar de VSM voor wordt uitgevoerd. Waarom ontwikkelen we een product, en wanneer is de opdrachtgever en klant tevreden? Dit wordt ook wel de Voice of Customer (VOC) genoemd. Deze is belangrijk in stap 7.

Stap 1: Beng Actoren / Processtappen in kaart
Stel met de groep vast wat het proces is. Hoe komen we van idee tot een werkende feature in productie? Het leuke van deze opdracht is dat deelnemers vaak geen overzicht hebben over het gehele proces, dus het feit dat alle deelnemers inzicht hebben in de processtappen is al een winstpunt.

Value Stream map
Figuur 1: voorbeeld van onderkende actoren/processtappen.

Stap 2: Definieer de activiteiten per stap
Binnen een processtap worden verschillende activiteiten uitgevoerd. Probeer hier volledig in te zijn, sla geen activiteiten over omdat je denkt dat deze klein of niet relevant zijn. Belangrijk is dat je alle activiteiten in kaart hebt (openheid is een must). Wees ook zo concreet mogelijk bij het opschrijven van de activiteiten.

Value Stream map
Figuur 2: Voorbeeld van activiteiten bij één van de onderkende Actoren / Processtappen

Stap 3: Definieer Work in progress
Als we de processtappen en de activiteiten hebben kunnen we bepalen hoeveel werk we bij elke stap in behandeling hebben. Denk hierbij bijvoorbeeld aan het aantal User Story’s dat een Tester als werkvoorraad heeft, of het aantal User Story’s dat de Product Owner nog in behandeling heeft en die nog gerefined moeten worden. Schrijf bij elke processtap het aantal op wat overeenkomt met de Work In Progress (WIP)

Value Stream map
Figuur 3: Vaststellen van de Work In Progress tussen de verschillende Actoren/Processtappen

Stap 4: Identificeer het rework
Tot nu toe hebben we het proces beschreven hoe het idealiter loopt, het komt echter voor dat er fouten optreden of zaken onduidelijk zijn. Wanneer dit het geval is, is er sprake van rework. Bij het testen van een User Story kan een bug worden gevonden, deze moet dus terug naar de developper om aangepast te worden. Wanneer er een Architectuur keuze is gemaakt voor een User Story, en bij het realiseren van de User Story blijkt dat dit niet uitvoerbaar is moet deze terug naar de Architect.

Stap 5: Voeg additionele informatie toe
De deelnemers kunnen bij activiteiten extra informatie toevoegen. Je kunt bijvoorbeeld aangegeven dat een activiteit veel tijd kost, of dat een activiteit foutgevoelig is.
Stap 6: Voeg proces tijd, doorlooptijd en wachttijd toe
Stel vast hoeveel tijd het kost om een activiteit uit te voeren, wat de doorlooptijd is en hoeveel wachttijd er is. Dit doe je per processtap maar ook voor het totale proces. Veel voorkomende wachttijden zijn bijvoorbeeld een release die maandelijks of per kwartaal wordt opgeleverd. De doorlooptijd om een feature (die misschien in 4 dagen is gemaakt) in productie te krijgen kan dus 90 dagen zijn.

Stap 7: Identificeer activiteiten die geen waarde toevoegen
In stap 0 hebben we de succesfactoren voor het project bepaald (de Voice of Customer). Alle activiteiten die daaraan een bijdrage leveren zijn activiteiten die waarde toevoegen. Activiteiten die niet dit doen kun je onderverdelen in:
• Voegt geen waarde toe, maar is noodzakelijk (bijvoorbeeld oplossen van Bugs)
• Voegt geen waarde toe en is Waste
De activiteiten die geïdentificeerd zijn als waste moet je direct staken. Dit levert niet alleen geen waarde toe, maar zijn ook nog eens niet noodzakelijk. Dit is de eerste winst die je kunt behalen.

Value Stream map
Figuur 4: Geef met behulp van kleurcodering aan welke activiteiten waarde toevoegen en welke geen waarde toevoegen.

Stap 8: Bepaal het knelpunt en bespreek de stappen om deze op te lossen
Uit de Value Stream Map die gedurende het proces is opgesteld wordt snel inzichtelijk wat het grootste knelpunt is. De laatste stap is gezamenlijk vaststellen welke dit is, en de concreet de stappen te besprek om het knelpunt op te lossen. Aan het einde van de sessie moet er een concreet plan zijn.
Het spreekt voor zich dat wanneer het grootste knelpunt is opgelost er een ander grootste knelpunt kan worden geïdentificeerd. Herhaal deze sessie dan ook net zolang totdat het proces geoptimaliseerd verloopt.

Ervaring in de praktijk

De ervaring leert dat iedereen wel weet waar problemen zitten, maar om de een of andere reden worden deze of niet uitgesproken (“Iedereen weet toch dat het zo werkt”) of niet opgepakt (“Ik wist niet dat dit echt een probleem was).
Daarnaast is het goed om met alle betrokkenen van het proces waarbij je van Idee naar Oplossing gaat om tafel te zitten en ervaringen te delen.

Binnen Delta-N passen we deze techniek sinds kort toe bij interne projecten. Door het toepassen van de Value Stream Map hebben we een aantal processen kunnen optimaliseren, de winst die het oplevert varieert maar elke verbetering betekent een optimalisatie.

Aan de hand van bovenstaande stappen kunt u zelf een Value Stream Mapping sessie opzetten. Hebt u hier ondersteuning bij nodig of iemand die de rol van facilitator invult, dan kan Delta-N u hier uiteraard bij helpen. Neem voor meer informatie contact op met Roy Driessen via 085 - 487 52 11.