En evig fråga för en företagare är hur man får det man vill ha när man beställer en produkt, tjänst eller system.
Några givna svar finns inte, man kan aldrig bortse den mänskliga faktorn, saker kan gå fel, uppmaningar kan missförstå, en tredje part kan komma in och krångla till saker och ting. Och så vidare.
Det finns i alla fall en sak som alltid är viktiga när man vill styra utvecklingen åt rätt håll: tydlighet.
Det uppnår man bäst genom en tydlig kravspecifikation. En sådan kan se ut på många sätt, men grunden är ett den har till uppgift att på ett tydligt sätt precisera mått och andra krav som ställs på en produkt eller tjänst. Kraven sammanfattar man i ett dokument där man sammanfattar de krav som beställaren har på produkten eller funktionen som ska levereras.
Några viktiga grundstenar
Här är några grundläggande och väsentliga saker som man bör gå igenom när man framställer en kravspecifikation:
Glöm inte att det är produkten som är det viktiga, inte själva kravspecifikationen. En kravspecifikation kan se ut på många olika sätt, men det viktigaste är förstås kärnan, kraven på det som har beställts.
Kraven går att dela in i två olika kategorier: funktionella krav och icke funktionella krav.
De funktionella kraven beskriver funktionaliteten hos den beställda produkten, tjänsten eller systemet. Det innefattar ofta en beräkning och resultat. Ett ickefunktionellt krav är tänkt att visa hur snabbt beräkningar ska göras, hur snabbt och när funktionen ska utföras helt enkelt.
Ett par illustrativa exempel:
- Funktionellt krav: systemet ska skicka ut automatiserade e-postmeddelanden.
- Icke-funktionellt krav: den ska skicka ut ett visst antal automatiserade e-mejl vid vissa tidpunkter enligt vissa tydliga regler.
Tänk på att vara noga med ordens valör i specifikationen. ”Ska” tyder på hög prioritet, “bör” på lägre. Det kan vara bra att redan på ett tidigt stadium definiera vilka nivåer av prioritet de olika orden signalerar. Var konsekvent i användningen av dessa ord, annars är det stor risk för förvirring och missförstånd.
Flera olika kvalitetskrav
Det icke-funktionella kravet i exemplet ovan beskriver prestandan i produkten/tjänsten/systemet. Utöver prestandan finns det många andra kvalitetskrav som är användbara vid specificeringen:
- Användarvänlighet. Hur lätt är systemet att använda och hur lång tid tar det att lära sig hur den fungerar?
- Säkerhet. Är systemet lätthackat, det vill säga lätt att tränga in i utifrån?
- Kapacitet. Hur många personer kan använda systemet samtidigt?
- Underhållbarhet. Kräver systemet mycket underhåll, eller är det lättskött?
- Tillgänglighet. När och hur lång tid kan man använda systemet? Hur stor procent av tiden?
Ett bra sätt att skapa översikt och begriplighet i kravspecifikationen är att använda så kallade användningsfall. Där beskriver man ett antal scenarier där det beskrivs hur användaren använder systemet och vad som behövs. Det kan man sedan bryta ner i flera specifika krav.
Viktigt är också att involvera rätt personer i arbetet med kravspecifikationen. En sak som är bra att tänka på är att anlita en grupp med flera olika personer. Projektet kan bli krångligare, men chansen att nå ett gott resultat blir bättre då man får fler olika synpunkter på det hela.
Personer som är allt igenom skeptiska till förändringar bör inte ingå, då läggs energin på fel saker. En person som har svårt med teknik kan ha svårt att uttrycka sina åsikter, men kan man förstå vad hen menar så kan man ha stor nytta av denna input, eftersom många användare förmodligen inte kommer att vara tekniknördar.
Hur man ska skriva en kravspecifikation varierar givetvis beroende på vad som önskas med det som beställts. Alla projekt är unika, därför är det svårt att ställa upp en fast mall. Men om man följer råden ovan så är man en bra bit på väg.