Gebruik dit model om te voorspellen wanneer software klaar is
geplaatst door Marco Dumont op 27 april 2017
Iedereen kent wel een ICT-project dat eindeloos is uitgelopen. Zelf ben ik deelgenoot geweest van een project voor een grote vervoerder dat 10 jaar langer heeft geduurd dan initieel gepland. ICT-projecten bij de overheid duren, als we de commissie Elias mogen geloven, regelmatig veel langer dan geraamd. Ook de wetenschap heeft geregistreerd dat 69% van de ICT-projecten later dan gepland afgerond wordt. Vertraging is dus meer schering dan inslag! Daarom is het handig om vroeg in het project te kunnen voorspellen wanneer software klaar is en of de eindstreep opgeschoven moet worden. In het vorige artikel bespraken we de Rayleigh curve om de kans op fouten te berekenen. In dit artikel deel ik een andere methode om uitloop te voorspellen.
Klopt de terugverdientijd in de business case nog?
Een groot aantal business cases gaat de mist in als het om het op tijd afronden gaat. Business cases zijn vaak gebaseerd op terugverdientijd. Het is dus zaak om vroeg in een project te kunnen voorspellen of dat we de eindstreep moeten opschuiven en zo ja, met hoeveel tijd. Zo kun je controleren of de aannames in de businesscase nog kloppen.
Maatwerk software in het hart van de organisatie
Veel ICT-projecten zijn software ontwikkelprojecten en daarop richt ik me in deze blog. De automatisering van processen realiseert een belangrijk deel van de innovatie en efficiënte van organisaties. Maatwerk software komt daarom steeds meer in het hart te staan van organisaties. Met dat in het achterhoofd wordt het juist voorspellen van de voortgang van een software ontwikkelproject essentieel voor het voorbestaan van een organisatie.
De toekomst voorspellen is ingewikkeld. Je kunt op vier manieren tot een voorspelling komen:
2. rekenen met onzekerheid
3. een model dat overeenkomt met de werkelijkheid
4. verbanden leren
Elke methode heeft zijn eigen voor- en nadelen. In deze blog ga ik in op het voorspellen wanneer software klaar is om de einddatum van een softwareproject te bepalen. Dit doe ik aan de hand van een model zoals gepionierd door Verhulst: het model van organische groei. Mijn eigen onderzoek heeft de toepasbaarheid van dit model aangetoond.
Softwareprojecten ontwikkelen zich volgens een s-curve
We kozen voor het model van groei, omdat uit een andere projectmanagement techniek - Earned Value Management (EVA) - is gebleken dat projecten zich ontwikkelen volgens een s-curve. Deze s-curve vormt de basis van ons model. De input voor deze s-curve van EVA zijn de gemaakte kosten in een project. Het model van deze blog heeft als inputregels sourcecode en complexiteit. We gebruiken twee metingen van sourcecode die al sinds eind jaren zeventig worden gerelateerd aan performance en dus te relateren aan de kosten van een project.
Om ervoor te zorgen dat regels sourcecode en complexiteit te relateren zijn aan de kosten is er een index gemaakt gebaseerd op beide. Deze index (P-index) staat gelijk aan het aantal regels sourcecode (inclusief commentaar) en de complexiteit in het kwadraat. De reden hiervoor is dat de correlatie tussen complexiteit en performance twee keer zo groot is dat de correlatie van regels sourcecode en performance.
Voorbeeldproject om 'hoe' te verklaren
Om de 'hoe' in dit model te verklaren, werk ik een voorbeeldproject uit: DURAdoIT. Dat is een project waarin een aantal organisaties een joint-venture hebben om de administratie van een primair proces vergaand te automatiseren. Er is twee jaar ontwikkeltijd uitgetrokken in de businesscase en het project draait reeds enkele maanden. In deze maanden zijn er 6 sprints voltooid. Men ontwikkelt op zijn Scrum's. Table 1 geeft een beeld van de index in de eerste sprints. Het totale aantal sprints zou uitkomen op 30. Door nu gebruik te maken van de P-Index tabel en van de logaritmische functie (1), kunnen we voorspellen hoeveel sprints er nodig zijn.
Hierbij staat indexklaar voor de waarde aan het einde van het project, k voor de helling hoek, sp voor de sprint en sphalverwege de helft van het aantal sprints nodig (15). Dit getal maakt niet uit: twee functies met twee onbekende parameters, je mag één van de parameters kiezen. Door nu de index van de sprints in te vullen kan k worden berekend. Neem hiervoor bijvoorbeeld sprint 1 en sprint 3. Die geven een k van 3,04x10-7 wat na invullen een indexklaar geeft van 32 sprints. In dit voorbeeld loopt het project dus uit, wat na drie sprints te bepalen is. Door nu hetzelfde te herhalen voor sprint 1 en sprint 6 krijg je steeds meer inzicht.
Door slim te kijken naar het software ontwikkelproces kun je voorspellingen maken. Valori Software Improvement (VSI) helpt je graag bij het inzichtelijk maken van de voortgang van software ontwikkelprojecten. Om inzicht te krijgen in de haalbaarheid van een project kun je gebruik maken van modellen die de onzekerheid inzichtelijk maken met een index. In ons volgende blog vertellen we daarover meer. Maak jij al gebruik van een methode om de voortgang en uitloop van een project te voorspellen? Deel je ervaringen!