Så skriver du en kravspec för att upphandla mjukvaruutveckling

Profile photo of Lucas Rosvall

Publicerad av Lucas Rosvall

Tech Lead & Co-Founder

En bra kravspec för mjukvaruutveckling ska göra tre saker: förklara problemet ni vill lösa, beskriva vad lösningen behöver klara av och sätta ramar för leverans, kvalitet och samarbete. Målet är inte att låsa varje detalj från start, utan att ge leverantörer tillräckligt underlag för att lämna jämförbara och relevanta förslag.

Många upphandlingar går fel redan i kravspecen. Antingen blir den för vag, så att leverantörerna tolkar uppdraget helt olika, eller så blir den för detaljerad och låser lösningen innan man förstått vad som faktiskt är viktigt.

I den här artikeln går vi igenom hur du skriver en kravspec för att upphandla mjukvaruutveckling, vad som bör ingå, vilka misstag du bör undvika och hur du kan strukturera dokumentet i praktiken.

Kravspec för mjukvaruutveckling

Vad ska en kravspec för mjukvaruutveckling innehålla?

En kravspec för upphandling av mjukvaruutveckling bör vanligtvis innehålla:

  • bakgrund och affärsmål
  • vilket problem som ska lösas
  • målgrupper och användare
  • viktigaste funktionella krav
  • integrationskrav och datakällor
  • säkerhets- och compliancekrav
  • krav på drift, support och vidareutveckling
  • projektets ramar för tid, budget och arbetssätt
  • hur anbud ska utvärderas

Kort sagt: en bra kravspec hjälper leverantören att förstå både vad ni behöver och varför det är viktigt.

Varför är kravspecen så viktig i en upphandling?

När du upphandlar mjukvaruutveckling köper du sällan en färdig produkt. Du köper en leveransförmåga, en process och ett team som ska lösa ett problem tillsammans med er.

Om kravspecen är oklar blir det svårt att:

  • jämföra olika leverantörer rättvist
  • få träffsäkra kostnadsuppskattningar
  • förstå vad som faktiskt ingår
  • undvika missförstånd senare i projektet

En bra kravspec minskar alltså inte bara risken i upphandlingen. Den förbättrar också själva projektstarten.

Kostnaden för att rätta till missförstånd och tvetydigheter ökar dramatiskt ju längre in i projektet man kommer. Det som tar en timme att klargöra i kravspecen kan kräva veckor av omarbetning om det upptäcks först i slutfasen. Samtidigt ger en välformulerad kravspec leverantören möjlighet att lägga sitt anbud mer träffsäkert, vilket minskar behovet av säkerhetsmarginaler i prissättningen.

Bör en kravspec vara detaljerad eller flexibel?

Den bör vara tydlig, men inte onödigt låst.

Det vanligaste misstaget är att tro att en bra kravspec måste beskriva exakt hur systemet ska byggas tekniskt. I de flesta fall är det bättre att vara tydlig med mål, processer, användarbehov och viktiga begränsningar, men låta leverantören föreslå lösningen.

Det gäller i synnerhet om du upphandlar ett team för skräddarsydd mjukvara eller ett mer komplext utvecklingsprojekt där rätt arkitektur och upplägg bör formas tillsammans.

Rätt detaljnivå beror på projektets karaktär. För system med tydliga regelkrav eller där säkerhet är kritisk kan vissa tekniska krav behöva vara specificerade tidigt. Men för de flesta affärssystem är det viktigare att beskriva vad systemet ska uppnå än hur det ska byggas. En kravspec som låser tekniska lösningar för tidigt riskerar att stänga ute både bättre alternativ och mer kostnadseffektiva tillvägagångssätt.

Så skriver du en kravspec steg för steg

1. Beskriv nuläget och affärsproblemet

Börja inte med funktioner. Börja med varför projektet finns.

Skriv kort om:

  • hur arbetet fungerar idag
  • vilka problem eller flaskhalsar som finns
  • vilka team eller användare som påverkas
  • vilken affärseffekt ni vill uppnå

Detta hjälper leverantören att förstå sammanhanget. Två lösningar kan se likadana ut på ytan men vara helt olika beroende på vilket problem som faktiskt ska lösas.

Exempel:

Idag hanteras inkommande order manuellt mellan e-handel, affärssystem och lager. Det leder till dubbelregistrering, felaktiga leveranser och onödigt administrativt arbete. Målet är att automatisera orderflödet och minska handpåläggning per order.

2. Beskriv användare och viktigaste arbetsflöden

En kravspec blir starkare när den visar vem lösningen är till för och hur den ska användas i vardagen.

Beskriv till exempel:

  • primära användargrupper
  • vad de försöker göra i systemet
  • vilka steg som är viktigast i flödet
  • vilka moment som idag tar tid eller skapar fel

Här räcker det ofta långt med några tydliga användningsfall. Du behöver inte skriva fullständiga user stories för hela systemet, men du bör ge leverantören en konkret bild av verklig användning.

3. Lista de viktigaste funktionella kraven

Nu kan du gå över till vad systemet faktiskt behöver kunna göra.

Funktionella krav handlar om funktioner och beteenden, till exempel:

  • användare ska kunna logga in med Microsoft-konto
  • systemet ska kunna skapa och uppdatera kundposter
  • administratörer ska kunna exportera data till Excel
  • inkommande ärenden ska kunna klassificeras automatiskt

Försök att prioritera kraven i tre nivåer:

  1. Måste finnas i första versionen
  2. Bör finnas om möjligt
  3. Kan komma senare

Detta gör upphandlingen mer realistisk och minskar risken att allt blir "prio ett".

4. Ta med icke-funktionella krav

Många kravspecar fokuserar för mycket på funktioner och för lite på kvalitetskrav.

Icke-funktionella krav kan till exempel vara:

  • prestanda och svarstider
  • säkerhet och åtkomstkontroll
  • loggning och spårbarhet
  • tillgänglighet och driftsäkerhet
  • språkstöd
  • krav på mobilanpassning
  • krav på skalbarhet

Det är ofta här stora skillnader mellan leverantörer blir tydliga. Om ni till exempel har höga krav på säkerhet eller regelefterlevnad måste det framgå tidigt.

5. Beskriv integrationer och dataflöden

Om den nya lösningen ska kopplas till befintliga system måste det beskrivas i kravspecen.

Ta med:

  • vilka system som ska integreras
  • om API:er redan finns
  • vilken data som ska utbytas
  • hur ofta data behöver uppdateras
  • om det finns kända begränsningar eller tekniska beroenden

Det här är ofta en stor kostnadsdrivare i projekt. Därför behöver integrationsdelen vara tydlig även om alla detaljer ännu inte är kända. Läs gärna också mer om vad systemintegration innebär.

6. Sätt ramar för leverans och samarbete

Kravspecen bör inte bara beskriva produkten. Den bör också beskriva hur ni vill att samarbetet ska fungera.

Ta gärna med:

  • önskad tidplan eller viktiga deadlines
  • budgetram eller ungefärlig investeringsnivå
  • om ni vill ha fast pris, löpande eller etappvis leverans
  • om ni söker en första version eller en fullständig lösning direkt
  • hur ofta ni vill ha avstämningar
  • vilka som fattar beslut från er sida
  • krav på dokumentation, test och överlämning

Även om ni inte kan ange en exakt budget eller spikad leveransplan är det viktigt att ge leverantören någon form av ram. Det kan vara en ungefärlig investeringsnivå, en önskad fasindelning eller en beskrivning av om ni söker en snabb första lansering eller en mer omfattande lösning. Detta gör det lättare för leverantören att föreslå ett upplägg som passar er verklighet och minskar risken för stora prisskillnader mellan anbud.

Om detta inte är tydligt blir det svårt att jämföra anbud på ett rättvist sätt.

7. Förklara hur ni kommer att utvärdera anbud

Detta glöms ofta bort, men är viktigt.

Berätta gärna hur ni kommer att bedöma leverantörerna. Exempelvis:

  • förståelse för behovet
  • relevant erfarenhet
  • föreslagen lösning och arkitektur
  • teamets kompetens
  • pris och prismodell
  • support- och förvaltningsupplägg

Det gör att leverantörerna kan svara mer träffsäkert och lägga fokus på rätt saker.

En enkel mall för kravspec

Du behöver inte börja från ett tomt dokument. En enkel struktur kan se ut så här:

  1. Bakgrund Varför projektet finns och vilket problem som ska lösas.

  2. Mål Vad ni vill uppnå affärsmässigt och operativt.

  3. Omfattning Vad som ingår i upphandlingen och vad som inte ingår.

  4. Användare och flöden Vilka som ska använda lösningen och hur.

  5. Funktionella krav Vilka funktioner som måste finnas.

  6. Icke-funktionella krav Säkerhet, prestanda, drift, tillgänglighet, språk, med mera.

  7. Integrationer och data Vilka system som behöver kopplas ihop och hur.

  8. Projektupplägg Tidplan, budgetram, arbetssätt, roller och leverabler.

  9. Utvärderingskriterier Hur ni kommer att välja leverantör.

Vanliga misstag i kravspecar

För mycket lösning, för lite problem

Om kravspecen bara listar funktioner utan att förklara affärsproblemet blir det svårt för leverantören att komma med ett bra förslag.

Allt är prioriterat

Om varje krav presenteras som kritiskt blir det omöjligt att förstå vad som faktiskt är viktigast i första versionen.

Integrationer underskattas

Många projekt ser enkla ut tills man inser hur mycket data som måste röra sig mellan system. Här påverkas både risk, tidplan och pris.

Otydlig ansvarsfördelning

Om det inte framgår vem hos beställaren som äger beslut, krav och återkoppling kan projektet bli långsamt redan från start.

Man försöker låsa allt för tidigt

En upphandling behöver vara tydlig, men det betyder inte att varje detalj måste vara färdigbestämd. Kompetenta leverantörer vill ofta förfina delar av lösningen tillsammans med er efter projektstart.

Kravspec för MVP eller full upphandling?

Om ni är tidigt i processen kan det vara klokt att upphandla en mindre första leverans i stället för hela målbilden på en gång.

Det gäller i synnerhet om:

  • behovet ännu förändras snabbt
  • ni vill validera användarbeteende först
  • integrationsbilden är oklar
  • ni vill minska initial risk

I sådana fall kan det vara bättre att definiera en första MVP med tydliga mål än att försöka kravställa hela slutprodukten direkt.

Checklista innan du skickar ut kravspecen

Innan ni går ut till leverantörer, kontrollera att ni kan svara ja på följande:

  • Är affärsproblemet tydligt beskrivet?
  • Framgår det vilka användare lösningen är till för?
  • Har ni prioriterat vilka krav som är viktigast?
  • Finns integrationsbehov och beroenden beskrivna?
  • Har ni tagit med krav på säkerhet, drift och support?
  • Är det tydligt hur samarbetet ska fungera?
  • Vet leverantören hur ni kommer att utvärdera anbudet?

Om svaret är nej på flera punkter är det oftast värt att förbättra dokumentet innan ni skickar ut det.

Vanliga frågor om kravspec för mjukvaruutveckling

Vad är en kravspec i en upphandling av mjukvaruutveckling?

En kravspec är ett dokument som beskriver problemet ni vill lösa, vilka krav lösningen behöver uppfylla och vilka ramar som gäller för projektet. Den används för att få in relevanta och jämförbara anbud från leverantörer.

Hur detaljerad ska en kravspec vara?

Den ska vara tillräckligt tydlig för att leverantören ska förstå behov, prioriteringar och ramar. Men den behöver inte låsa varje teknisk detalj från början. I många fall är det bättre att vara tydlig med mål och krav än att detaljstyra lösningen.

Vad är skillnaden mellan kravspec och scope?

Kravspecen beskriver vad lösningen ska uppnå och vilka krav som gäller. Scope handlar mer om vad som faktiskt ingår i leveransen i en viss fas eller ett visst projektsteg.

Behöver man en kravspec även om man tänker jobba agilt?

Ja. Agilt arbetssätt betyder inte att man kan hoppa över tydlighet i början. Det betyder snarare att kravspecen bör ge rätt riktning och rätt prioriteringar, utan att låsa allt i detalj för tidigt.

Kan en leverantör hjälpa till att skriva kravspecen?

Ja, det är vanligt. Särskilt i mer komplexa projekt kan det vara klokt att först göra en förstudie eller kravanalys tillsammans med en partner innan själva upphandlingen går vidare.


En bra kravspec gör inte bara upphandlingen bättre. Den ökar också chansen att projektet startar med rätt förväntningar, rätt prioriteringar och rätt typ av leverantör. Om ni vill bolla ett konkret projekt hjälper vi gärna till att strukturera kravbilden innan upphandling eller projektstart. Kontakta oss om du vill diskutera ert behov.

Fler artiklar

Extern CTO för startups: när är det rätt läge?

När behöver en startup en extern CTO? Praktisk guide om signaler, ansvar, kostnad och när fractional CTO är bättre än att anställa direkt.

Fortsätt läsa

Från PoC till produktion: vad krävs för att lyckas med AI?

Många AI-piloter visar lovande resultat men fastnar innan produktion. Här går vi igenom vad som krävs för att ta en AI-PoC till ett stabilt, säkert oc...

Fortsätt läsa

Nyfiken på nästa steg?

Berätta om din idé eller ditt projekt. Vi återkommer snabbt och ser hur vi kan hjälpa dig vidare. Tveka inte att höra av dig, vi är alltid nyfikna på nya samarbeten!

Kontor


  • Järntorget 8
    413 04 Göteborg