Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kit de Sobrevivência Ágil com xDD

Paulo Igor
September 15, 2020

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
Tweet

More Decks by Paulo Igor

Other Decks in Technology

Transcript

  1. 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
  2. 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 - ...
  3. 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.
  4. 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
  5. O que levar na Sacola? - Acceptance Test Driven Development

    (ATDD) - Test Driven Development (TDD) xDD
  6. O que levar na Sacola? - Acceptance Test Driven Development

    (ATDD) - Test Driven Development (TDD) - *Behavior Driven Development (BDD) xDD
  7. 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.
  8. 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, ...)
  9. 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)
  10. 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 ???
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. “ 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/)
  17. 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
  18. 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
  19. 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
  20. 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”
  21. - 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
  22. - 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
  23. - 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 é...