$30 off During Our Annual Pro Sale. View Details »

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. Kit de Sobrevivência Ágil
    com xDD
    Paulo Igor
    about.me/pigodinho

    View Slide

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

    View Slide

  3. ~20 anos se
    passaram e ainda
    estamos buscando
    A agilidade

    View Slide

  4. 4 Valores
    12 princípios

    View Slide

  5. stateofagile.com - 14th Annual State of Agile report (2020)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. Comunicação
    http://agilemodeling.com/essays/communication.htm

    View Slide

  10. Kit de
    Sobrevivência
    Ágil

    View Slide

  11. O que levar na Sacola?
    xDD

    View Slide

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

    View Slide

  13. O que levar na Sacola?
    - Acceptance Test Driven Development (ATDD)
    - Test Driven Development (TDD)
    - *Behavior Driven Development (BDD)
    xDD

    View Slide

  14. ATDD
    - Acceptance Test Driven Development (ATDD)

    View Slide

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

    View Slide

  16. 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, ...)

    View Slide

  17. 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)

    View Slide

  18. 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 ???

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide


  24. 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/)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. 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”

    View Slide

  29. O kit de sobrevivência é...
    - ATDD
    - TDD
    - *BDD

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. Kit de Sobrevivência Ágil com xDD
    OBRIGADO!!!
    Paulo Igor
    about.me/pigodinho

    View Slide