21 técnicas para quebra de User Stories para os PO's
1. 12/07/2019
1
Técnicas para
quebra de histórias
Patterns: 1 - Quebra de Condições
Como cliente, eu quero
criar um pedido E pagar
pela mesmo usando um
cartão de crédito para
que eu consiga algo para
comer.
Explicação:
Se uma história tem múltiplos itens listados no
que deve ser feito, cada um deles deve ser
separado em uma história.
Quando utilizar esta técnica:
Quando vemos palavras do tipo “E” ou “OU”
aparecendo nas histórias.
Questionamentos úteis
Todas estas condições são necessárias (agora)?
2. 12/07/2019
2
Patterns : 2 – Fluxo de trabalho
Como cliente, eu quero
criar um pedido para que
eu consiga algo para
comer.
Explicação:
Identifique passos específicos em um fluxo de trabalho.
Implemente o fluxo por partes criando múltiplas histórias.
Quando utilizar esta técnica:
Quando a história inicial descreve um fluxo de
trabalho.
Questionamentos úteis
Quais passos o usuário faz nesta história?
Todos esses passos são necessários (agora)?
Estes passos podem ser simplificados numa
primeira release?
Como cliente eu
quero submeter
meu pedido.
3 – Cenários de Caso de Uso
Como cliente, eu quero
criar um pedido para que
eu consiga algo para
comer.
Explicação:
Similar ao patternFluxo de Trabalho, uma história representa
o caminho feliz e outrasos casos alternativos.
Quando utilizar esta técnica:
Quando a história inicial descreve a interação
do usuário com vários casos alternativos
(Casos de uso).
Questionamentos úteis
Qual é o fluxo principal e quais são os
alternativos?
São todos estes fluxos alternativos
necessários? (na primeira versão)
É possível simplificar estes fluxos alternativos?
(na primeira versão)
Como cliente eu
quero fazer o
pedido de vários
itens
3. 12/07/2019
3
4 – Operações
Explicação:
É a divisão de uma histórias em várias que representamas
operações realizadas pela história inicial.
Quando utilizar esta técnica:
Normalmente quando a história é sobre gestão
de informação (ex Crud) ou configuração.
Questionamentos úteis
Quais operações envolve esta história?
Todas essas operações são necessárias na
primeira versão?
Como dono de
restaurante, eu quero
gerenciar o cardápio
para que as pessoas
possam fazer pedidos
Como dono de
restaurante,
desejo excluir o
cardápio.
Como dono do
restaurante, quero
visualizar o
cardápio
5 – Zero, um e muitos
Explicação:
É a quebra de histórias que lidam com múltiplas instâncias de
entidades em histórias que lidam com uma instância e então
múltiplas instâncias.
Quando utilizar esta técnica:
Quando você está trabalhando com uma
história onde múltiplas instâncias são
permitidas.
Questionamentos úteis
Nós precisamos tratar múltiplas instâncias, ou
somente uma seria suficiente?
Como dono do
restaurante, eu quero
ver um pedido de cliente
Como dono de
restaurante, quero
ver um pedido com
vários itens
4. 12/07/2019
4
6 – Núcleo e extensão
Explicação:
É a quebra de histórias lidando com o tema central em uma
história e outras para que possa ir complementandoo mesmo.
Quando utilizar esta técnica:
Quando a história possui um Núcleo simples
que permite a ele ser agregado outras
funcionalidades.
Questionamentos úteis
Qual é a versão mais simples disto?
Quais tipos de dados devem ser suportados?
Quais parâmetros são relevantes?
Como cliente desejo ver
meus pedidos anteriores
para saber o que eu comi
no passado.
7 – Maior esforço
Explicação:
Quebrar as histórias de forma que exija um substancial
esforço na primeira e menos nas seguintes.
Quando utilizar esta técnica:
Quando você quebra a história em várias
outras e qualquer uma delas tem um esforço
alto na primeira vez que é feito.
Questionamentos úteis
Podemos prover infraestrutura e já entregar
valor?
Faz diferença qual opção implementamos
primeiramente?
Como cliente desejo
pagar com Visa, Amex,
MC ou Diners. Desta
forma não tenho que me
preocupar.
5. 12/07/2019
5
8 – Critério de Aceite
Explicação:
Quando há muitos critérios de aceites o ideal é quebrar em
mais de uma história.
Quando utilizar esta técnica:
Quando um time identifica vários critérios de
aceite ou cenários para uma história.
Questionamentos úteis
Quais testes serão usados para validar esta
história?
Quais critérios de aceite se aplicam?
Quais cenários são relevantes?
Todos estes testes de cenários são necessários
nesta primeira release?
Como cliente desejo
fazer um pedido, desta
forma poderei comer
algo.
9 – Variações nos tipos de dados
Explicação:
Quando a história faz a mesma coisa para diferentes tipos de
dados, crie uma história para cada opção.
Quando utilizar esta técnica:
Quando a funcionalidade suporta múltiplas
opções.
Questionamentos úteis
Todas estas opções são necessárias na
primeira versão?
Qual a principal opção que devemos prover?
Como cliente desejo ver
o cardápio na minha
língua nativa, desta
forma posso escolher
algo para comer.
6. 12/07/2019
6
10 – Fronteira de Dados
Explicação:
Quando a história cuida de diversos atributos da entidade ao
mesmo tempo. O ideal é uma primeira história que suporta o
básico e outras histórias para fazer o incremento de outros
dados
Quando utilizar esta técnica:
Quando a história estiver lidando com vários
elementos de dados de uma só vez.
Questionamentos úteis
Quais são os dados essenciais que devemos
prover?
Quais dados não são as informações que não são
necessárias na primeira versão?
Como cliente desejo ver
as opções no cardápio,
desta forma posso
escolher algo para
comer.
11 – Variações na Interface com o usuário
Explicação:
Quebrar uma história que lida com uma interface complexa
em várias histórias que incrementalmentevai adicionando
complexidade.
Quando utilizar esta técnica:
Quando uma história estiver lidando com uma
interface complexa onde o usuário irá usar
uma opção de cada vez.
Questionamentos úteis
Qual a interface mais simples que provê valor?
Como cliente desejo ver
o cardápio, desta forma
posso escolher algo para
comer.
Como cliente
desejo ver o
cardápio em PDF.
7. 12/07/2019
7
12 – Variações na Plataforma
Explicação:
Quebrar uma história que lida com a mesma demanda em
plataformasdiferentes.
Quando utilizar esta técnica:
Quando estiver adicionando uma interface
com o usuário que necessita estar disponível
em múltiplas plataformas.
Questionamentos úteis
Quais plataformas devemos suportar?
Quais plataformas devemos suportar na
primeira versão?
Há plataformas mais difíceis de disponibilizar
que outras?
Como cliente desejo
criar um pedido, desta
forma posso conseguir
algo para comer.
Como cliente
desejo criar meu
pedido no meu
iPhone.
13 –Regra de Negócio
Explicação:
Quebrar uma história que lida com regras de negócio
complexas em várias histórias uma com cada regra. Um caso
especial é postergar a validação de entrada para uma outra
história.
Quando utilizar esta técnica:
Quando a história possuir uma variedade de
regras de negócio, frequentemente
identificado por uma quantidade grande de
exemplos.
Questionamentos úteis
Quais regras se aplicam a esta histórias?
Todas essas regras são necessárias na primeira
versão?
As regras mais simples são suficientes?
Como cliente desejo usar
um cartão de crédito
para pagar meu pedido.
Como cliente
desejo saber
quando esquecer
de prover o nome
do proprietário do
cartão.
8. 12/07/2019
8
14 –Papéis
Explicação:
Quebrar uma história que lida com a mesma funcionalidade
atendendo às necessidades de diferentes papéis.
Quando utilizar esta técnica:
Quando a história impactar mais de uma papel
e este impacto exigir diferentes
desenvolvimentos a depender do papel.
Questionamentos úteis
Quais papeis estão envolvidos nesta história?
Todos esses papeis são necessários agora?
Como cliente desejo
criar um pedido. Desta
forma consigo algo para
comer.
15 –Adiar Requisitos não funcionais
Explicação:
Quebrar uma história que lida primeiramentecom a
funcionalidade e criar outras para lidar com performance,
escalabilidade, usabilidade e até mesmo precisão.
Quando utilizar esta técnica:
Quando a funcionalidade base ainda não
existe. Desta forma o time pode aprender
primeiro sobre o negócio e depois trabalhar
pesado para refinar os aspectos não
funcionais.
Questionamentos úteis
Neste momento é necessário ter uma
performance já otimizada?
Como cliente desejo
saber se o restaurante
recebeu meu pedido.
Desta forma estou certo
que conseguirei comer...
9. 12/07/2019
9
16 – Spikes
Explicação:
Quebrar uma história para permitir uma pesquisa maior antes
de começar a implementá-la.
Quando utilizar esta técnica:
Quando o time entender que há muita
incerteza para implementar a história original.
Questionamentos úteis
Quais são as dúvidas sobre esta história?
Como cliente desejo ver
o cardápio em uma
linguagem à minha
escolha.
17 – Baixa Fidelidade / Alta Fidelidade
Explicação:
Quebra de histórias para aumentar gradualmente
usabilidade/detalhes da funcionalidade.
Quando utilizar esta técnica:
Quando o custo de entregar a
usabilidade/todas as necessidades de uma só
vez for muito alto.
Questionamentos úteis
Qual é o estado bom o suficiente para esta
funcionalidade?
Como cliente gostaria de
ver recomendações de
comida para que eu
possa fazer um pedido.
Desta forma estou certo
que faria uma boa
escolha.
10. 12/07/2019
10
18 – Transitando e Persistindo
Explicação:
Quebra de histórias que recebem informações e logo após
história que grava persiste informação.
Quando utilizar esta técnica:
Quando a história é de uma funcionalidade
que manipula dados mas não necessita gravá-
los.
Questionamentos úteis
Nós temos mesmo que gravar estes dados?
Como cliente gostaria de
pagar meu pedido com
cartão de crédito. Desta
forma não preciso
carregar dinheiro.
19 – Estático x Dados dinâmicos
Explicação:
A primeira história criar a funcionalidade trabalhando com
dados estáticose em seguida outras adicionam dinamicidade.
Quando utilizar esta técnica:
Quando a funcionalidade cobre parâmetros
onde os valores divergem dependendo das
opções escolhidas.
Questionamentos úteis
Precisamos ter dados dinâmicos para agora?
Como cliente gostaria de
procurar por itens do
cardápio.
Como cliente
gostaria de
procurar por itens
do cardápio por
tipo de comida.
11. 12/07/2019
11
20 – Primeiro manual, depois automatizado.
Explicação:
Quando o processo ainda não foi implementado faz sentido
quebrar a demanda de um processo todo automatizadopor
uma primeira versão que faz uma parte somente.
Quando utilizar esta técnica:
Quando a funcionalidade que está sendo
desenvolvida interage com um processo
manual desenvolva o básico em uma história e
não automatize todo o processo.
Questionamentos úteis
É necessário automatizar todo o processo
agora?
Qual a menor parte que podemos entregar
agora?
Como cliente gostaria de
pagar com múltiplos
cartões de crédito.
*A primeira versão irá atender
múltiplos cartões de créditos
com base em um processo
manual.
21 – Adie o tratamento ou log de erros
Explicação:
Quebre a história em primeiro tratara funcionalidade e depois
outras que adicionam o tratamentoou log de erros.
Quando utilizar esta técnica:
Quando você quer ganhar feedback sobre a
funcionalidade para depois determinar como
tratar ou logar os erros.
Questionamentos úteis
Precisamos tratar e logar todos os erros
possíveis neste momento?
Como dono do
restaurante desejo que
todas transações de CC
seja autorizadas pela
administradora.