Okay, alles is relatief en elke vergelijking heeft zo zijn manco's. Toch wil ik proberen het vak van software ontwikkeling tegen de volgende twee theorieën te houden.
1. Big Bang
13,7 miljard jaar geleden ontstond het heelal. Tegelijkertijd
met de oerknal zouden ruimte en tijd zijn ontstaan. De theorie is onder meer
gebaseerd op de waarneming van het voortdurend uitdijende heelal.
2. Evolutie
Maar na die 'Big Bang' bestond de mens nog niet. Zelfs de dinosauriërs
nog lang niet. Flora en fauna zijn, na die Big Bang, veranderd in de loop van
de generaties als gevolg van genetische variatie, voortplanting en natuurlijke
selectie.
Jarenlang hebben we geprobeerd, met wisselend succes, om
software op te leveren volgens het ‘Big Bang’ scenario. En om de kans op succes
te vergroten hebben we dat proberen te managen met methoden zoals PRINCE2 en technisch
te faseren met de waterval methode.
En als dat een paar keer achter elkaar niet helemaal succesvol
is verlopen, vergroten we control-factor: meer management en meer
bureaucratische voorschriften en verplichte templates.
Daarnaast kennen we de wet van Barry Boehm: fouten zo vroeg
mogelijk voorkomen omdat de kosten van later pas vinden en repareren
exponentieel stijgen. Dus gaan we (nog) meer de kop van het project aanzetten.
Met als gevolg dat projecten nog langere doorlooptijd hebben voor dat ze met
een ‘Big Bang’ demonstreren wat ze dachten te moeten opleveren.
Met Scrum gaan we helemaal de andere kant op: niet van te
voren alles ontwerpen, maar binnen time-boxen dat opleveren waarvan we weten
dat het nodig is en wat we in een dergelijke time-box ook kunnen realiseren. En
zo de software laten evalueren tot we de maximale ‘business value’ hebben
mogelijk gemaakt.
Is dit het einde van het Bang model in softwareland?
Nee, volgens mij niet. Ook een Scrum team heeft een basis
nodig om aan te werken. En die basis heeft een belangrijk kenmerk in zich wat
doet pleiten voor een Bang-scenario: vaste requirements.
Maar, we kunnen nu volstaan met een ‘Small Bang’ scenario. En
dat kan prima met een praktische invulling van bijvoorbeeld PRINCE2 worden
gemanaged, in combinatie met het waterval-model. Als we dan de overhead, bureaucratie
en controle-neiging maar weten te beheersen.En daarna met Scrum de software verder evalueren.