54
BDD no Ciclo de Vida do Projeto Anderson Casimiro @duodraco

BDD no ciclo de vida do projeto

Embed Size (px)

Citation preview

Page 1: BDD no ciclo de vida do projeto

BDDno Ciclo de Vida do ProjetoAnderson Casimiro

@duodraco

Page 2: BDD no ciclo de vida do projeto

Agenda

Nossa nada mole vida

Quais são os Problemas

E qual seria a solução?

BDD

Ensaio sobre a prática

Considerações

Page 3: BDD no ciclo de vida do projeto

Nossa nada mole vida

Page 4: BDD no ciclo de vida do projeto

Como a área de negócio descreveu o mais novo projeto para a área de tecnologia

Page 5: BDD no ciclo de vida do projeto

… que foi descrito assim pelo cliente

Page 6: BDD no ciclo de vida do projeto

O Gerente de Projetos entendeu assim

Page 7: BDD no ciclo de vida do projeto

… que o Arquiteto prontamente desenhou para todos

Page 8: BDD no ciclo de vida do projeto

Aí o Desenvolvedor fez o projeto assim…

Page 9: BDD no ciclo de vida do projeto

… que foi planejado para ser testado assim…

Page 10: BDD no ciclo de vida do projeto

… e o pessoal de infraestrutura provisionou assim

Page 11: BDD no ciclo de vida do projeto

O pessoal do Marketing começou a vender assim

Page 12: BDD no ciclo de vida do projeto

… e o projeto foi entregue assim, só que algum tempo depois…

Page 13: BDD no ciclo de vida do projeto

A documentação ficou assim…

Page 14: BDD no ciclo de vida do projeto

A acabou custando mais ou menos isso

Page 15: BDD no ciclo de vida do projeto

Quando na verdade, o cliente queria algo assim…

Page 16: BDD no ciclo de vida do projeto

Quais são os problemas?

Page 17: BDD no ciclo de vida do projeto

1.

Testes

Qualidade do Software é fundamental

Page 18: BDD no ciclo de vida do projeto

2.

Documentação

Problemas sobre o Conhecimento do projeto comprometem sua evolução

Page 19: BDD no ciclo de vida do projeto

3.

Conflito

Conflito sobre o entendimento do trabalho a ser feito prejudica o projeto

Page 20: BDD no ciclo de vida do projeto

4.

Comunicação

Todas as áreas interessadas deveriam “falar a mesma língua”

Page 21: BDD no ciclo de vida do projeto

E qual seria a solução?

Page 22: BDD no ciclo de vida do projeto

1.

Ágil

Metodologias de trabalho focadas na entrega de valor e resposta a mudanças

Page 23: BDD no ciclo de vida do projeto

2.

Lean

Entregas granulares garantem a Agilidade e permitem controle fino sobre a Qualidade

Page 24: BDD no ciclo de vida do projeto

2.

Lean

Entregas granulares garantem a Agilidade e permitem controle fino sobre a Qualidade

Page 25: BDD no ciclo de vida do projeto

3.

Processo

Com passo uniforme e conhecido, a expectativa é conhecida por todos os envolvidos

Page 26: BDD no ciclo de vida do projeto

4.

Dialeto

A comunicação deve ser homogênea por toda a cadeia produtiva

Page 27: BDD no ciclo de vida do projeto

Qual a resposta?

42

BDD

Processo Ágil e Lean usando um Dialeto Comum, baseado em BDD

Page 28: BDD no ciclo de vida do projeto
Page 29: BDD no ciclo de vida do projeto

BehaviorDrivenDevelopment

Page 30: BDD no ciclo de vida do projeto

(…) é uma técnica de desenvolvimento Ágil que encoraja colaboração entre desenvolvedores, setores de qualidade e pessoas não-técnicas ou de negócios num projeto de software.(…)

Os focos do BDD são a linguagem e as interações usadas no processo de desenvolvimento de software. Desenvolvedores usam sua língua nativa em combinação com a linguagem ubíqua, que lhes permite concentrar nas razões pelas quais o código deve ser criado, e não em detalhes técnicos, além de minimizar traduções entre a linguagem técnica na qual o código é escrito e outras linguagens de domínio, usuários, clientes, gerência do projeto, etc.

Page 31: BDD no ciclo de vida do projeto

User Story+Cenários

Teste dos CenáriosDesenvolvimento

Roteiro de Testes Entrega

Page 32: BDD no ciclo de vida do projeto

Gherkin

É uma linguagem legível para qualquer área com a qual descrevemos o comportamento do software sem detalhar

como este comportamento é implementado.

Page 33: BDD no ciclo de vida do projeto

Funcionalidade: Sacar dinheiro do caixa eletrônico

Um usuário com uma conta no banco poderia sacar dinheiro do caixa.

Dado que el@ tem uma conta e um cartão válido, el@ poderia fazer a transação. O caixa eletrônico liberará a quantia de dinheiro solicitada, devolver o cartão e subtrair o valor do saque do montante da conta

Cenário: Cenário 1 Dado pré condições Quando ações/gatilhos Então resultados

Cenário: Cenário 2 ...

Page 34: BDD no ciclo de vida do projeto

Cenário: Eric quer sacar dinheiro de sua conta pelo caixa eletrônico Dado que Eric tenha um cartão válido E seu saldo seja de $100 Quando ele inserir seu cartão E sacar $45 Então o caixa eletrônico deve liberar $45 E seu saldo deve ser agora de $55

Page 35: BDD no ciclo de vida do projeto

Contexto: Um usuário saca dinheiro de um caixa eletrônico Dado que <Nome> tenha um cartão válido E seu saldo for <SaldoInicial> Quando ele inserir o cartão E saque $<ValorDoSaque> Então o caixa eletronico libera $<ValorDoSaque> E seu saldo deve ser de $<NovoSaldo>

Exemplos: | Nome | Saldo Inicial | ValorDoSaque | NovoSaldo| | Eric | 100 | 45 | 55 | | Pranav | 100 | 40 | 60 | | Ed | 1000 | 200 | 800 |

Page 36: BDD no ciclo de vida do projeto

Ensaio sobre a prática

Page 37: BDD no ciclo de vida do projeto

1.

Visão

Todos os envolvidos conhecem o projeto em linhas gerais. Toda a documentação começa aqui.

Page 38: BDD no ciclo de vida do projeto
Page 39: BDD no ciclo de vida do projeto

2.

Backlog

Formado por User Stories desde o gestor de tarefas. A descrição do Item deve ser feita já em Gherkin

Page 40: BDD no ciclo de vida do projeto
Page 41: BDD no ciclo de vida do projeto

3.

Desenvolvendo

Essa User Story é adicionada ao código do projeto, tornando-se dependência para a construção do mesmo

Page 42: BDD no ciclo de vida do projeto
Page 43: BDD no ciclo de vida do projeto

4.

Integrando

Para que a nova adição continue no fluxo, todas as User Stories devem ser testadas garantindo a integridade do projeto

Page 44: BDD no ciclo de vida do projeto
Page 45: BDD no ciclo de vida do projeto

5.

Testando

Os Testes de Aceitação, ou Homologação, devem considerar o conjunto de User Stories desenvolvidas

Page 46: BDD no ciclo de vida do projeto
Page 47: BDD no ciclo de vida do projeto

6.

Documentando

As User Stories prontas já constituem uma rica documentação, sem qualquer retrabalho

Page 48: BDD no ciclo de vida do projeto
Page 49: BDD no ciclo de vida do projeto

7.

Entregando e Validando

A entrega pode (e deve) ser validada baseando-se na documentação gerada.

Page 50: BDD no ciclo de vida do projeto

Considerações

Page 51: BDD no ciclo de vida do projeto

Com a linguagem uniforme por todo o Ciclo de Vida espera-se que os conflitos de compreensão sejam minimizados e/ou eliminados, com grande ganho de produtividade.

Page 52: BDD no ciclo de vida do projeto

Gherkin

- Documentação- Testes- Compreensão- Comunicação- Validação

Page 53: BDD no ciclo de vida do projeto

A cor do sangue é a mesma para todos

Page 54: BDD no ciclo de vida do projeto

[email protected]

slideshare.net/duodraco