Kvalitetsaspekter

När man leder och ansvarar för systemutvecklingsprojekt så är det viktigt att förstå vilken kvalitet som efterfrågas för att kunna facilitera därefter, det är därför viktigt för projektledare att förstå olika aspekter av kvalitet och att kvalitet betyder olika saker baserat på vem man frågar i projektet.

Jag har ibland hört sponsorer använder orden ”good enough” i kvalitetskontext vilket jag har svårt att relatera till då min utgångspunkt är att alla i projektet gör det bästa man kan för att leverera så hög kvalitet man kan. Genom att utvärdera kvalitet så utvärderar man värde, högre kvalitet är samma sak som högre värde. Direktivet man hör är ju således att man skall leverera tillräckligt högt värde genom att levererar tillräckligt bra kvalitet, frågan blir istället till vem skall man leverera värde till?

Funktionell kvalitet är den vanligaste mätningen av kvalitet och syftar till specifika krav man har på en mjukvara som ofta finns listade i user stories och i form av en backlog. Genom att skapa en applikation som har få buggar och levererar enligt specifikation så uppnår man hög funktionell kvalitet. Eftersom det är förhållandevis enkelt att testa och utvärdera denna form av kvalitet så blir det oftast här man fokuserar när man värderar kvalitet.

Strukturell kvalitet är en form av kvalitet som utvecklingsgruppen värderar högt och ofta ser som ett stort värde. Genom att ha en bra struktur i koden och följer ”best practices” så kan man återanvända och undvika att gå in i samma problemgränd som andra professionella utvecklare av erfarenhet rekommenderar att man inte repeterar samma mönster. Kvalitet i struktur är svårt att utvärdera och har ofta en väldigt komplex struktur i sig och kräver stor insikt för att värdera vilket kan leda till att detta felaktigt förbises som en kvalitet som inte ger värde.

Process kvaliteten är hela kvaliteten kring utvecklingscykeln och hur bra man mötet budget och leveranstider.  Genom att optimera denna kvalitet så ökar kvaliteten implicit även på andra kvaliteter.

Det går inte att säga vilken form av kvalitet som är viktigast. Det är människor i team som utvecklar mjukvaror och individer ser på kvalitet från olika aspekter. Min aspekt är att människor är det viktigaste och för att uppnå maximal kvalitet så görs det genom människor som samarbetar och inte genom funktioner, strukturer eller processer.