Vad är en kravspecifikation?

En kravspecifikation, ofta förkortat kravspec, är ett dokument som beskriver vad ett system eller en produkt ska göra, och vilka krav som ställs på det. Kravspecifikationen är ett centralt dokument vid utveckling och upphandling av IT-system, men används också inom många andra områden, t.ex. vid produktutveckling, byggprojekt och inköp av tjänster. En välskriven kravspecifikation är grunden för ett lyckat projekt.

Varför är en kravspecifikation viktig?

  • Tydlighet: Kravspecifikationen skapar en gemensam förståelse mellan beställare och leverantör om vad som ska levereras. Detta minskar risken för missförstånd och fel.
  • Underlag för planering: Kravspecifikationen ger ett underlag för att planera projektet, uppskatta tidsåtgång och kostnader, och fördela resurser.
  • Underlag för upphandling: Vid upphandling av IT-system eller andra tjänster är kravspecifikationen en central del av förfrågningsunderlaget. Den gör det möjligt att jämföra olika anbud på ett objektivt sätt.
  • Underlag för utveckling och testning: Kravspecifikationen används som underlag för utveckling, design och testning av systemet eller produkten.
  • Kvalitetssäkring: Genom att ställa tydliga krav kan man säkerställa att slutresultatet uppfyller de behov och förväntningar som finns.
  • Förändringshantering: Om kraven ändras under projektets gång, kan kravspecifikationen användas för att bedöma konsekvenserna av ändringarna och för att hantera dem på ett kontrollerat sätt.

Olika typer av krav

En kravspecifikation kan innehålla olika typer av krav:

  • Funktionella krav: Beskriver vad systemet ska göra, vilka funktioner det ska ha. Exempel: ”Systemet ska kunna hantera kundorder”, ”Systemet ska kunna generera fakturor”, ”Systemet ska kunna skicka e-postmeddelanden”.
  • Icke-funktionella krav: Beskriver hur systemet ska fungera, vilka egenskaper det ska ha. Exempel: ”Systemet ska vara snabbt”, ”Systemet ska vara användarvänligt”, ”Systemet ska vara säkert”, ”Systemet ska vara tillgängligt dygnet runt”.
  • Verksamhetskrav: Beskriver de övergripande mål och behov som verksamheten har, och som systemet ska bidra till att uppfylla.
  • Användarkrav: Beskriver vad användarna behöver kunna göra med systemet, och hur de ska interagera med det.
  • Systemkrav: Beskriver de tekniska kraven på systemet, t.ex. krav på prestanda, skalbarhet, driftsäkerhet, och integration med andra system.
  • Gränssnittskrav: Beskriver hur systemet ska interagera med andra system eller med användarna.

Att skriva en bra kravspecifikation

  • Var tydlig och specifik: Undvik vaga formuleringar. Skriv så att det inte finns utrymme för tolkningar. Använd konkreta exempel.
  • Var mätbar: Ange, om möjligt, mätbara krav (t.ex. ”Systemet ska kunna hantera 1000 samtidiga användare”, ”Svarstiden får inte överstiga 2 sekunder”).
  • Var realistisk: Ställ inte orimliga krav som är omöjliga eller för dyra att uppfylla.
  • Var konsekvent: Använd samma terminologi genom hela dokumentet. Undvik motsägelser.
  • Var komplett: Se till att alla viktiga krav finns med.
  • Prioritera kraven: Ange vilka krav som är viktigast (t.ex. med hjälp av MoSCoW-metoden: Must have, Should have, Could have, Won’t have).
  • Involvera intressenter: Se till att alla berörda parter (beställare, användare, utvecklare, testare) får möjlighet att läsa och ge synpunkter på kravspecifikationen.
  • Använd en mall: Det finns många bra mallar för kravspecifikationer som kan användas som utgångspunkt.
  • Håll den uppdaterad: En kravspecifikation är ett levande dokument som behöver uppdateras om kraven ändras under projektets gång.

Vanliga misstag vid kravställning

  • För vaga krav: Att skriva ”Systemet ska vara användarvänligt” säger ingenting om hur användarvänligt det ska vara.
  • För detaljerade krav: Att specificera hur något ska lösas, istället för vad som ska uppnås.
  • Motsägelsefulla krav: Att ställa krav som motsäger varandra.
  • Orealistiska krav: Att ställa krav som är omöjliga eller för dyra att uppfylla.
  • Att glömma icke-funktionella krav: Att bara fokusera på funktionella krav, och glömma bort t.ex. prestanda, säkerhet och användarvänlighet.
  • Att inte involvera intressenter: Att skriva kravspecifikationen utan att involvera de personer som ska använda eller utveckla systemet.

Vanliga frågor och svar (FAQ)

Vem ansvarar för att skriva kravspecifikationen?

Det är beställaren av systemet eller produkten som ansvarar för att ta fram kravspecifikationen. Men ofta tar man hjälp av experter, t.ex. konsulter eller systemutvecklare, för att formulera kraven på ett bra sätt. Det är viktigt att involvera både representanter för verksamheten (som vet vilka behov som finns) och IT-experter (som vet vad som är tekniskt möjligt).

Vad är skillnaden mellan en kravspecifikation och en funktionsspecifikation?

En kravspecifikation beskriver vad systemet ska göra, och vilka krav som ställs på det. En funktionsspecifikation (eller designspecifikation) beskriver hur systemet ska uppfylla kraven, alltså hur det ska vara konstruerat och fungera internt. Funktionsspecifikationen skrivs normalt efter kravspecifikationen, och baseras på den.

Vad är MoSCoW-metoden?

MoSCoW-metoden är en enkel metod för att prioritera krav. Kraven delas in i fyra kategorier:

  • Must have: Krav som måste vara uppfyllda för att systemet ska vara användbart.
  • Should have: Krav som är viktiga, men inte absolut nödvändiga.
  • Could have: Krav som är önskvärda, men inte nödvändiga.
  • Won’t have (this time): Krav som inte kommer att prioriteras i den aktuella versionen av systemet, men som kan vara aktuella i framtiden.
Vad menas med ”spårbarhet” i en kravspecifikation?

Spårbarhet innebär att det ska gå att följa ett krav genom hela utvecklingsprocessen – från kravspecifikationen till design, kod, testfall och slutlig leverans. Detta gör det lättare att kontrollera att alla krav uppfylls, och att hantera ändringar i kraven. Spårbarhet kan uppnås genom att ge varje krav ett unikt ID, och genom att använda verktyg för kravhantering.

KONTAKTA OSS FÖR DEMO

Vill du veta mer om kravspecifikationer och kravhantering? Kontakta oss på Genesis, eller läs vidare i vårt ordförråd!