Sådan skriver du en god kravspecifikation

Vi har efterhånden været med på en del forskellige projekter og oplevet en masse forskellige kravspecifikationer. Herunder har vi samlet en masse af de erfaringer, som vi har fået undervejs.

Hvorfor laver man en kravspecifikation?

Mange springer over, hvor gærdet er lavest, fordi de tror, det er vanskeligt, teknisk kompliceret og tidskrævende. Derfor er der forbavsende mange projekter, der starter med intet andet end en deadline, et budget og en løs forestilling om, hvad slutproduktet konkret skal være. Sådan et projekt kan nemt få en kedelig afslutning, når parternes forestillinger viser sig at være forskellige.

En kravspecifikation er derfor en vigtig del af enhver udviklingsproces, fordi den skaber klarhed for begge parter. Den hjælper til en fælles forståelse og sikrer, at alle parter er på samme side med hensyn til forventninger, funktionaliteter og design. Kundens behov og krav bliver tydeligt dokumenteret.

Kravspecifikationen kan også bruges af udviklerne som en retningslinje, fordi den giver struktur og en klar målsætning, som man kan arbejde efter, hvilket effektiviserer udviklingsprocessen.

Endeligt hjælper kravspecifikationen også med at skabe grundlaget for tilbuddet og kontrakten mellem kunden og udvikleren, da den giver en klar aftale omkring arbejdets omfang, betaling og leveringsdatoer.

Med andre ord hjælper kravspecifikationen med at skabe struktur, klarhed og en fælles ramme for udviklingen af hjemmesiden.

Hvad skal en kravspecifikation indeholde?

Selvom der kan være store forskelle på kravspecifikationer, er der alligevel visse elementer, som de fleste indeholder. Vi har gode erfaringer med følgende struktur:
SektionIndhold
IntroduktionProjektformål, målgruppe, interessenter
Omfang & definitionerHvad inkluderes/ekskluderes, akronymer, terminologi
Overordnet beskrivelseBrugers behov, systemperspektiv, afhængigheder
PrioriteringMoSCoW-kategorier og tidsplan
FunktionskravDetaljerede krav med input/output, scenarier, test
Ikke-funktionelle kravPerformance, sikkerhed, tilgængelighed osv.
Eksempler & brugerflowsWireframes, flows, use cases
Validering & testHvordan skal krav verificeres/testes
TraceabilityLink mellem krav og test/dokumenter/design
Vedligeholdelse & supportSupportniveauer, svartider, opdateringsfrekvens, fejlrettelser, SLA-aftaler
Pris & tidsrammeBudgetoverslag, betalingsplan, milepæle, deadlines
ÆndringslogVersionshistorie og godkendelser
AppendikserDiagrammer, glossary, reference-dokumenter

Introduktion og formål

Beskriv en kort introduktion til virksomheden eller projektet og angiv formålet med hjemmesiden. Forklar, hvad der motiverer oprettelsen af hjemmesiden og de forventede resultater.

Funktionelle krav

Funktionelle krav beskriver de handlinger og funktioner, som webapplikationen skal kunne udføre. Formålet er at skabe en tydelig forståelse af, hvad systemet skal gøre, hvordan det skal gøre det, og hvorfor det er vigtigt for brugeroplevelsen og forretningsmålet.

For hvert krav bør du:

Eksempel: Ny webshop

Krav 1: Lager- og produktdata
  • Formål: Brugerne skal altid have opdaterede oplysninger om produkter.
  • Arbejdsgang: Webshoppen henter lagerstatus, pris og SKU fra ERP-systemet i realtid via API.
  • Input/Output: Input = forespørgsel til ERP; Output = aktuel lagerstatus, pris og SKU vises på produktet.
  • Prioritet: Must-have.
  • Acceptkriterium: Når en vare er udsolgt i ERP, må den ikke kunne lægges i kurven i webshoppen.
Krav 2: Track & Trace
  • Formål: Giver kunderne tryghed og overblik efter køb.
  • Arbejdsgang: Efter ordreafsendelse modtager kunden et link til Track & Trace, som også kan tilgås via kundens konto.
  • Input/Output: Input = ordrenummer; Output = live tracking status fra fragtudbyder.
  • Prioritet: Should-have.
  • Brugsscenarie: Kunden logger ind og kan se leveringsstatus uden at kontakte kundeservice.
Krav 3: Betalingsløsning
  • Formål: Sikrer, at kunder kan gennemføre køb med de mest anvendte betalingsmetoder.
  • User story (Must-have): “Som bruger skal jeg kunne betale med Dankort, Mastercard eller Visa, så jeg kan gennemføre et køb.”
  • Arbejdsgang: Kunden vælger betalingsmetode, webshoppen sender forespørgsel til betalingsgateway og modtager bekræftelse.
  • Input/Output: Input = kortoplysninger; Output = bekræftet betaling eller fejlbesked.
  • Acceptkriterier:
    • Betaling accepteres inden for 3 sekunder.
    • Betaling med Visa og Mastercard bliver ekspederet via betalingsgateway X.
    • Dankortbetalinger håndteres via API Y.
  • Could-have: “Betaling med PayPal, hvis tidsplan tillader det.”


Vedligeholdelse og support

Når løsningen er lanceret, stopper arbejdet ikke. En kravspecifikation bør også beskrive, hvordan vedligeholdelse og support håndteres, så både kunde og leverandør har klare forventninger til samarbejdet efter go-live.

Følgende punkter kan med fordel indgå: En veldefineret sektion om vedligeholdelse og support sikrer, at kunden ikke står uden hjælp, når systemet er i drift, og giver udvikleren en klar ramme for, hvilke opgaver der ligger inden for aftalen.

Pris og tidsramme

Kunden vil naturligvis gerne have en idé om den forventede pris og tidsramme for at udvikle hjemmesiden. Klare oplysninger om omkostninger og tidsplan vil hjælpe med at skabe realistiske forventninger og undgå overraskelser.

Er der forskellige faser i projektet, kan det give mening at lave et Gantt-diagram.

Ændringslog

En kravspecifikation er sjældent statisk. Nye behov kan opstå undervejs i projektet, og eksisterende krav kan ændres eller præciseres. For at bevare overblikket og undgå misforståelser bør dokumentet derfor indeholde en ændringslog.

Ændringsloggen fungerer som en historik over alle ændringer, der er foretaget i kravspecifikationen. Den bør som minimum indeholde: En simpel ændringslog kan f.eks. se sådan ud:
VersionDatoBeskrivelseAnsvarlig
1.001-09-2025Første version sendt til kundenProjektleder
1.105-09-2025Tilføjet krav om PayPal-betalingKunde + udvikler
Fordelen ved at have en ændringslog er, at både kunde og udviklere kan følge udviklingen af kravspecifikationen og se, hvornår og hvorfor ændringer er sket. Det giver transparens, letter samarbejdet og minimerer risikoen for uenigheder senere i projektet.



Kan vi hjælpe dig?

Lad os tage en gratis kop kaffe og drøfte dit projekt. Det koster nemlig ikke noget at spørge, og vi kommer hellere end gerne med et uforpligtende tilbud på dit næste projekt. Book en 30-minutters samtale eller kontakt os direkte.

Vi sidder klar på hej@webudvikleren.dk eller 50 30 88 70. Du kan selvfølgelig også udfylde kontaktformularen her til højre, så ringer vi dig op.

Vi ser frem til at høre fra dig!


Philip Sørensen
Philip Sørensen
Full-stack webudvikler