Expert in requirements

Scrum geschikt voor … ?

Druk stadsverkeer

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

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 3 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

3 soldaten

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.

Succes met de requirements,

Nicole de Swart

PS Vond je dit artikel interessant? Deel het dan op Twitter, LinkedIn, Facebook of Google+ door op onderstaande knoppen te klikken.


Reacties (0)


Geef een reactie

Om misbruik te voorkomen, vragen we je om onderstaande 'captcha' in te vullen.

uk6AG

Tips voor de moderne analist

Abonneer je en ontvang eens per maand een nieuw artikel

Je kunt je op ieder moment weer afmelden

# abonnees
Nicole de Swart

Nicole de Swart

Volg Nicole op:

Gratis e-book ‘De Agile Analist’

Cover ‘De Agile Analist’

Voor iedereen die succesvol als agile analist aan de slag wil