Scrum geschikt voor...?
Agile en Scrum zijn binnen de software ontwikkeling ongekend populair. De voordelen van een agile werkwijze zijn dan ook indrukwekkend. Veel organisaties zijn inmiddels geheel of gedeeltelijk overgestapt op Scrum of hebben pilot projecten lopen. Van andere organisaties krijg ik regelmatig de vraag 'Voor welke type projecten is Scrum nu eigenlijk wel en niet geschikt?' Deze vraag probeer ik hieronder te beantwoorden.
Complexe projecten
Scrum is ontworpen voor het managen van complexe processen. Traditionele software ontwikkelmethoden gaan impliciet uit van de veronderstelling dat het ontwikkelen van software gecompliceerd is. Een voorbeeld om het verschil tussen complex en gecompliceerd duidelijk te maken:
- Autosleutels zijn simpel
Hoe autosleutels werken is eenvoudig te begrijpen. Het is niet zo moeilijk om een autosleutel uit elkaar te halen en weer in elkaar zetten. - Een auto is gecompliceerd
De (technische) werking van een auto is voor de meeste mensen lastiger te doorgronden. Voor het monteren van een auto is specialistische kennis nodig. We laten het repareren van onze auto dan ook graag over aan experts. - Het verkeer is complex
Het verkeer en het gedrag van individuele verkeersdeelnemers is niet helemaal te voorspellen. Er zijn wel regels en patronen maar je weet bij vertrek bijvoorbeeld niet voor hoeveel verkeerslichten je moet stoppen en waar je moet uitwijken voor andere weggebruikers. Het ontleden van het verkeer is onmogelijk.
Vrijwel alle software ontwikkelprojecten zijn complex omdat daarin mensen intensief moeten samenwerken en communiceren. Software ontwikkelprojecten zijn ook complex omdat het onmogelijk is om alle requirements op voorhand boven tafel te krijgen en bovendien zal een substantieel deel van de requirements (gemiddeld 35%) wijzigen tijdens het project.
Empirische procesbesturing
In tegenstelling tot simpele en gecompliceerde processen is het bij complexe processen niet mogelijk om het verloop van het proces vooraf tot op taakniveau te plannen. Traditionele software ontwikkelmethoden proberen het proces te standaardiseren en delen het totale software ontwikkelproces op in fasen, activiteiten en mijlpaalproducten. Een dergelijke plan van aanpak met bijbehorende planning geven niet meer dan schijnzekerheid. De enige zekerheid die er is, is dat de werkelijkheid niet conform het plan zal verlopen. Het is in feite een wens of een voorspelling van het verloop van het project.
Bij onvoorspelbare processen is continue bijsturen en reageren op de actuele situatie cruciaal. Empirische procesbesturing is, zoals de naam aangeeft, gebaseerd op waarneming van recente gebeurtenissen en activiteiten. Bij complexe projecten is daarom wel het einddoel, de stip op de horizon, bekend maar wordt de weg daar naartoe gaandeweg het project uitgestippeld. Empirische procesbesturing is dan ook gestoeld op de volgende drie pijlers:
- Transparantie
Voor alle betrokkenen moet de actuele stand van zaken op ieder moment inzichtelijk zijn. Iedereen beschikt over dezelfde accurate informatie. - Feedback
Voortdurend aan de klant feedback vragen op het in ontwikkeling zijnde product en regelmatig de werkwijze van het team evalueren, zijn essentieel. - Bijsturen
Verbeteringen en voortschrijdend inzicht direct doorvoeren om zo continue het project bij te sturen.
Scrum
Scrum is een raamwerk, een set aan regels, die het mogelijk maakt om complexe processen succesvol te managen. Dit zou je kunnen vergelijken met het beoefenen van een teamsport of het uitvoeren van een militaire operatie. De professionals in het veld bepalen zelf, binnen de vastgestelde regels, hoe ze handelen en reageren op de actuele situatie. Een scrumteam opereert als een zelfsturend team dat zelf haar werk plant, coördineert en evalueert en zelf kiest van welke technieken en best practices ze gebruik maakt. Dit blijkt in complexe omgevingen veel beter te werken dan een projectleider of manager die vooraf een plan maakt en taken toewijst aan medewerkers.
Kortom: Scrum is geschikt voor het managen van vrijwel alle software ontwikkelprojecten. Omdat het onvoorspelbare en daarmee complexe processen zijn, is empirische besturing daar geschikter voor dan de traditionele plangedreven aanpakken.
Heb jij ervaring met empirische procesbesturing? Laat hieronder weten hoe dat bevalt.


Nicole de Swart is Requirements Specialist en werkt als zelfstandig consultant, trainer en (agile) coach. Ze is auteur van 
