entendendo e aplicando especificação por exemplo

39
ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOS LUIZA NUNES & PEDRO SILVA AGILE BRASIL - NOVEMBRO 2016

Upload: luiza-nunes

Post on 13-Apr-2017

141 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Entendendo e Aplicando Especificação por Exemplo

ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOSLUIZA NUNES & PEDRO SILVAAGILE BRASIL - NOVEMBRO 2016

Page 2: Entendendo e Aplicando Especificação por Exemplo

QUEM SOMOS NÓS?

[email protected]

@luhh_nunes

[email protected]@pedrohns_

Page 3: Entendendo e Aplicando Especificação por Exemplo

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

Page 4: Entendendo e Aplicando Especificação por Exemplo

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?

Page 5: Entendendo e Aplicando Especificação por Exemplo

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

Page 6: Entendendo e Aplicando 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

Page 7: Entendendo e Aplicando Especificação por Exemplo
Page 8: Entendendo e Aplicando Especificação por Exemplo

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-commerceEu quero saber quais o produtos que qualificam entrega grátisPara 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>

Page 9: Entendendo e Aplicando Especificação por Exemplo

Tipo de Consumidor Conteúdo do Carrinho Entrega

Page 10: Entendendo e Aplicando Especificação por Exemplo

UM EXEMPLODado 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

Page 11: Entendendo e Aplicando Especificação por Exemplo

DEFININDO ESTÓRIAS DE USUÁRIOS

Page 12: Entendendo e Aplicando Especificação por Exemplo

ESTÓRIA DE USUÁRIO

IndependenteNegociávelValorEstimávelSmall (pequena)Testável

Page 13: Entendendo e Aplicando Especificação por Exemplo

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”.

Page 14: Entendendo e Aplicando Especificação por Exemplo

OS TRÊS AMIGOS

Page 15: Entendendo e Aplicando Especificação por Exemplo
Page 16: Entendendo e Aplicando Especificação por Exemplo

ESPECIFICAÇÃO POR EXEMPLO

Page 17: Entendendo e Aplicando 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 É?

Page 18: Entendendo e Aplicando Especificação por Exemplo

O QUE NÃO É?

▫� Uma ferramenta particular de software

▫� Escrita de exemplos sem discussões

▫� Um processo escrito em pedra

Page 19: Entendendo e Aplicando Especificação por Exemplo

Specification by Example, Gojiko Adzik

Page 20: Entendendo e Aplicando Especificação por Exemplo

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

Page 21: Entendendo e Aplicando Especificação por Exemplo

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

Page 22: Entendendo e Aplicando Especificação por Exemplo

TÉCNICAS PARA DEFINIÇÃO DE ESTÓRIAS DE USUÁRIO

Page 23: Entendendo e Aplicando Especificação por Exemplo

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

Page 24: Entendendo e Aplicando Especificação por Exemplo

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

Page 25: Entendendo e Aplicando Especificação por Exemplo

BDD

Page 26: Entendendo e Aplicando Especificação por Exemplo

Formato do BDD

DADO (pré-condição)QUANDO (ação)ENTÃO (saída para validação)

Page 27: Entendendo e Aplicando Especificação por Exemplo

BOAS E MÁSPRÁTICAS

Page 28: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO um usuárioQuando buscar por um cliente ingressando um certo atributoENTÃO o resultado esperado é exibido

Page 29: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO um usuárioQuando buscar por um cliente ingressando um certo atributoENTÃO o resultado esperado é exibido

Page 30: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO que eu estou utilizando o sistema como um Agente de Call CenterQUANDO eu digito o número do cliente na caixa de buscaE clico no botão buscarENTÃO eu vejo o nome, endereço e documento do cliente exibidos em uma

tabela

Page 31: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO que eu estou utilizando o sistema como um Agente de Call CenterQUANDO eu digito o número do cliente na caixa de buscaE clico no botão buscarENTÃO eu vejo o nome, endereço e documento do cliente exibidos em

uma tabela

Page 32: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO que eu estou utilizando o sistema como um Agente de Call CenterQUANDO eu busco por um cliente, ingressando seu número de telefoneENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado

Page 33: Entendendo e Aplicando Especificação por Exemplo

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 CenterEu quero buscar por um cliente utilizando seu número de usuárioPara encontrar as demais informações relacionadas a esse cliente

DADO que eu estou utilizando o sistema como um Agente de Call CenterQUANDO eu busco por um cliente, ingressando seu número de telefoneENTÃO o resultado da busca retorna o nome, endereço e documento do cliente buscado

Page 34: Entendendo e Aplicando Especificação por Exemplo
Page 35: Entendendo e Aplicando Especificação por Exemplo

AGORA É SUA VEZ!

Page 36: Entendendo e Aplicando Especificação por Exemplo

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 AlarmEu quero poder adicionar um monitor de rotaPara me alertar com antecedência de problemas no percurso entre dois endereços

Page 37: Entendendo e Aplicando Especificação por Exemplo

SMART ALARM

Page 38: Entendendo e Aplicando Especificação por Exemplo

BIBLIOGRAFIA

Bridging the Communication Gap - Gojko Adzic

Specification by Example - Gojko Adzic

User Stories Applied - Mike Cohn

The Agile Samurai - Jonathan Rasmusson

Page 39: Entendendo e Aplicando Especificação por Exemplo

OBRIGADO!@luhh_nunes | [email protected]@pedrohns_ | [email protected]