Share
Embed
Kit de Sobrevivência Ágil com xDD
Essa palestra foi realizada no Agile Brazil Caravana 2020 na trilha de Práticas de Trabalho. A palestra traz uma reflexão sobre algumas amarras presentes em muitos times de desenvolvimento de software, que são a falata de um comunicação rica, colaboração constante e boas práticas e técnicas de engenharia de software. A abordagem foi apresentar o mínimo que poderia ser usado para conseguir desenvolver e entregar valor para o cliente e assim foram abordadas as técnicas ATDD, BDD e TDD.
A palestra apresenta como essas técnicas podem ajudar os Times a tirar essas amarras e trazer vários outros benefícios como o design evolutivo, preocupação constante com a dívida técnica, e maximização da entrega de valor.
Paulo Igor
September 15, 2020
Transcript
33 slides
-
Sobre - Sócio Consultor do Idopter Labs - Instrutor Associado
e Agile Coach da Adaptworks - Membro ativo da comunidade Tá Safo - Diretor de Sistemas de Informação da CINBESA about.me/pigodinho @pigodinho -
Aprendemos muito E Temos aplicado bastante... - Scrum - Kanban
- SAFe / DAD - Práticas de Discovery - UX - Design Sprint - Lean Inception - PBB (Product Backlog Building) - Story Mapping - Retrospectiva - Planejamento (Iteração/Sprint, Release, Roadmap, Portfólio) - Métricas - ... - Técnicas de Engenharia ! - ATDD - TDD - BDD - Refatoração - Design Simples e Emergente - Programação em Par - Integração/Entrega Contínua - Infraestrutura como Código/Serviço - ... -
Problemas (a falta de...) - Contínua atenção à excelência técnica
e bom design aumenta a agilidade. - Simplicidade - a arte de maximizar a quantidade de trabalho não realizado - é essencial. - As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. -
Falta... - Contínua atenção à excelência técnica e bom design
aumenta a agilidade. - Simplicidade - a arte de maximizar a quantidade de trabalho não realizado - é essencial. - As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. - Excelência técnica e boas práticas de desenvolvimento - Colaboração para buscar novas abordagens que simplifiquem a solução - Comunicação eficaz e rica entre todos os participantes -
O que levar na Sacola? - Acceptance Test Driven Development
(ATDD) - Test Driven Development (TDD) xDD -
O que levar na Sacola? - Acceptance Test Driven Development
(ATDD) - Test Driven Development (TDD) - *Behavior Driven Development (BDD) xDD -
ATDD - Acceptance Test Driven Development (ATDD) - Debater -
Colaboração, Entendimento e alinhamento de expectativas - Refinar - Organizar e estruturar os testes de aceitação / exemplos - Desenvolver - Desenvolver o requisito com foco nos testes/exemplos mapeados - Apresentar - Apresentar e coletar novos direcionamentos para novos requisitos, testes, etc. -
ATDD - Debater - Acceptance Test Driven Development (ATDD) Como
comprador eu posso solicitar o cancelamento do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) -
ATDD - Refinar Como comprador eu posso solicitar o cancelamento
do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” - Acceptance Test Driven Development (ATDD) -
ATDD - Refinar Como comprador eu posso solicitar o cancelamento
do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” - Acceptance Test Driven Development (ATDD) BDD ??? -
BDD - Behavior Driven Development (BDD) Como comprador eu posso
solicitar o cancelamento do pedido para reparar um engano Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” 1 2 3 Desenvolvimento de Fora para Dentro -
BDD - Dado, Quando, Então Como comprador eu posso solicitar
o cancelamento do pedido para reparar um engano Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” - DADO - Pré-condição - Estado conhecido - Quando - Ação - Interação com o sistema - Então - Comportamento - Resultado esperado -
BDD - Dado, Quando, Então Como comprador eu posso solicitar
o cancelamento do pedido para reparar um engano Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” - DADO - Pré-condição - Estado conhecido - Quando - Ação - Interação com o sistema - Então - Comportamento/Resultado esperado -
BDD - Behavior Driven Development (BDD) 1 2 3 Desenvolvimento
de Fora para Dentro - Promove a colaboração e uma comunicação eficaz - Permite a automação para uma entrega de maior valor e qualidade - Outras Características - Linguagem Ubíqua - Documentação viva (especificação executável) - Testes automatizados e regressão saem no processo - Retorno em tempo real do progresso em relação aos critérios de aceitação - Guia o desenvolvimento e ajuda a manter os desenvolvedores focados no que é essencial -
ATDD - Refinar Como comprador eu posso solicitar o cancelamento
do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) - Acceptance Test Driven Development (ATDD) Especificação por Exemplo -
“ Ao chamarmos de "BDD", ou "ATDD", ou "Especificação por
Exemplo", queremos o mesmo resultado - um entendimento comum compartilhado do que será construído para tentar entregar o que é certo, da primeira vez. Sabemos que nunca será, mas com menos retrabalho, ficará melhor. Janet Gregory (https://janetgregory.ca/atdd-vs-bdd-vs-specification-by-example-vs/) -
ATDD - Desenvolver Como comprador eu posso solicitar o cancelamento
do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) - Acceptance Test Driven Development (ATDD) TDD Vermelho Verde Refatora -
ATDD - Desenvolver Como comprador eu posso solicitar o cancelamento
do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) - Acceptance Test Driven Development (ATDD) TDD Vermelho Verde Refatora -
TDD - Test Driven Development (TDD) - Baby Steps -
Código limpo (Refatoração) - Design Simples e Emergente - Blindagem do Código (testes automatizados) - Os testes são a base para a integração contínua - Feedback rápido para os desenvolvedores - Ajuda a diminuir a dívida técnica - Produz uma especificação técnica viva do código -
ATDD - Tudo pronto para a DEMO!!! Como comprador eu
posso solicitar o cancelamento do pedido para reparar um engano O pedido pode ser cancelado antes do envio O pedido poderá ser cancelado após o envio caso tenha alguma ocorrência no envio (roubo, extravio, ...) - Acceptance Test Driven Development (ATDD) TDD Vermelho Verde Refatora Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “aguardando envio” Quando eu solicitar o cancelamento do pedido E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações do pedido cancelado E irá alterar a situação do pedido para “cancelado” Dado que eu estou na listagem de pedidos E o pedido apresentado estiver na situação de “em trânsito” Quando eu solicitar o cancelamento do pedido E informar uma ocorrência de envio (roubo, extravio, ...) E aceitar as condições de cancelamento Então o sistema irá enviar um email de alerta para o vendedor e comprador com as informações da solicitação de cancelamento E irá alterar a situação do pedido para “aguardando cancelamento” -
- ATDD - TDD - *BDD - Testes Automatizados -
Refatoração - Design Simples e Emergente - Programação em Par - Revisão de Código - Integração/Entrega Contínua - Alinhamento de Expectativas (melhoria comunicação) - Qualidade O kit de sobrevivência é... YAGNI -
- ATDD - TDD - *BDD - Testes Automatizados -
Refatoração - Design Simples e Emergente - Programação em Par - Revisão de Código - Integração/Entrega Contínua - Alinhamento de Expectativas (melhoria comunicação) - Qualidade O kit de sobrevivência é... https://www.casadocodigo.com.br/products/livro-tdd -
- Contínua atenção à excelência técnica e bom design aumenta
a agilidade. - Simplicidade - a arte de maximizar a quantidade de trabalho não realizado - é essencial. - As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. - ATDD - TDD - *BDD - Testes Automatizados - Refatoração - Design Simples e Emergente - Programação em Par - Revisão de Código - Integração/Entrega Contínua - Alinhamento de Expectativas (melhoria comunicação) - Qualidade O kit de sobrevivência é...