Ganhando mais agilidade nas especificações de produto utilizando uma base de BDD

Compartilhando meus aprendizados utilizando o BDD para você ganhar mais agilidade nas suas especificações de produto!

Ganhando mais agilidade nas especificações de produto utilizando uma base de BDD
Photo by Pawel Czerwinski / Unsplash

Bom, neste post de hoje não vou entrar muito em detalhes sobre a etimologia da palavra BDD (Behavior Driven Development), pois considero que você já deve estar cansado de ver sobre a teoria em outros posts.

Por isso, hoje quero compartilhar meus aprendizados utilizando o BDD para ganhar mais agilidade nas minhas especificações de produto!

Mão na massa!

Durante minhas especificações, fui notando que vários comportamentos se repetiam nos produtos que eu trabalhava, independente do contexto, ou seja, comportamentos padrões. Por muitas vezes eu fui copiando esses comportamentos de um backlog para o outro. Isso mesmo, um CTRL + C e CTRL + V.

Com o tempo fui percebendo que isso não era sustentável e que poderia ganhar mais agilidade nesse processo de especificação, evitando retrabalho, porque eu sempre precisava ficar atualizando os backlogs quando algo no BDD era alterado.

Foi aí que surgiu a ideia de criar uma base de conhecimento com BDDs padrões.

Base genérica de critérios de aceitação dentro da Wiki do Azure DevOps
Base genérica de critérios de aceitação dentro da Wiki do Azure DevOps

Essa base genérica já foi criada em uma Wiki dentro da própria ferramenta utilizada pelo time de engenharia, o Azure DevOps. O intuito de manter dentro dessa ferramenta era que os desenvolvedores já tinham familiaridade com a sua utilização, então tudo continuava dentro do “seu ambiente” de desenvolvimento.

Foram mapeados os comportamentos que mais se repetiam nos nossos produtos e descritos no formato BDD, mas de uma forma genérica.

Alguns exemplos de BDDs genéricos que criamos:

Campos obrigatórios não preenchidos

  • Dado que o usuário tenha acesso / permissão [NOME_PERMISSÃO]
  • E que está cadastrando ou editando [ALGUMA_COISA]
  • Quando ele não preencher todos os campos obrigatórios
  • Então o botão de salvar ficará desabilitado
  • E os campos obrigatórios ficarão destacados em vermelho desde que já tenha tido foco do cursor

Identificação de alterações ao atualizar página - Opção RECARREGAR

  • Dado que o usuário tenha acesso / permissão [NOME_PERMISSÃO]
  • E que está cadastrando ou editando [ALGUMA_COISA]
  • Quando tiver alterações não salvas
  • E ele atualizar a página do navegador Então será exibida a dialog do próprio navegador: Título: "Atualizar site?", Mensagem: "É possível que as alterações feitas não sejam salvas.", Opções: "RECARREGAR (ação primária)" e "CANCELAR"
  • E ele escolher a opção "RECARREGAR"
  • Então a página será atualizada
  • E as atualizações serão perdidas