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

Kit de Sobrevivência Ágil com xDD

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →
Avatar for Paulo Igor 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.

Avatar for Paulo Igor

Paulo Igor

September 15, 2020

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