SQALE - hur kvaliteten påverkar livscykelkostnaden

I många beslut om en programvaruprodukt är information om produktens kvalitet en vital del för att säkra en långsiktig framgång. SQALE ger dig en tydlig bild av programvarans inre kvalitet och en uppfattning om kostnaden att åtgärda existerande brister.

En programvaras kvalitet måste vara hanterad – kunskap om faktisk kvalitet, önskad kvalitet och planerade åtgärder för att nå önskad kvalitet.

Programvarukvalitet inkluderar både externa och interna aspekter.

  • Extern kvalitet definieras genom egenskaper som funktionalitet, användarvänlighet, prestanda och felfrekvens under drift.
  • Intern kvalitet definieras genom egenskaper som testbarhet, ändringsbarhet, återanvändningsbarhet och underhållsbarhet.

Den externa kvaliteten är vanligtvis åtgärdad och under kontroll eftersom den ligger nära kundens upplevda kvalitet. Den inre kvaliteten är ofta förbisedd eftersom den är svårare att synliggöra och mäta. Speciellt gäller det interna kvalitetsaspekter vars effekt märks mest senare i produktens livscykel. En god intern kvalitet reducerar inte bara framtida kostnader för produkten, det reducerar också kostnaden för att nå den önskade externa kvaliteten.

SQALE (Software Quantitative Assessment based on Lifecycle Expectations) ger en möjlighet att synliggöra och objektivt mäta, och därmed också att styra, den inre kvaliteten i programvaruprodukter.

Vad är det bra till?

Det finns många situationer där objektiv insyn i programvarans kvalitet kan vara avgörande:

  • Kontrollera produktkvalitet för utlagd (”outsourced”) utveckling
  • Beslut kring omstrukturering av produkt (”refactoring”)
  • Val mellan liknande produkter
  • Uppföljning av förbättringsarbete
  • Utvärdera Open Source (”FOSS”) projekt
  • Due diligence av produkt inför uppköp eller investering

I dessa, och naturligtvis i det löpande arbetet med att upprätthålla eller nå en viss kvalitetsnivå, är kunskap om den faktiska kvaliteten nödvändig för att fatta rätt beslut.

Utmaningar

Det finns många utmaningar med att definiera och nå önskad produktkvalitet. Några exempel är:

  • Balansen mellan kortsiktighet och långsiktighet. Åtgärder för att nå kortsiktiga mål, t ex en release, kan ge långsiktig kostnad för att hålla önskad kvalitetsnivå. SQALE hjälper till att visa den framtida kostnad som kan bli en konsekvens av kortsiktiga beslut.
  • Svårigheten att mäta. Eftersom allas arbete påverkar kvaliteten så är det svårt att upptäcka en kvalitetsförsämring i tid om man endast bevakar externa kvalitetsaspekter. SQALE hjälper till att hitta tidigt mätbara kvalitetsindikatorer.

Vad är det?

SQALE bygger på en kvalitetsmodell, verktygsbaserade mätningar av olika kvalitetsegenskaper samt en analys av utfallet av dessa mätningar i relation till kvalitetsmodellen.

  
 
 

Kvalitetsmodellen byggs upp av sex kvalitetsegenskaper i lager baserad på programvarans livscykel. Till varje kvalitetsegenskap finns ett antal underliggande egenskaper som definieras genom en eller flera kvalitetskrav som skall uppfyllas. Avståndet till kvalitetsmålen mäts genom att en åtgärdsfaktor införs för respektive kvalitetskrav. Detta resulterar i ett index som motsvarar det arbete som krävs för att åtgärda avvikelse från kvalitetsmålen.

Var kommer det ifrån?

SQALE utvecklades av DNV 2006 baserat på ISO 9126 samt annat arbete om kvalitet av bl a Boehm och McCall. ISO 9126 täcker in både extern och intern kvalitet medan SQALE fokuserar på den interna kvaliteten.

Mätningarna i SQALE baseras på statisk kodanalys (dvs. analys utan att exekvera koden). Statisk kodanalys har används sedan slutet av 1970-talet då Stephen C. Johnson skapade ”lint” för att hitta potentiella fel under utvecklandet av operativsystemet UNIX. Sedan dess har en mängd olika verktyg skapats och de är oftast inriktade på en delmängd av alla kodrelaterade kvalitetsaspekter.

Vår erfarenhet

DNV har under lång tid arbetat med kvalitet i många olika situationer. SQALE har framgångsrikt används sedan 2006 och vi har analyserat många miljoner rader kod från olika branscher. Några exempel:

  • Telecom (4,7 miljoner rader kod, C/C++). Utvärdering av liknande produkter.
  • Fordonsindustri (4,5 miljoner rader kod, C++). Utvärdering av underleverantör samt bas för arbete med att ta fram generell kvalitetsmodell gentemot underleverantörer.
  • Automation (0,5 miljoner rader kod, Java). Definition av kvalitetsmodell samt bas för förbättringsarbete.

Vi vet att det finns mycket att vinna på en väl definierad kvalitetsmodell med kontinuerlig uppföljning och förbättring.

Läs mera

För en djupare genomgång så läs vårt white paper om SQALE. Vill du veta mer om kvalitet för programvara i allmänhet så kan vi rekommendera:

Vi kan också rekommendera följande böcker:

  • Characteristics of Software Quality av Boehm, B. W. et al.
  • Factors in Software Quality av McCall, J. A. et al.
  • Software Reuse: A Holistic Approach av E.A. Karlsson [bokus.com]
  • The ROI from Software Quality av Khaled El Emam [bokus.com]