Ansvar för kvalitet

Något som alla verksamheter som köper in eller utvecklar egen mjukvara brottas med är frågan kan vi släppa systemet i produktion?

För att få svar på frågan löser man ofta detta genom att läsa och utvärdera testrapporter från utvecklingsteamet och/eller så lägger man mycket tid någon eller några av de senare testtyperna business acceptance test, user acceptance test, business verification, business validation.

Många fina ord och det finns säkert fina förklaringar vad var och en av dessa betyder men vad jag upplevt är att det egentligen bara är ord för samma sak, men skrämmande olika för verksamheten och utvecklingsteamet.

Verksamheten vill säkerställa att de fick vad de ville ha och att det inte finns en massa buggar som IT missat som de måste leva med sedan.

Utvecklingsteamet vill säkerställa att man friskriver sig allt ansvar för releasen i framtiden.

Frågan jag ställer mig är hur juste det egentligen är att lämna över ansvaret på personer som väldigt sällan har den erfarenhet eller kunskap som krävs för att kunna ta ansvaret.

Hur många av dem som beställer systemen har kunskaper inom systemvetenskap eller funderar över teorier kring testdesign?

Som jag ser det måste vi dela upp ansvaret mellan de två grupperna.

Utvecklingsteamet är ansvariga för att systemet fungerar rent tekniskt så som:

 

  • Går att installera
  • Gamla funktioner fortfarande fungerar.
  • Rena "felkodningsbuggar" (som t.ex oändliga loopar, variabler som aldrig sparas osv)
  • Last och prestanda (efter de krav som finns)

 

Verksamheten är ansvariga för att säkerställa att det utvecklade systemet löser de behov som finns och kommer kunna användas av de tilltänkta användarna.

Det kan kännas orättvist att lasta över så mycket på utvecklingsteamet men jag säger inte att de skall göra det gratis. Självklart måste verksamheten förstå att det kostar tid att bygga in kvalité men det är något jag inte går in på idag.

-
Magnus Carlsson är konsult på Inceptive med passion för att på bästa sätt hjälpa företag med sin utveckling av IT-system.