User stories é uma descrição em linguagem informal de um ou mais recursos de um sistema de software. O termo é aplicado no desenvolvimento de software dentro da estrutura ágil (Agile). O User story descreve o tipo de usuário, o que ele quer e por quê, ajudando a criar uma descrição simplificada de um requisito. Tem que ser escrita sempre do ponto de vista do usuário ou cliente, não do desenvolvedor.
As user stories oferecem uma forma simples de definir o que o cliente quer alcançar com uma determinada funcionalidade. Durante o desenvolvimento do software, a equipe usa informações para criar uma user story, que seria o que, como e por que o usuário quer encontrar certas features no software. A diferença é que a user story é sempre escrita da perspectiva do cliente, não dos desenvolvedores.
Ao fazer isso, as user stories permitem que os desenvolvedores e engenheiros usem sua experiência e criatividade para fornecer a melhor solução possível para um problema, com foco no usuário, em vez de se restringir a um design detalhado e recursos de pouco uso.
O registro de user stories é feito geralmente em post-its, cartões ou no software de gerenciamento de projetos. Dependendo do projeto, as user stories podem ser escritas por várias pessoas envolvidas no desenvolvimento, como clientes, usuários, gerentes ou membros da equipe de desenvolvimento.
As user stories foram criadas no final da década de 1990, a partir da metodologia de desenvolvimento ágil de software Extreme Programming (XP).
"As histórias de usuários fazem parte de uma abordagem ágil que ajuda a mudar o foco de escrever sobre os requisitos para falar sobre eles. Todas as histórias de usuários ágeis incluem uma ou duas frases escritas e, o que é mais importante, uma série de conversas sobre a funcionalidade desejada", afirmou Mike Cohn, especialista em Agile e autor do livro "User Stories Applied: For Agile Software Development", publicado em 2004.
Mike Cohn sugere que as user stories sigam este modelo básico:
Como [tipo de usuário], eu quero [algum objetivo] para que [alguma razão].
Por exemplo, digamos que você queira um site para sua loja de móveis de jardim. Você discutiria seus requisitos com um desenvolvedor, e a descrição da sua história de usuário poderia ser: "Como comprador, quero ser capaz de adicionar vários itens à minha cesta, para economizar tempo".
A descrição não é a user story completa. É um "começo de conversa" que é discutido pela equipe de desenvolvimento em uma reunião do scrum.