KPI’s voor uitbesteding software zijn essentieel voor het verbeteren van de productiviteit, softwarekwaliteit en klanttevredenheid in uitbestede ontwikkelingsprojecten. Wie software ontwikkelt samen met een externe IT-partner, wil graag controle houden tijdens dit proces. Welke KPI’s kun je toepassen om uitbestede softwareontwikkeling tot een succes te maken? Nearshore softwareontwikkelaar NetRom en Software Improvement Group (SIG) leggen in dit blogartikel uit hoe je dit proces in goede banen kunt leiden.
NetRom en SIG werken al langetijd samen voor verschillende klanten en delen een gezamenlijke visie op KPI’s bij het uitbesteden van softwareontwikkeling. Dit artikel helpt je op weg bij het nadenken over KPI’s tijdens het managen van zowel het proces als het eindresultaat van softwareontwikkeling door een externe partij. We gaan in op de productiviteit van het ontwikkelproces, de kwaliteit van de code, de gezondheid van het ontwikkelproces en de klanttevredenheid.
Allereerst: KPI’s zijn nooit een doel op zich, maar moeten inzicht geven in de impact van je acties. In welke mate heb je de beoogde doelen bereikt? Bruikbare KPI’s geven je de mogelijkheid om bij te sturen. Het praktisch bruikbaar maken van IT-gerelateerde KPI’s vraagt soms wat extra denkwerk over het échte eindresultaat dat je wil bereiken. In plaats van het meten van ‘uptime van een applicatie’ kan je ook denken aan ‘geen vluchtvertragingen door IT’, zoals aangehaald door Marco Gianotten van Giarte in de IT Xperience monitor 2021.
Metrics voor productiviteit
We beginnen bij de productiviteit van een software-ontwikkelproject – de snelheid waarmee je software tot stand komt. De productiviteit is bepalend voor meer strategische businessdoelstellingen zoals een snelle time-to-market. Ook kan je monitoren wat er wordt opgeleverd ten opzichte van de planning en in de gaten houden in hoeverre er functionaliteit wordt opgeleverd. Deze variabelen zijn relevant voor zowel de product owner als het ontwikkelteam.
Hoe meet je productiviteit?
Bij het meten van de productiviteit zul je in de praktijk het meeste profijt hebben van drie KPI’s: sprint burndown, team velocity en release burndown.
- Sprint burndown is een grafische weergave van de geschatte resterende tijd voor een bepaalde periode tijdens een sprint. Deze KPI helpt om te voorspellen wanneer al het werk af zal zijn en helpt tevens bij het bewaken van de scope creep.
- Team velocity staat voor het gemiddeld aantal user stories dat is voltooid door het team over de sprints heen. Met deze KPI krijg je inzicht over het gehele project: past het in het aantal geplande sprints? Let op: deze KPI is te subjectief om teams onderling te vergelijken.
- Release burndown geeft inzicht in de voortgang van de release door de resterende werklast aan het einde van elke sprint uit te zetten tegen de geplande werklast. Die resterende hoeveelheid werk kan je uitdrukken in storypoints, ideale dagen, teamdagen, et cetera.
Metrics voor de kwaliteit van code
De tweede groep KPI’s heeft betrekking op de kwaliteit van de software. Sommige managers denken dat hoge softwarekwaliteit op gespannen voet staat met functionaliteit en snelheid, maar het tegendeel is waar. Slechte softwarekwaliteit leidt tot hoge onderhoudskosten en een vertraagde time-to-market. Hoogwaardige code is daarentegen beter te beheren en te onderhouden, veiliger en kosten-efficiënter; het zorgt voor een lagere TCO. Veel metrics zijn algemene meetwaarden, in tegenstelling tot KPI’s die specifiek gericht zijn op strategische doelen. Metrics kun je geautomatiseerd meten, zodat ontwikkelaars automatisch waarschuwingen ontvangen als drempelwaarden op het gebied van kwaliteit bijvoorbeeld worden overschreden.
Hoe meet je softwarekwaliteit?
ISO 25010 is een wereldwijde standaard voor softwarekwaliteit die de kwaliteitskarakteristieken van software op acht verschillende aspecten meet. Waar ISO 25010 beschrijft wat kwaliteit is, is ISO 25002 de norm die beschrijft hoe je die kwaliteit beoordeelt. SIG is het eerste volledig gecertificeerde bedrijf ter wereld dat volgens de ISO 25010 standaard meet. We geven hier de belangrijkste variabelen (en sub variabelen) die een rol spelen bij het meten en beoordelen van softwarekwaliteit.
Beheersbaarheid
Beheersbaarheid (het gemak om software te onderhouden) valt uiteen in vijf onderdelen: analyseerbaarheid, wijzigbaarheid, testbaarheid, modulariteit en herbruikbaarheid. Die onderdelen kan je zien als een weergave van de fasen die worden doorlopen bij het uitvoeren van onderhoudswerkzaamheden.
Modulariteit verbetert de beheersbaarheid in de vier andere fasen.
- Beschikbaarheid is de mate waarin een systeem operationeel en toegankelijk is wanneer het nodig is voor gebruik.
- Volwassenheid verwijst naar de mate waarin een systeem voldoet aan de behoefte aan betrouwbaarheid bij normaal gebruik.
- Fouttolerantie laat zien of een systeem werkt zoals bedoeld ondanks de aanwezigheid van fouten.
- Overdraagbaarheid (portabiliteit) is belangrijk voor de mate waarin software effectief en efficiënt kan worden aangepast voor nieuwe vormen van hardware of software.
- Vervangbaarheid gaat over de mate waarin een product een ander gespecificeerd softwareproduct kan vervangen.
Prestaties in relatie tot softwarekwaliteit
Bij softwarekwaliteit spelen ook de prestaties een belangrijke rol. Denk hierbij aan:
- Responstijd: voldoen snelheid en verwerkingscapaciteit van het systeem aan de vereisten?
- Capaciteit: wat is de maximale groei die mogelijk is binnen de vereisten voor responstijd?
- Resources: hoeveel bronnen zijn nodig om de softwareprestaties te laten voldoen aan de eisen voor responssnelheid en capaciteit?
Onderdeel van ISO 25010 is ook de bruikbaarheid (usability) van software. Het gaat dan om de mate waarin een oplossing kan worden gebruikt door gebruikers om specifieke doelen te bereiken. Hierbij speelt, naast effectiviteit en efficiency, ook gebruikerstevredenheid een rol.
Essentieel zijn uiteraard de eigenschappen rondom beveiliging. Vaste onderdelen hiervan zijn de integriteit van de software (de mate waarin software ongeoorloofde toegang tot applicaties en gegevens kan voorkomen) en de zogenaamde non-repudiation en accountability. Deze twee verwijzen naar het kunnen aantonen van acties of gebeurtenissen en het onweerlegbaar kunnen traceren van acties naar de entiteit die de acties uitvoert.
Metrics voor de gezondheid van je software ontwikkelproces?
Naast productiviteit van ontwikkelteams en de kwaliteit van hun opgeleverde producten kan je ook kijken naar het proces van softwareontwikkeling en software implementatie.
- De doorlooptijd is de tijd tussen de start en de uitvoering van een proces. De doorlooptijd zegt ook iets over een partnerschap, waar vertragende factoren kunnen ontstaan of in ieder geval besproken en opgelost moeten worden.
- De cyclustijd geeft aan hoeveel tijd een team besteedt aan het werken aan een specifieke taak. Het is een indicatie van de snelheid waarmee het team nieuwe functionaliteit oplevert aan de klant.
- De derde en laatste gezondheidsindicator is flow efficiency ofwel het percentage van de tijd dat er actief aan je backlog items wordt gewerkt vergeleken met de totale beschikbare tijd. Een lage flow efficiency kan wijzen op stagnaties in het proces – bijvoorbeeld een ontwikkelaar die moet wachten om een functie te kunnen afronden.
Metrics voor klanttevredenheid
Naar onze mening zijn er in een partnerschap vier belangrijke factoren die de klanttevredenheid bepalen.
‘Doen wat je belooft’ is het vertrekpunt. Hierbij geldt de eerste wet van softwareontwikkeling: ‘Je kunt het goed, snel, of goedkoop doen, maar je kunt er maar twee kiezen’. Verantwoordelijkheid nemen voor toezeggingen op sprintniveau is volgens ons de manier om te leveren wat je belooft. Om dit continu te monitoren kan je een metric zoals de sprint burndown gebruiken.
De tweede succesfactor voor klanttevredenheid ligt in het behoud van medewerkers. Een hoog verloop is funest voor de continuïteit van je projecten en het behoud van kennis binnen je teams.
De derde factor is het beschikken over en toepassen van domeinkennis. Dat draagt bij aan de totstandkoming van software met een geweldige gebruikerservaring. Onze tip: vraag je ontwikkelpartner om voorstellen waarmee je de domeinexpertise van developers kunt testen.
En tot slot: doe geen concessies aan kwaliteit. Dat draagt bij aan toekomstbestendige producten, die betrouwbaar en veilig zijn en gemakkelijk kan worden aangepast.
Aan de slag met KPI’s? Gebruik ze in de dialoog met je partner
Tot slot: binnen een succesvol partnership bepaal je samen welke KPI’s je wilt toepassen Ook je product owners moeten met de gekozen metrics en KPI’s kunnen werken. Ook moet het team de metrics over codekwaliteit en architectuurbeslissingen kunnen valideren en interpreteren in samenwerking met een architect. Het is verstandig om afspraken met je ontwikkelpartner te maken over welke standaarden worden toegepast voor de kwaliteit van code. Dit kun je aanvullen met externe audits of certificering zoals de SIG TÜViT certificering. En als laatste: maak gebruik van KPI’s in de doorlopende dialoog, in sprint retrospectieven en in sprint cyclus evaluaties.
Wil je meer weten? Download onze whitepaper!
Voor wie dieper wil duiken in het gebruik van KPI’s bij softwareontwikkeling, biedt NetRom Software een uitgebreide whitepaper aan. Vul je naam en e-mailadres in en ontvang de whitepaper “KPI’s for outsourced software development” .
Op zoek naar betrouwbare softwareontwikkelingsdiensten?
Ontdek hoe we kunnen helpen.
- Anneke van der Putten
- Call: +31 (0)30 782 0111
- anneke@netrom.nl
- Ronald Bouwmeister
- Call: +31 (0)30 782 0117
- ronald@netrom.nl