User stories

MATA62 - Engenharia de Software I

Universidade Federal da Bahia

Prof. Rodrigo Rocha

2016.1

User stories
(histórias do usuário)

  • Usadas em métodos ágeis
  • Cada história descreve sucintamente algo que o usuário precisa fazer para atingir seus objetivos através de um sistema de software
  • Similar ao conceito de requisitos

Exemplos
(site de empregos)

  • Um usuário pode postar seu currículo no site
  • Um usuário pode buscar vagas de emprego
  • Uma companhia pode postar vagas de emprego

Contra-exemplos
(site de empregos)

  • O software será escrito em Java
  • O programa usará um pool de conexões ao banco de dados

Detalhamento

  • "Um usuário pode buscar vagas de emprego"
  • Histórias muito grandes são chamadas de épicos.
  • Ao serem priorizadas, as histórias podem ser subdividas em histórias menores. Ex.:
    • O usuário pode buscar vagas por localidade, faixa salarial, companhia e data da vaga
    • O usuário pode ver informações sobre cada vaga do resultado da busca

História do usuário =

Card
Conversa
Confirmação

Cards

  • Histórias são comumente escritas em cartões ou post-its

Template comum

  • Como um <papel>,
  • eu quero <objetivo>
  • para que <benefício>

foco no valor para o usuário!

Card

  • Idealmente é escrito pelo usuário (ou pelo menos pelo PO)
  • Pode ter um título ou um número para fazermos referência a ele
  • Pode ter anotações adicionais
  • Equipe estima tempo de desenvolvimento de um card que foi priorizado

Conversa

  • O card não é a história completa!
  • O card serve para se lembrar da história
  • A história é enriquecida quando o usuário e a equipe de desenvolvimento conversam sobre ela
    • Normalmente ocorre quando uma história é planejada para a próxima sprint

Problema com requisitos

  • Cliente explica de um jeito
  • Analista entende de outro, escreve requisitos
  • Desenvolvedor lê requisitos e entende de outro jeito

Confirmação

  • No verso do card, escrevem-se critérios de aceitação
    • Quando a história é planejada para a próxima sprint
  • Exemplo:

Como usuário,
eu quero buscar ofertas de emprego
para que eu possa me encontrar um bom emprego pra mim
 

  • A busca deve retornar em menos de 2 segundos
  • O usuário deve informar uma localidade

I.N.V.E.S.T

  • Boas histórias devem ser
  • Independentes
  • Negociáveis
  • Valiosas
  • Estimáveis
  • Small (pequenas)
  • Testáveis

Story Mapping

  • Recomenda-se escrever todas as histórias de um sistema antes de começar seu desenvolvimento
    • Obviamente, sem muitos detalhes
  • Como organizar essas histórias para não perder a visão geral do que se quer construir?
  • Histórias são agrupadas em tarefas e estas em atividades
  • Atividades e tarefas formam a espinha dorsal do mapa de histórias, que consiste de uma narrativa de uso do sistema

horizontal slicing (fatiamento)

atividades

tarefas

histórias

Atividade: criar histórias para sistema de eventos

  • Equipes desenvolvendo produtos concorrentes
  • Participantes:
    • 1+ organizador de eventos
    • 1+ participante de eventos
    • 1 product owner
    • 1+ desenvolvedor
  • Site:
    • StoriesOnBoard.com (trial 30 dias grátis)
  • Dinâmica:
    • (5 min) Formar equipes
    • (3 min) Criar conta no site
    • (20 min) Criar user story map
    • (15 min) Horizontal slicing. Detalhar se necessário e adicionar critérios de aceitação.
    • (10 min) Apresentar