User story eller användarfall är ett sätt att beskriva en funktion från slutanvändarens perspektiv. Det är mycket vanligt sätt att beskriva krav i flera olika agila metoder som till exempel Scrum. Fördelen med att använda user stories är att kravställaren inte behöver ha detaljerade kunskaper om systemet. Kraven utgår alltid från den konsumentens perspektiv. Konsumenten kan både vara en fysisk person som en kund eller anställd men kan även vara ett annat system.

Grunden i en user story

user story användarfallDen enklast formen av en user story ser ut så här:

Som en <konsument> vill jag kunna <funktion>

För att göra det tydligare varför funktionen är viktig för projektet kan man lägga till anledningen att funktionen ska utvecklas.

Som en <konsument> vill jag kunna <funktion> så att jag kan <varför>

Exempel på user story

En marknadsavdelning på ett e-handelsföretag vill att IT-avdelningen ska utveckla en funktion där kunderna kan spara en inköpslista. Man tror att många kunder använder sajten för att upptäckta produkterna men köper dom sedan i den fysiska butiken. Man tror att funktionen kan öka försäljningen. Så här skulle en sådan user story se ut från kundens perspektiv.

Som en kund vill jag kunna spara ner en inköpslista så att jag kan få en inköpslista när jag går till butiken.

User stories används vanligen i IT-projekt men kan lika bra användas i andra sammanhang där man behöver sätta krav. Så här kan en user story se ut för en föreläsare som ska hålla ett föredrag.

Som en föredragshållare behöver jag kunna visa min presentation så min publik kan ta del av min föresläsning.

Läs mer om detaljer

Utöka user storyn med testfall

User storyn beskriver funktionen men för att kunna verifiera att funktionen fungerar på rätt sätt måste kraven utökas. Ett sätt är att definiera testfall för funktionen som måste uppnås för att funktionen ska anses vara korrekt implementerad.

Inom agil utveckling sammanställer man alla user stories i en backlog som hanteras av produktägaren. Backlogen prioriteras och funktioner som ska utvecklas tas in i en sprinbacklog.