Does IT play dice?

Een van de bekendste disputen in de natuurkunde was die
tussen Albert Einstein en Niels Bohr.  Einstein was ervan
overtuigd dat alles in de natuur volkomen deterministisch
was: geen plek voor onzekerheid.  Einstein vatte dat samen
als: "God does not play dice".  Niels Bohr was het daarmee
oneens, en de heren hebben tot Einstein's dood geredetwist
over dit issue.  Bohr trok aan het kortste eind trouwens:
God dobbelt weldegelijk.

Wat ik maar even de Einstein-view op IT noem, is dat
software engineering deterministisch zou zijn: software
gaat immers over nullen en enen.  Daar is geen plek voor
onzekerheid: IT does not play dice.  Die view zie je veel
in de software wereld.  Denk eens aan het tellen van
functiepunten: je gelooft erin of je gelooft er niet in.
De redenatie van de criticasters is als volgt: geef
dezelfde input aan twee tellers, en je krijgt twee
antwoorden---verschillende antwoorden.  De Einstein-view op
IT doet functiepunten dan af als een foute metriek.  Twee
verschillende antwoorden, dat kan geen zuivere koffie
wezen.

Er is ook een andere kant.  Denk eens aan de verzuchting:
there is risk, gambling, and software engineering.  Daarmee
aangevend dat de echte thrillseeker met IT het beste aan de
trekken komt als het om onzekerheid gaat.  Vanuit de
praktijk weten we eigenlijk wel dat software engineering
weldegelijk onzekerheid met zich meedraagt, van
functiepunten tot kosten, van requirements tot
opleverdatum.  In plaats van die onzekerheid te
verketteren, kun je het ook als fundamentele aanname
accepteren, ja het zelfs omarmen.  Zeg maar de Bohr-view:
IT does play dice.

Wat gebeurd er dan?  Laten we simpel beginnen.  Wanneer
zijn twee dobbelstenen verschillend?  Als ik met de ene een
3 gooi, en met de andere een 5?  Nee, ze verschillen pas
als de kans op het gooien van een waarde bij de ene
dobbelsteen anders is als de kans op het gooien van
diezelfde waarde bij de andere.  Laten we nu nog eens
opnieuw nadenken over het probleem van de verschillende
uitkomsten bij het uitvoeren van een functiepunt-analyse
(FPA).  Als we die tellers beschouwen als een soort
FPA-dobbelstenen, dan zullen we net als bij onze vertrouwde
dobbelstenen niet meteen de tellingen naar de prullenmand
verwijzen als we verschillende uitkomsten krijgen.  Immers
er zit een stochastisch element in het tellen van
functiepunten.  Dat is Bohr-denken over IT.

Rond 1990 is een experiment uitgevoerd om te kijken hoe
betrouwbaar functiepunten tellen nu eigenlijk is.  Dit
experiment was opgezet vanuit de Einstein-view:  geef
verschillende tellers dezelfde input en kijk of ze
hetzelfde antwoord geven.  Daaruit kwam dat er verschillen
waren die konden opliepen tot 12%.  Dus zou je kunnen
zeggen de betrouwbaarheid van die tellingen was 12%.  Das
mooi, maar hoe weet je dat nu binnen je eigen organisatie,
of hoe monitor je dat nu continue?  Er is vast geen geld om
elke telling een aantal keer uit te voeren.

Hoe kunnen we nu vanuit het Bohr-denken onderzoeken of
functiepunten tellen betrouwbaar is?  Nou net als met twee
dobbelstenen.  Je gaat gewoon met beiden stenen gooien.  En
met de uitslagen stel je een empirische kansdistributie op,
die je statistisch tegen het licht houdt.  Dan kun je zien
of de uitkomsten afkomstig zijn van verschillende
kansdistributies.  Is dat zo, dan zijn de dobbelstenen
verschillend.  Idem bij functiepunt-tellers:  verzamel
gewoon de reeds getelde functiepunten, niks dubbel tellen.
Van elke teller kun je dan een kansdistributie opstellen,
en die kun je statistisch vergelijken met die van alle
collega tellers.  Wat bleek toen ik dat onlangs voor 
de ABN AMRO deed?  Van de 15 analysten die tesamen vele
tienduizenden functiepunten hadden geteld bleek voor 90%
van de functiepunten dat er tussen de verschillende tellers
geen bewijs was dat ze verschillend telden.  Met andere
woorden, het merendeel van de 15 FPA-dobbelstenen was
zuiver: er werd zeer consistent geteld.

Uiteraard kan de ene teller heel andere, bijvoorbeeld veel
grotere of juist kleinere projecten tellen, en er zijn tal
van andere redenen waarom er verschillen kunnen optreden.
Voor die 10% waarbij lichte en soms sterke aanwijzingen
waren voor telverschillen ligt dat vrijwel zeker niet aan
afwijkingen in het telgedrag, maar aan de telopdrachten.
En dat is in principe via een additionele analyse snel te
achterhalen.  Wat je dus ziet is dat het Bohr-denken in dit
geval een duur experiment onnodig maakt, dat het opschaalt
(hoe meer hoe beter zelfs), en dat je door onzekerheid
gewoon te accepteren, juist aan zekerheid wint!

Dit geldt niet alleen voor functiepunten maar ook voor
andere belangrijke KPIs zoals kosten, doorlooptijden,
kosten per functiepunt, en zo verder.  Allemaal KPIs
waarvan we al tijden veel meer moeten snappen.  Als je daar
dus grip op wilt krijgen bereik je met Bohr-denken meer dan
met de Einstein-view.  IT plays dice, en daar kun je maar
beter gebruik van maken!

X

Meer weten over de wondere wereld van ICT 
in Jip en Janneke taal? Ga dan naar de
knipselkrant van Chris Verhoef

Prof. dr Chris Verhoef is hoogleraar informatica 
aan de Vrije Universiteit in Amsterdam.  Hij schrijft      
maandelijks een column in AG II.  Deze tekst is 
copyright SDU.  Niets van deze uitgave mag zonder
schriftelijke toestemming van de uitgever worden
overgenomen of worden gepubliceerd.