Een goede raming voor een IT-project kan een flinke worsteling zijn. En de resultaten zijn zeker niet altijd bevredigend voor leverancier en klant. Het zou veel schelen als je aan de vooravond van een project in de toekomst kunt kijken. De snelle ontwikkeling van machine learning en neurale netwerken bieden op dat vlak misschien wel perspectief. Hoewel teams wereldwijd al tientallen jaren met data analytics experimenteren, zorgen de beschikbaarheid van gigantische datasets en onuitputtelijke rekenkracht voor steeds overtuigender resultaten. Is die ontwikkeling ook slim te benutten voor de raming van IT-projecten?
Binnen data analytics is machine learning een methode om complexe modellen en algoritmes te ontdekken voor doelgerichte voorspellingen. Machine learning bouwt automatisch voorspellende waarden op basis van patronen in bestaande data. Neurale netwerken zijn een onderdeel van machine learning. Deze netwerken proberen onze hersencellen en de vele onderlinge verbindingen na te bootsen. Neurale netwerken gebruiken vooralsnog verborgen lagen om complexe relaties tussen input en de verwachte output te modelleren. Als je kijkt hoe een neuraal netwerk opgebouwd is, zijn er weinig raakvlakken met de manier waarop nog veel organisaties een projectraming maken. Om dat te verbeteren zijn vier stappen die machine learning altijd neemt zeer relevant.
Een neuraal netwerk werkt op basis van data. Bijvoorbeeld een grote dataset die eerdere projecten beschrijft en labelt met de inspanning die het kostte om het gevraagde te leveren. Geavanceerde modellen bouwen vervolgens een ‘theorie’. Dit is een wiskundige functie die de vastgelegde inspanning voorspelt. De hoop is dat deze functie nauwkeurig voorspelt wat er precies nodig is voor een nieuw project.
In de wereld van projecten staat de zoektocht naar de belangrijkste ‘estimator’ centraal. Hoe kun je de benodigde inspanning en prijs adequaat schatten? In de praktijk gebeurt dat meestal met een enorm Excel-bestand vol invloedsfactoren, zoals technologie, de sector, hoeveelheid gebruikers, integratie et cetera. Het doel is om de essentie te vangen en inspanningen voor een succesvol project te voorspellen. Machine learning toont aan dat we te weinig aandacht besteden aan het verzamelen van specifieke data voor de projectraming. Uitgaan van aannames op basis van eerdere ervaringen met verschillende projecten bij diverse klanten is misschien niet de beste aanpak. Toch gebeurt dat nu heel vaak bij projectramingen.
In neurale netwerken is (over)generalisatie niet het doel. Als er voldoende data is om het algoritme te voeden, is het misschien zelfs verstandiger om bijvoorbeeld data van één project in een specifieke branche te kiezen. Machine learning bouwt automatisch voorspellende waarden door patronen in bestaande data te zoeken. Als je dus nieuwe data krijgt, is het geen probleem om de opgebouwde functie weg te gooien en weer opnieuw te beginnen. Voor een goede projectraming is het zelfs slimmer om een nieuwe estimator voor iedere sector, technologie en zelfs project te maken. Zeker als er genoeg data is. Dit is nog geen gemeengoed als organisaties een projectraming maken.
Als een neuraal netwerk een functie heeft opgebouwd om input en output naast elkaar te leggen, wordt deze uitkomst getest met een kleiner deel van de dataset. Deze set is al vooraf bepaald. Het idee is verrassend eenvoudig. Het doel is te bepalen of de functie voldoende generaliseert en inspanningen kan voorspellen die we nog niet eerder zagen. Deze aanpak onderstreept dat het onverstandig is om een complex, langdurig project te ramen zonder een prototype of minimal viable product (MVP). Dat is de manier om te testen of de voorspelde inspanning voldoende is om de gewenste oplossing te leveren.
Het is ook logisch om aannames te toetsen. Maar vaak gebeurt het niet vanwege de dynamiek tussen de verkoper en leverancier. Zij willen beiden niet toegeven dat ze eigenlijk hopen te profiteren van een verkeerde inschatting. Machine learning toont aan dat het onprofessioneel is om een raming niet te toetsen.
Neurale netwerken kennen de termen ‘underfitting’ en ‘overfitting’ data.
In het eerste geval bouw je een functie waarvan onduidelijk is of de voorspellende waarde correct is. Door niet op data gebaseerde aannames probeer je dan de voorspelling te verbeteren. Overfitting is de andere kant van de medaille. De estimator voorspelt de inspanningen voor een project dan juist zeer gedetailleerd. Het risico hierbij is dat je ook irrelevante informatie meeneemt in de overweging. Dit is te voorkomen door data handmatig op te schonen of data te kwalificeren en er verschillend gewicht aan toe te kennen.
Als je al deze stappen doorloopt en de juiste datasets hebt, is de kans groot dat algoritmes helpen een project inderdaad beter te ramen. Algoritmes hebben als voordeel dat ze grotere datasets kunnen verwerken dan mensen. Zelfs de meest ervaren consultant, die al heel veel projecten geraamd en geleid heeft, is een amateur in vergelijking met een algoritme.
Het is cruciaal om te beseffen dat een estimate eigenlijk altijd globaal is. Het is en blijft een inschatting. Voor het ramen van complexe producten of oplossingen zijn schattingen altijd een risico. Als we dat erkennen, kunnen we veel beter met onzekerheden omgaan. Projectinschattingen mislukken om dezelfde redenen als voorspellingen: we hebben niet genoeg data om de toekomst te voorspellen. Machine learning kan ons in ieder geval laten zien waar nog verbeterkansen liggen.