SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
ENTENDENDO E APLICANDO
ESPECIFICAÇÃO POR
EXEMPLOS
LUIZA NUNES & PEDRO SILVA
AGILE BRASIL - NOVEMBRO 2016
QUEM SOMOS NÓS?
lnunes@thoughtworks.com
@luhh_nunes
psilva@thoughtworks.com
@pedrohns_
AGENDA
❏ Importância da comunicação
❏ Definição de Requisitos
❏ Especificação por Exemplo
❏ Técnicas para Definição de Requisitos
❏ BDD
❏ Mão na Massa
VAMOS PENSAR…
Como é feita a definição de requisitos de uma funcionalidade em seu
projeto?
Qual é a definição de pronto de uma funcionalidade em seu projeto?
Como envolver pessoas não técnicas em conversas sobre requisitos
técnicos?
Como mostrar ao cliente o valor de negócio entregue em uma
funcionalidade?
ESTE WORKSHOP, EM RESUMO:
Entender o valor da colaboração entre pessoas do time
Apresentar um guia para facilitar reuniões de levantamento de
requisitos
Dicas para a escrita de critérios de aceitação eficazes utilizando
Especificação por Exemplo
Requisito: Valor/Necessidade de Negócio
Estória de Usuário: Funcionalidade a ser implementada
BDD/Exemplos: Ilustração do uso da funcionalidade
Contexto: A entrega gratuita é oferecida aos clientes VIP, uma vez que eles
tenham comprado uma quantidade mínima de 5 livros. A entrega gratuita
não é oferecida aos clientes regulares ou clientes VIP que tenham comprado
qualquer produto além de livros.
Como usuário VIP do site de e-commerce
Eu quero saber quais o produtos que qualificam entrega grátis
Para saber quando eu sou elegível para tal entrega
DADO que estou logada como cliente <TIPO DE CLIENTE>
E que meu carrinho de compras contém <CONTEÚDO DO CARRINHO>
QUANDO eu prossigo para o pagamento
ENTÃO sou avisada que fui qualificada para o tipo de entrega <ENTREGA>
Tipo de Consumidor Conteúdo do Carrinho Entrega
UM EXEMPLO
Dado que a quantidade mínima de livros para se obter
entrega grátis é cinco, então esperamos o seguinte:
Tipo de Consumidor Conteúdo do Carrinho Entrega
VIP 5 Livros Grátis
VIP 4 Livros Padrão
Regular 10 Livros Padrão
VIP 5 Máquinas de Lavar Padrão
VIP
5 Livros, 1 Máquina de
Lavar
Padrão
DEFININDO
ESTÓRIAS DE USUÁRIOS
ESTÓRIA DE USUÁRIO
Independente
Negociável
Valor
Estimável
Small (pequena)
Testável
POR QUE?
▫ As inconsistências se tornam mais fáceis de serem
identificadas quando escrevemos o nosso entendimento
▫ Exemplos do mundo real nos ajuda a eliminar premissas e
definir a real regra de negócio
▫ Pessoas possuem diferentes abordagens para o mesmo
problema. Um momento para se discutir essas abordagens
evita a falácia do “group thinking”.
OS TRÊS AMIGOS
ESPECIFICAÇÃO
POR
EXEMPLO
Abordagem utilizada para definir requisitos
colaborativamente, utilizando exemplos reais ao invés de
afirmações abstratas. Especificação por exemplo se utiliza
de algumas práticas, como BDD, para a escrita dos
critérios de aceitação.
O QUE É?
O QUE NÃO É?
▫ Uma ferramenta particular de software
▫ Escrita de exemplos sem discussões
▫ Um processo escrito em pedra
Specification by Example, Gojiko Adzik
BOAS PRÁTICAS
▫ Coletar exemplos básicos diretamente dos clientes
▫ Usar protótipos/desenhos que exemplificam a UI
▫ Explicação do contexto em pequenos parágrafos
▫ Utilizar BDD nas especificações
▫ Validar/revisar frequentemente
MÁS PRÁTICAS
▫ Utilizar respostas positivas e negativas nos exemplos
▫ Utilizar classes abstratas de equivalência
▫ Explorar todas as combinações possíveis
▫ Definir explicitamente todas as dependências na especificação
TÉCNICAS PARA
DEFINIÇÃO DE ESTÓRIAS
DE USUÁRIO
TÉCNICAS PARA DEFINIR ESTÓRIAS DE USUÁRIO
▫ Workshops com o time todo
▫ Workshops com representantes dos “Três Amigos”
▫ Pair-writing
▫ Desenvolvedores frequentemente revisando as histórias antes da
iteração (IPM/pre-planning)
▫ Conversas informais
▫ Prepare somente exemplos iniciais para IPM/pre-planning ou
conversas com stakeholders
ABORDAGEM
Dada uma necessidade de negócio, entender:
▫ O "porquê” e “quem"?
▫ De onde o valor está vindo?
▫ Como o valor está relacionado ao que o usuário final
espera/precisa
▫ Se há uma solução alternativa
BDD
Formato do BDD
DADO (pré-condição)
QUANDO (ação)
ENTÃO (saída para validação)
BOAS E MÁS
PRÁTICAS
EXEMPLO - MÁS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO um usuário
Quando buscar por um cliente ingressando um certo atributo
ENTÃO o resultado esperado é exibido
EXEMPLO - MÁS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO um usuário
Quando buscar por um cliente ingressando um certo atributo
ENTÃO o resultado esperado é exibido
EXEMPLO - MÁS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO que eu estou utilizando o sistema como um Agente de Call Center
QUANDO eu digito o número do cliente na caixa de busca
E clico no botão buscar
ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma
tabela
EXEMPLO - MÁS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO que eu estou utilizando o sistema como um Agente de Call Center
QUANDO eu digito o número do cliente na caixa de busca
E clico no botão buscar
ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em
uma tabela
EXEMPLO - BOAS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO que eu estou utilizando o sistema como um Agente de Call Center
QUANDO eu busco por um cliente, ingressando seu número de telefone
ENTÃO o resultado da busca retorna o nome, endereço e documento do cliente
buscado
EXEMPLO - BOAS PRÁTICAS
Contexto: Um agente de Call Center busca por um determinado usuário por
seu número de telefone
Como um agente de Call Center
Eu quero buscar por um cliente utilizando seu número de usuário
Para encontrar as demais informações relacionadas a esse cliente
DADO que eu estou utilizando o sistema como um Agente de Call Center
QUANDO eu busco por um cliente, ingressando seu número de telefone
ENTÃO o resultado da busca retorna o nome, endereço e documento do
cliente buscado
AGORA É SUA VEZ!
SMART ALARM
Contexto: O monitor de rota deve informar quaisquer problemas no trajeto
especificado e avisar o cliente, respeitando o limite de tempo determinado.
Como usuário do aplicativo Smart Alarm
Eu quero poder adicionar um monitor de rota
Para me alertar com antecedência de problemas no percurso entre dois
endereços
SMART ALARM
BIBLIOGRAFIA
Bridging the Communication Gap - Gojko Adzic
Specification by Example - Gojko Adzic
User Stories Applied - Mike Cohn
The Agile Samurai - Jonathan Rasmusson
OBRIGADO!
@luhh_nunes | lnunes@thoughtworks.com
@pedrohns_ | psilva@thoughtworks.com

Weitere ähnliche Inhalte

Ähnlich wie Entendendo e Aplicando Especificação por Exemplo

Ähnlich wie Entendendo e Aplicando Especificação por Exemplo (20)

Desvendando o custo de não fazer a coisa certa
Desvendando o custo de não fazer a coisa certaDesvendando o custo de não fazer a coisa certa
Desvendando o custo de não fazer a coisa certa
 
Planejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidadePlanejamento estratégico para escritórios de contabilidade
Planejamento estratégico para escritórios de contabilidade
 
CRP-5215-0420-2014-11
CRP-5215-0420-2014-11CRP-5215-0420-2014-11
CRP-5215-0420-2014-11
 
Discovery: o primeiro passo da Pré Venda
Discovery: o primeiro passo da Pré VendaDiscovery: o primeiro passo da Pré Venda
Discovery: o primeiro passo da Pré Venda
 
Como desenvolver seu negocio digital pedro-quintanilha-palestra
Como desenvolver seu negocio digital pedro-quintanilha-palestraComo desenvolver seu negocio digital pedro-quintanilha-palestra
Como desenvolver seu negocio digital pedro-quintanilha-palestra
 
Template para playbook de vendas.pptx
Template para playbook de vendas.pptxTemplate para playbook de vendas.pptx
Template para playbook de vendas.pptx
 
BIZCOOL Canvas - todo o seu negócio em uma única folha
BIZCOOL Canvas - todo o seu negócio em uma única folha BIZCOOL Canvas - todo o seu negócio em uma única folha
BIZCOOL Canvas - todo o seu negócio em uma única folha
 
Apresentação - Quadro do Modelo de Negócios (1ª versão)
Apresentação - Quadro do Modelo de Negócios (1ª versão)Apresentação - Quadro do Modelo de Negócios (1ª versão)
Apresentação - Quadro do Modelo de Negócios (1ª versão)
 
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
Introdução à Metodologias de Desenvolvimento Orientadas à Testes com Exemplos...
 
Otimização de Conversão para empresas baseadas em assinaturas
Otimização de Conversão para empresas baseadas em assinaturasOtimização de Conversão para empresas baseadas em assinaturas
Otimização de Conversão para empresas baseadas em assinaturas
 
BDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum GatheringBDD não é automação de teste - Scrum Gathering
BDD não é automação de teste - Scrum Gathering
 
Gestão Empreendedora (17/09/2013)
Gestão Empreendedora (17/09/2013)Gestão Empreendedora (17/09/2013)
Gestão Empreendedora (17/09/2013)
 
Cartilha canvas detalhada
Cartilha canvas detalhadaCartilha canvas detalhada
Cartilha canvas detalhada
 
Reinventado a-carreira-do-gerente-de-projetos
Reinventado a-carreira-do-gerente-de-projetosReinventado a-carreira-do-gerente-de-projetos
Reinventado a-carreira-do-gerente-de-projetos
 
Modelo de proposta Comercial - RD
Modelo de proposta Comercial - RDModelo de proposta Comercial - RD
Modelo de proposta Comercial - RD
 
Gestão do Projeto de Design de Interação - Aula 2
Gestão do Projeto de Design de Interação - Aula 2Gestão do Projeto de Design de Interação - Aula 2
Gestão do Projeto de Design de Interação - Aula 2
 
Ppt apresentação
Ppt apresentaçãoPpt apresentação
Ppt apresentação
 
Liberty Seguros
Liberty SegurosLiberty Seguros
Liberty Seguros
 
Proposta de Valor e Modelagem de Negócios
Proposta de Valor e Modelagem de NegóciosProposta de Valor e Modelagem de Negócios
Proposta de Valor e Modelagem de Negócios
 
Cópia de Template para proposta comercial .pptx
Cópia de Template para proposta comercial .pptxCópia de Template para proposta comercial .pptx
Cópia de Template para proposta comercial .pptx
 

Entendendo e Aplicando Especificação por Exemplo

  • 1. ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOS LUIZA NUNES & PEDRO SILVA AGILE BRASIL - NOVEMBRO 2016
  • 3. AGENDA ❏ Importância da comunicação ❏ Definição de Requisitos ❏ Especificação por Exemplo ❏ Técnicas para Definição de Requisitos ❏ BDD ❏ Mão na Massa
  • 4. VAMOS PENSAR… Como é feita a definição de requisitos de uma funcionalidade em seu projeto? Qual é a definição de pronto de uma funcionalidade em seu projeto? Como envolver pessoas não técnicas em conversas sobre requisitos técnicos? Como mostrar ao cliente o valor de negócio entregue em uma funcionalidade?
  • 5. ESTE WORKSHOP, EM RESUMO: Entender o valor da colaboração entre pessoas do time Apresentar um guia para facilitar reuniões de levantamento de requisitos Dicas para a escrita de critérios de aceitação eficazes utilizando Especificação por Exemplo
  • 6. Requisito: Valor/Necessidade de Negócio Estória de Usuário: Funcionalidade a ser implementada BDD/Exemplos: Ilustração do uso da funcionalidade
  • 7.
  • 8. Contexto: A entrega gratuita é oferecida aos clientes VIP, uma vez que eles tenham comprado uma quantidade mínima de 5 livros. A entrega gratuita não é oferecida aos clientes regulares ou clientes VIP que tenham comprado qualquer produto além de livros. Como usuário VIP do site de e-commerce Eu quero saber quais o produtos que qualificam entrega grátis Para saber quando eu sou elegível para tal entrega DADO que estou logada como cliente <TIPO DE CLIENTE> E que meu carrinho de compras contém <CONTEÚDO DO CARRINHO> QUANDO eu prossigo para o pagamento ENTÃO sou avisada que fui qualificada para o tipo de entrega <ENTREGA>
  • 9. Tipo de Consumidor Conteúdo do Carrinho Entrega
  • 10. UM EXEMPLO Dado que a quantidade mínima de livros para se obter entrega grátis é cinco, então esperamos o seguinte: Tipo de Consumidor Conteúdo do Carrinho Entrega VIP 5 Livros Grátis VIP 4 Livros Padrão Regular 10 Livros Padrão VIP 5 Máquinas de Lavar Padrão VIP 5 Livros, 1 Máquina de Lavar Padrão
  • 13. POR QUE? ▫ As inconsistências se tornam mais fáceis de serem identificadas quando escrevemos o nosso entendimento ▫ Exemplos do mundo real nos ajuda a eliminar premissas e definir a real regra de negócio ▫ Pessoas possuem diferentes abordagens para o mesmo problema. Um momento para se discutir essas abordagens evita a falácia do “group thinking”.
  • 15.
  • 17. Abordagem utilizada para definir requisitos colaborativamente, utilizando exemplos reais ao invés de afirmações abstratas. Especificação por exemplo se utiliza de algumas práticas, como BDD, para a escrita dos critérios de aceitação. O QUE É?
  • 18. O QUE NÃO É? ▫ Uma ferramenta particular de software ▫ Escrita de exemplos sem discussões ▫ Um processo escrito em pedra
  • 20. BOAS PRÁTICAS ▫ Coletar exemplos básicos diretamente dos clientes ▫ Usar protótipos/desenhos que exemplificam a UI ▫ Explicação do contexto em pequenos parágrafos ▫ Utilizar BDD nas especificações ▫ Validar/revisar frequentemente
  • 21. MÁS PRÁTICAS ▫ Utilizar respostas positivas e negativas nos exemplos ▫ Utilizar classes abstratas de equivalência ▫ Explorar todas as combinações possíveis ▫ Definir explicitamente todas as dependências na especificação
  • 22. TÉCNICAS PARA DEFINIÇÃO DE ESTÓRIAS DE USUÁRIO
  • 23. TÉCNICAS PARA DEFINIR ESTÓRIAS DE USUÁRIO ▫ Workshops com o time todo ▫ Workshops com representantes dos “Três Amigos” ▫ Pair-writing ▫ Desenvolvedores frequentemente revisando as histórias antes da iteração (IPM/pre-planning) ▫ Conversas informais ▫ Prepare somente exemplos iniciais para IPM/pre-planning ou conversas com stakeholders
  • 24. ABORDAGEM Dada uma necessidade de negócio, entender: ▫ O "porquê” e “quem"? ▫ De onde o valor está vindo? ▫ Como o valor está relacionado ao que o usuário final espera/precisa ▫ Se há uma solução alternativa
  • 25. BDD
  • 26. Formato do BDD DADO (pré-condição) QUANDO (ação) ENTÃO (saída para validação)
  • 28. EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO um usuário Quando buscar por um cliente ingressando um certo atributo ENTÃO o resultado esperado é exibido
  • 29. EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO um usuário Quando buscar por um cliente ingressando um certo atributo ENTÃO o resultado esperado é exibido
  • 30. EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu digito o número do cliente na caixa de busca E clico no botão buscar ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma tabela
  • 31. EXEMPLO - MÁS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu digito o número do cliente na caixa de busca E clico no botão buscar ENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma tabela
  • 32. EXEMPLO - BOAS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu busco por um cliente, ingressando seu número de telefone ENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado
  • 33. EXEMPLO - BOAS PRÁTICAS Contexto: Um agente de Call Center busca por um determinado usuário por seu número de telefone Como um agente de Call Center Eu quero buscar por um cliente utilizando seu número de usuário Para encontrar as demais informações relacionadas a esse cliente DADO que eu estou utilizando o sistema como um Agente de Call Center QUANDO eu busco por um cliente, ingressando seu número de telefone ENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado
  • 34.
  • 35. AGORA É SUA VEZ!
  • 36. SMART ALARM Contexto: O monitor de rota deve informar quaisquer problemas no trajeto especificado e avisar o cliente, respeitando o limite de tempo determinado. Como usuário do aplicativo Smart Alarm Eu quero poder adicionar um monitor de rota Para me alertar com antecedência de problemas no percurso entre dois endereços
  • 38. BIBLIOGRAFIA Bridging the Communication Gap - Gojko Adzic Specification by Example - Gojko Adzic User Stories Applied - Mike Cohn The Agile Samurai - Jonathan Rasmusson