Web Analytics

Wetenschappelijke bewijzen voor de grote invloed van softwarekwaliteit op kosten

September 2010
Kwalitatief slechte software laat zich niet eenvoudig aanpassen. Dit probleem komt aan het licht bij het repareren van bugs en bij de implementatie van uitbreidingen. Zodra software complexer wordt, of slecht gestructureerd of te zeer verweven, dan is er steeds meer tijd en inspanning nodig om wijzigingen door te voeren. Hoeveel kan er worden bespaard op tijd en inspanning bij het verbeteren van de kwaliteit? In samenwerking met de TU Delft en de Universiteit van Amsterdam heeft de onderzoeksafdeling van SIG hierop antwoorden gevonden.
 
Het onderzoek heeft zich gericht op de onderhoudshistorie van open source systemen. We hebben bepaald hoeveel issues (correcties en uitbreidingen) de ontwikkelaars en onderhoudsmedewerkers van deze systemen konden aanpakken, hoe snel zij dat deden en hoeveel inspanning daarvoor nodig was. Aan de hand hiervan hebben 4 indicatoren berekend voor de prestaties bij de afhandeling van issues:

Tijd   =
Hoeveel tijd verstrijkt er tussen het indienen en het oplossen van issues?
Output   = Hoeveel issues worden er opgelost per maand per 100,000 coderegels?
Productiviteit   = Hoeveel issues worden er opgelost per maand per ontwikkelaar?
Efficiency   = Hoeveel van de opgeloste issues zijn van het type enhancement?
 
Voor meer dan 150 versies van de bestudeerde open source systemen werden de waardes van deze indicatoren berekend, samen met een sterrenscore volgens het SIG kwaliteitsmodel. De omvang van de verbeteringen die we vonden voor elke afzonderlijke indicator wordt getoond in 5 grafieken.
 
Laten we eens kijken wat deze grafieken ons vertellen.
 
Chart 1 and 2
De oplossingsduur van issues neemt exponentieel toe als de kwaliteit daalt
De grafieken 1 en 2 tonen dat de oplossingstijden bij defecten en verbeteringen exponentieel toenemen bij elke daling in het sterrenniveau van de broncode. Het oplossen van een defect in een 4-sterren systeem duurt bijvoorbeeld gemiddeld korter dan een week (6,5 dag), maar in een 2-sterren systeem duurt dat langer dan 3 weken (22,4 dagen).

Efficiency daalt 13 procentpunten per kwaliteitsniveau
Chart 3   Grafiek 3 laat zien dat in systemen met een gemiddelde kwaliteit (3 sterren) de ontwikkelaars of onderhoudsmedewerkers 3 bugs moeten repareren voor iedere uitbreiding die ze uitvoeren, waarbij de efficiency op 25% komt. Zodra de codekwaliteit daalt tot 2 sterren, daalt ook de efficiency tot 13% (ongeveer 8 defecten per uitbreiding). Bij 4-sterren systemen echter, schiet de efficiency omhoog naar 39% (ongeveer 2,5 defect per uitbreiding).

De output van issues daalt mee bij een dalend kwaliteitsniveau, maar vlakt daarna af
Chart 4   Grafiek 4 laat zien dat de output van issues sterk afneemt van 56 opgeloste issues per maand per 100,000 regels code tot ongeveer 9 opgeloste issues (een daling tot minder dan één zesde) zodra de kwaliteit daalt van 4 sterren naar 3 sterren. Zodra de kwaliteit nog weer een ster daalt, dan neemt het aantal opgeloste issues nog maar een klein beetje af - tot ongeveer 8 issues per maand.

De productiviteit neemt per kwaliteitsniveau sterk toe
Chart 5   Grafiek 5 laat ons zien dat er ongeveer 1.2 issues per developer, per maand worden opgelost voor systemen met een 3-sterren kwaliteitsniveau. Bij 4-sterrensystemen ligt productiviteit twee maal zo hoog op 2.3 issues per maand. In een 2-sterrensysteem wordt er nog maar 1/5de issue per developer, per maand opgelost (vijfvoudige afname). Met andere woorden: zowel productiviteit en output nemen af  bij een daling in de waardering van 4 sterren naar 3 sterren. Maar anders dan bij de output van issues, blijft de productiviteit wel afnemen bij de daling van 3-sterren naar 2-sterren.

De gevolgen als u 4-sterren software eist
Wij raden onze klanten aan om 4-sterren software te eisen van hun ontwikkelingsteam of van hun externe leveranciers. Deze gezamenlijke studie van de TU Delft en de Universiteit van Amsterdam biedt een indicatie van de impact die een dergelijke kwaliteitseis kan hebben. In vergelijking met een systeem van ondermaatse kwaliteit (2-sterren) kun je concluderen dat:

  • issues 3x zo snel worden opgelost,
  • de efficiency met 26 procentpunt toeneemt,
  • de omzet 7 maal zo groot is, en
  • de productiviteit bijna 11 keer zo hoog is.

Uiteraard spelen er veel andere factoren een rol en die kunnen van invloed zijn op de exacte voordelen voor een specifiek project. Wij houden u op de hoogte van ons voortgaande onderzoek om deze factoren te identificeren en te kwalificeren. In ieder geval heeft ons onderzoek tot nu toe al aangetoond dat de star rating van het SIG kwaliteitsmodel een sterke voorspellende waarde heeft voor de onderhoudslast die bij een bepaald systeem kan worden verwacht.

Bronnen
  • The Influence of Software Maintainability on Issue Handling, Bart Luijten, doctoraalscriptie, Technische Universiteit Delft, 2010
  • Indicators of Issue Handling Efficiency and their Relation to Software Maintainability, Dennis Bijlsma, doctoraalscriptie, Universiteit van Amsterdam, 2010

Copyright: © 2014 Software Improvement Group