Você está na página 1de 12
1 HISTÓRIAS DE USUÁRIO E PLANEJAMENTO Karin Becker Instituto de Informática - UFRGS

1

HISTÓRIAS DE USUÁRIO E PLANEJAMENTO

1 HISTÓRIAS DE USUÁRIO E PLANEJAMENTO Karin Becker Instituto de Informática - UFRGS
1 HISTÓRIAS DE USUÁRIO E PLANEJAMENTO Karin Becker Instituto de Informática - UFRGS

Karin Becker Instituto de Informática - UFRGS

2 Histórias de Usuário
2
Histórias de Usuário
3
3

A premissa

Informática - UFRGS 2 Histórias de Usuário 3 A premissa Requisitos de software são um problema

Requisitos de software são um problema de comunicação

Quem vai usar Quem vai construir Os requisitos estão na cabeça de muitos

vai construir Os requisitos estão na cabeça de muitos 4 A premissa Se um dos lados
4
4

A premissa

Os requisitos estão na cabeça de muitos 4 A premissa Se um dos lados dominar a

Se um dos lados dominar a comunicação, o resultado fica comprometido

lados dominar a comunicação, o resultado fica comprometido Trabalhar juntos para que a comunicação flua e

Trabalhar juntos para que a comunicação flua e seja equilibrada

dominar a comunicação, o resultado fica comprometido Trabalhar juntos para que a comunicação flua e seja
5
5

História de Usuário

5 História de Usuário Uma funcionalidade útil da perspectiva de um usuário ou cliente BigMoneyJobs website

Uma funcionalidade útil da perspectiva de um usuário ou cliente

BigMoneyJobs website Como um usuário, desejo disponibilizar meu currículo Como um usuário, desejo restringir
BigMoneyJobs website
Como um usuário,
desejo
disponibilizar meu
currículo
Como um usuário,
desejo restringir
acesso ao meu
currículo
Como um usuário,
desejo ofertar
empregos
Como um usuário,
desejo manter meu
currículo atualizado
Como um usuário,
desejo encontrar
vagas
Como um usuário,
desejo visualizar
currículos

Todos exemplos do BigMoneyJobs usados nestes slides são extraídos (com adaptação ou não) do livro User Stories Applied, Mike Cohn, Addision Wesley.

do livro User Stories Applied, Mike Cohn, Addision Wesley. O que são “Usuários”? 6 Escrever a

O que são “Usuários”?

6
6
Mike Cohn, Addision Wesley. O que são “Usuários”? 6 Escrever a história da perspectiva do usuário

Escrever a história da perspectiva do usuário Diferentes usuários, diferentes objetivos Não refletir sobre os diferentes usuários pode levar à perda de histórias importantes e problemas de compreensão

Como empresa, desejo divulgar ofertas de empregos Como consultor de RH, desejo visualizar currículos de
Como empresa,
desejo divulgar
ofertas de
empregos
Como consultor de RH,
desejo visualizar
currículos de candidatos
Como profissional, desejo manter meu currículo atualizado Como profissional, desejo restringir acesso ao meu Como
Como profissional,
desejo manter meu
currículo atualizado
Como profissional,
desejo restringir
acesso ao meu
Como profissional,
currículo
desejo
Como um
disponibilizar meu
profissional, desejo
currículo
encontrar vagas
7
7

Papéis

Histórias devem ser CCC

encontrar vagas 7 Papéis Histórias devem ser CCC 8 Ampliar a perspectiva sobre o que é
8
8
encontrar vagas 7 Papéis Histórias devem ser CCC 8 Ampliar a perspectiva sobre o que é

Ampliar a perspectiva sobre o que é o usuário

O que eles farão com o software Como eles usam o software Conhecimento pré-existente Familiaridade com o software/computador “Persona”

Mudança de paradigma

Usuário é alguém/algo tangível Software resolve um problema concreto de alguém

“Persona” Mudança de paradigma Usuário é alguém/algo tangível Software resolve um problema concreto de alguém

CCC

CCC

9 10 “Cartões representam requisitos, ao invés de documentá-los” (R. Davies) Cartão Conversa Obter
9
10
“Cartões representam requisitos, ao invés de
documentá-los” (R. Davies)
Cartão
Conversa
Obter detalhes da história
Como um
profissional, desejo
procurar por vagas
Curto
Pode resultar em mais histórias
Anotar detalhes se quiser, mas não é um contrato
Prioridade
Estimativa
Quais critérios
podem ser usados
em uma busca?
Tem que tem
que pagar?
Anotações
Como visualizar
o resultado?
Adaptável
Quais
informações
Como um profissional, desejo
procurar por vagas
Tem que ser um
membro do site?
mostrar?
Deve-se salvar
a busca?
Acho que está
meio complexo:
é um episódio !!
CCC
CCC
11
12
Confirmação
Confirmação
Capturar as expectativas (testes de aceitação)
Lembretes sobre o que deve ser testado
O suficiente para lembrar o que deve ser testado
Decisões importantes não são escritas (para serem não
lidas)
Decisões importantes são testadas (automaticamente)
Frente
Como um
profissional, desejo
procurar por vagas
Verso
Testar se profissional está logado no site
Testar se profissional não excedeu buscas de
acordo com sua categoria
Testar busca por localização (pais/cidade),
faixa salarial e função
Testar que mostra lista de vagas (nome da
empresa, função, faixa salarial)
Testar que lista de vagas pode ser ordenada
por empresa, função ou faixa salarial
Testar que mostra detalhes de vaga (bla,
bla, bla)
13
13

O “Cliente”

13 O “Cliente” Will Extreme Programming kill your customer?* Cliente = Time do Cliente “Comprometido”

Will Extreme Programming kill your customer?* Cliente = Time do Cliente

“Comprometido” representante do negócio (gerente de produto, dono do produto, etc)

Usuários, especialistas, representantes de partes interessadas

Analistas, testadores e Q&A, projetistas de interface

Analistas, testadores e Q&A, projetistas de interface *
Analistas, testadores e Q&A, projetistas de interface *

* www.coldewey.com/publikationen/conferences/oopsla2001/agileWorkshop/hendrickson.html

14
14

Identificando histórias

14 Identificando histórias “Eliciação e captura (de requisitos) deveriam ser

“Eliciação e captura (de requisitos) deveriam ser ilícitos” (Mike Cohn)

Requisitos estão prontos, basta fazermos as perguntas certas

Metáfora do Arrastão (trawling)

Malhas de diferentes tamanhos Tempo de vida Múltiplas passadas Pescadores experientes

de vida Múltiplas passadas Pescadores experientes Técnicas de Identificação 15 Entrevista Popular

Técnicas de Identificação

15
15
Pescadores experientes Técnicas de Identificação 15 Entrevista Popular Escolha bem quem entrevistar Desejo

Entrevista

Popular Escolha bem quem entrevistar Desejo vs necessidade Perguntas abertas e livres que contexto

Questionário

Ótima para priorizar Menos eficiente para identificar requisitos Difícil investigar os detalhes

Observação

Palavras tomam outro sentido

Técnicas de Identificação

16
16
Palavras tomam outro sentido Técnicas de Identificação 16 Workshops Planejamento inicial (visão de produto, visão de

Workshops

Planejamento inicial (visão de produto, visão de release) Combina brainstorming com prototipação básica

Muitas histórias (priorização e detalhamento depois) Storyboards

Personas Cenários de uso Walkthrough para identificação de histórias

Key players Ênfase é quantidade, e não qualidade

Cenários de uso Walkthrough para identificação de histórias Key players Ênfase é quantidade, e não qualidade

Escrevendo Histórias

Escrevendo Histórias

17
17
 
18
18
 

Proposta Mike Cohn

Como usuário, desejo poder fazer cálculos matemáticos básicos Com um papel claro

Como declarante de imposto de renda, desejo poder fazer cálculos matemáticos básicos

 
 
 

Com razão clara (valor agregado)

Como declarante de imposto de renda, desejo poder fazer cálculos matemáticos básicos para sumarizar itens para os quais são declaradas apenas totalizações

 
 
 
 

Granularidade das Histórias

Granularidade das Histórias

19
19
 
20
20
 
totalizações     Granularidade das Histórias Granularidade das Histórias 19   20  
totalizações     Granularidade das Histórias Granularidade das Histórias 19   20  
totalizações     Granularidade das Histórias Granularidade das Histórias 19   20  
totalizações     Granularidade das Histórias Granularidade das Histórias 19   20  

Épico

Propriedades das Histórias

21 22 Como headhunter, desejo saber tempo médio de colocação em empresas Independente Negociável Como
21
22
Como headhunter,
desejo saber tempo
médio de colocação
em empresas
Independente
Negociável
Como headhunter,
desejo extrair relatórios
sobre preenchimento de
vagas
Valor
Como headhunter,
desejo saber as
vagas preenchidas
por período de
tempo
Estimável
Small (pequena)
Como um headhunter,
desejo análise das
receitas obtidas por
colocações
Testável
Bill Wake. Extreme programming explored.
Propriedades : Independente
Propriedades: Negociável
23
24

Evitar sempre que possível introduzir dependências entre histórias Dificuldades com priorização e estimativas Exemplo

Como comprador, desejo pode pagar com Visa Como comprador, desejo pode pagar com Master

Como comprador, desejo poder pagar com um tipo de cartão de crédito Como comprador, desejo quero ter duas opções de pagamento por cartão de crédito

quero ter duas opções de pagamento por cartão de crédito Histórias não são contratos de requisitos

Histórias não são contratos de requisitos implementáveis Detalhes são negociados durante a conversa Desafio: quanto detalhe incluir?

Uma ou duas frases para lembrar sobre o que conversar Notas sobre questões a serem resolvidas durante a conversa

Todo detalhe acertado torna-se teste de aceitação

Notas sobre questões a serem resolvidas durante a conversa Todo detalhe acertado torna-se teste de aceitação

Propriedades: Negociável

25
25
Propriedades: Negociável 25 Propriedades: Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história
Propriedades: Negociável 25 Propriedades: Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história

Propriedades: Negociável

26
26
Propriedades: Negociável 25 Propriedades: Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história

Frente

Negociável 25 Propriedades: Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história Mais

Verso

Negociável 25 Propriedades: Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história Mais ou
27
27

Propriedades : Estimável

Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história Mais ou menos certeza Quando
Negociável 26 Frente Verso 27 Propriedades : Estimável Tamanho da história Mais ou menos certeza Quando

Tamanho da história

Mais ou menos certeza

Quando não é possível estimar

Falta de conhecimento do domínio

Conversar para ter um entendimento superficial

Propriedades : Pequena

28
28
ter um entendimento superficial Propriedades : Pequena 28 Dividir histórias muito grandes episódios história

Dividir histórias muito grandes

episódios história composta história complexa

Falta de conhecimento técnico

Spike Aprender o suficiente para poder estimar A história do spike, e a história real

Muito grande

Episódio Placeholder para um requisito tomando forma e que deve ser discutido (quando o tempo certo chegar)

Combinar histórias muito pequenas

para um requisito tomando forma e que deve ser discutido (quando o tempo certo chegar) Combinar

Propriedades : Pequena

29
29
Propriedades : Pequena 29 História composta Como profissional, desejo postar meu currículo Abordagens comuns

História composta

Como profissional, desejo postar meu currículo
Como profissional, desejo postar meu currículo

Abordagens comuns

Decomposição CRUD

Como profissional desejo

adicionar curriculo (formação, experiência, salario, etc)

modificar curriculo existente

ter múltiplos curriculos disponíveis

etc

Decomposição orientada a dados

Como profissional desejo

adicionar e editar formação

adicionar e editar experiëncia

adicionar e modificar salário

ter múltiplos curriculos disponíveis

etc

• ter múltiplos curriculos disponíveis • etc Propriedades : Pequena 30 História complexa Como cliente,

Propriedades : Pequena

30
30
curriculos disponíveis • etc Propriedades : Pequena 30 História complexa Como cliente, desejo pagar minha anuidade

História complexa

Como cliente, desejo pagar minha anuidade com cartão de crédito
Como cliente, desejo pagar minha anuidade com cartão de crédito

Abordagem comum : Investigar

Como desenvolvedor, desejo investigar o processsamento de pagamento CC na web Spike Como cliente, desejo
Como desenvolvedor, desejo investigar o processsamento de
pagamento CC na web
Spike
Como cliente, desejo pagar minha anuidade com cartão de crédito

Propriedades : Testável

31
31
anuidade com cartão de crédito Propriedades : Testável 31 Passar em testes de aceitação prova que

Passar em testes de aceitação prova que a história foi implementada corretamente Desenvolvimento incremental

Regressão Poucos são os testes que não podem ser automatizados

incremental Regressão Poucos são os testes que não podem ser automatizados 32 Troca de paradigma e
32 Troca de paradigma e vantagens
32
Troca de paradigma e vantagens

Histórias : Por quê?

Histórias : Por quê?

33 34 Histórias mudam o foco de escrever para conversar Construir o que se pediu,
33
34
Histórias mudam o foco de escrever para conversar
Construir o que se pediu, mas não o que era necessário
A dificuldade da escrita
Avisos paraquiais
Escritos de boa fé, mas ….
“Na sexta feira às sete, os meninos do Oratório farão
uma representação da obra “Hamlet” de Shakespeare,
no salão da igreja. Toda a comunidade está convidada
para tomar parte nesta tragédia.”
“Prezadas senhoras, não esqueçam a próxima venda
para beneficência. É uma boa ocasião para se livrar das
coisas inúteis que há na sua casa. Tragam os seus
maridos!”
Histórias : Por quê?
35
Histórias permitem balancear a comunicação entre
negócio e desenvolvimento
Histórias são a base do desenvolvimento iterativo
(incremental, e ágil)
Histórias facilitam o planejamento
Histórias encorajam a concepção compartilhada de
um produto
36
Histórias vs. Casos de Uso

Histórias vs. Casos de Uso

Histórias vs. Casos de Uso

37
37
 
38
38
 

Ivar Jacobson

   

Tornou-se popular com UML e o Processo Unificado

Identificar e representar o comportamento pretendido do sistema em desenvolvimento, sem a preocupação de especificar como este comportamento é implementado

Quais são as necessidades do usuário? Como o usuário e o sistema interagem para atender estas necessidades? Quem/quais são as partes envolvidas nesta interação? Descreve o que o sistema faz, não como faz

Requisitos funcionais

Deriva a busca e definição de requisitos não funcionais

o que o sistema faz, não como faz Requisitos funcionais Deriva a busca e definição de
Como profissional, desejo candidatar- me a vagas Como profissional, Como um desejo profissional, disponibilizar meu
Como profissional,
desejo candidatar-
me a vagas
Como profissional,
Como um
desejo
profissional,
disponibilizar meu
desejo encontrar
currículo
vagas
Como profissional, desejo manter meu currículo atualizado
Como profissional,
desejo manter meu
currículo atualizado
Como empresa, desejo divulgar ofertas de empregos
Como empresa,
desejo divulgar
ofertas de
empregos
Como consultor de RH, desejo visualizar currículos de candidatos
Como consultor de RH,
desejo visualizar
currículos de candidatos
Como empresa, desejo divulgar ofertas de empregos Como consultor de RH, desejo visualizar currículos de candidatos
 

Casos de Uso

Casos de Uso

39
39
 
40
40
 

descreve uma interação típica entre usuário(s) e sistema

uma função perceptível do ponto de vista externo um objetivo a ser atingido com o sistema uma seqüência de ações - incluindo suas variantes - que o sistema/ator devem executar com o objetivo de produzir como resultado algo que atenda as necessidades de um ou mais atores (usuário)

“Um CASO DE USO é um documento TEXTUAL. O mais importante neste trabalho é ESCREVER TEXTO que detalha cada caso de uso” (Craig Larmann)

Preliminar Essencial Concreto Informal vs Templates

Preliminar Essencial Concreto Informal vs Templates As a recruiter, I’d like to pay for a Use
As a recruiter, I’d like to pay for a Use Case Title: Pay for a
As a recruiter, I’d
like to pay for a
Use Case Title: Pay for a job posting
Primary Actor: Recruiter
Precondition: The job information has been entered but is not viewable.
Success Guarantees: Job is posted; recruiter's credit card is changed.
Main Success Scenario
job posting with
credit card
1. Recruiter submits credit card number, date, and authentication information.
2. System validates credit card.
3. System charges credit card full amount.
4. Job posting is made viewable to job seekers.
5. Recruiter is given a unique confirmation number.
Extensions
2a: The card is not a type accepted by the system.
2a1: The system notifies the user to use a different card.
2b: The card is expired.
2b1: The system notifies the user to use a different card.
2c: The card is invalid.
2c1: The system notifies the user to use a different card.
3a: The card has insufficient credit available to post the ad.
3a1: The system charges as much as it can to the current card.
3a2: The user is told about the problem and asked to enter a second credit card for the remaining charge.
The use case continues at Step 2.
for the remaining charge. The use case continues at Step 2.

http://www.mountaingoatsoftware.com/articles/advantages-of-user-stories-for-requirements

Histórias vs. Casos de Uso

Histórias vs Casos de Uso

41 42 Ambas São instrumentos de identificação e “expressão” (ainda que temporária) de requisitos Guiam
41
42
Ambas
São instrumentos de identificação e “expressão” (ainda que temporária) de requisitos
Guiam o desenvolvimento
Principais diferenças
Escopo
Ambas são focadas em valor ao negócio
Caso de Uso: Uma função completa da perspectiva do usuário
História: Uma breve descrição de funcionalidade, tal como percebida por um usuário, priorizada e estimada
Um caso de uso pode compreender muitas histórias
Nível de completude
Requisitos
Critérios de aceitação
Propósito
Histórias são usadas para planejar, e são usadas como lembretes de conversas nas quais detalhes
devem ser obtidos
Casos de uso documentam um acordo contre cliente e tiome de desenvolvimento
Longevidade
Casos de uso permanecem ao longo da vida de um produto
Histórias só existem em backlogs de coisas a fazer ou em desenvolvimento
http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/
Conclusões
44
43
Conclusões
Mudanças de paradigma na identificação, expressão e
verificação de requisitos
Abordagem arrastão
Se a premissa é problema de comunicação, então vamos
conversar
Histórias
Histórias balançam a comunicação entre negócio e
desenvolvimento
Histórias são a base do desenvolvimento iterativo
(incremental, e ágil)
Histórias facilitam o planejamento
45
45

Para saber mais …

45 Para saber mais … Mike Cohn Blog blog.mountaingoatsoftware.com/ Tutoriais Effective user for agile requirements

Mike Cohn

Blog

blog.mountaingoatsoftware.com/

Tutoriais

Effective user for agile requirements www.mountaingoatsoftware.com/presentations

Livros

Cohn, M. User Stories Applied: For Agile Software Development. Pearson.

www.mountaingoatsoftware.com/presentations Livros Cohn, M. User Stories Applied: For Agile Software Development. Pearson.