Vad är en kravspecifikation?

En Kravspecifikation, eller kravspec som det ofta förkortas, är inom mjukvaruutveckling resultatet av en rad processer vars syfte är att samla in och sammanställa information som beskriver hur ett system eller en applikation skall bete sig. Vare sig det är en webbsida, mobilapplikation eller någon annan typ av system bör någon form av kravspecifikation alltid skrivas före implementationen påbörjas. Detta är i synnerhet viktigt om användaren och utvecklaren består av två olika parter.
kravspecifikation

Varför är det så viktigt med en kravspecifikation?

En kravspecifikation har i uppgift att förse de inblandade parterna (t.ex. användare och utvecklare) med en gemensam bild av hur systemet skall se ut. Dessutom är kravspecen mycket viktig under både implementeringen av systemet och senare under testfasen, där systemets funktionalitet jämförs med de fördefinierade kraven. Det är dock viktigt att påpeka att en kravspecifikation aldrig kan ersätta kontinuerlig kommunikation under utvecklingens alla faser mellan de parter som är inblandade.

Dessutom kan en kravspecifikation i vissa fall även agera som ett offertdokument, och inkludera leveranstid såväl som kostnadsestimeringar från utvecklarnas sida. Det är viktigt att dokumentet hålls uppdaterat under utvecklingens gång då nya krav på funktionalitet kan förekomma från kundens sida, och även eventuella förseningar och implementationsproblem från utvecklarnas sida.

Hur mycket tid ska man ägna åt kravspecifikation?

Eftersom alla projekt är till viss del unika, är det väldigt svårt att förutsäga hur mycket tid man ska ägna åt kravspecifikationen. Det finns däremot statistik från NASA som visar ett tydligt samband mellan ett projekts totalkostnad och andelen resurser som investerades i de inledande faserna i mjukvaruutvecklingen (inkl. kravhantering):

När <5% av budgeten allokerades till planeringsfasen, överskreds den tänka slutkostnaden med mellan 40% till 170%. Däremot när 10% till 20% allokerades till planeringsfasen överskreds den planerade slutkostnaden med mindre än 30%.

Beroende på komplexiteten hos det önskade systemet, finns det olika riktlinjer när det gäller kravspecifikationens abstraktionsnivå. Här på sajten ger vi tips på att skriva olika typer av kravspecifikationer genom mallar och exempel.