entendendo e aplicando especificação por exemplo

Post on 13-Apr-2017

141 Views

Category:

Business

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ENTENDENDO E APLICANDO ESPECIFICAÇÃO POR EXEMPLOSLUIZA NUNES & PEDRO SILVAAGILE 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-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>

Tipo de Consumidor Conteúdo do Carrinho Entrega

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

DEFININDO ESTÓRIAS DE USUÁRIOS

ESTÓRIA DE USUÁRIO

IndependenteNegociávelValorEstimávelSmall (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ÁSPRÁ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 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

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

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

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

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

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

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 AlarmEu quero poder adicionar um monitor de rotaPara 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

top related