BDD Warriors na Creditas

BDD Warriors na Creditas

Quando estive na Agile Brazil 2017 participei de um workshop chamado BDD Warriors, um jogo sobre Behavior Driven Development desenvolvido pela Ana Carolina Hermann.

Explicando o BDD Warriors, nas palavras de sua criadora:

BDD Warriors é um jogo de cartas Print & Play projetado para auxiliar iniciantes a pensar em termos de cenários e questionar a lógica da especificação, além de fixar a sintaxe básica.

Achei muito legal a ideia e vi que seria interessante trazer esse jogo para o time de tecnologia da Creditas.

Por que trazer para a Creditas?

Nosso modelo de trabalho traz muita autonomia e responsabilidades para cada time, sendo cada um responsável pelo refining das histórias de usuário que vão entrar na sprint. Não temos, por exemplo, Product Owners dedicados por times, então fica a cargo dos desenvolvedores fazer essa atividade.

Isso foi pauta de outro artigo, compartilhado aqui pelo Ronaldo.

Em linhas gerais, após nosso o refining, nossas histórias de usuário são compostas de:

  • Casos de uso
  • Critérios de aceite
  • Cenários *

Cenários é o tópico onde quero chegar. Os desenvolvedores já escrevem cenários nas histórias de usuário, falando do comportamento do software sob a ótica do(s) nosso(s) cliente(s). Porém, esse não é um item obrigatório em todas elas.

Não buscamos escrever os cenários apenas por escrever. Queremos que as práticas do BDD sejam algo natural para os times.

O BDD tem o potencial de tornar nossa comunicação fluída e aderente ao nosso negócio, refletindo melhor o comportamento na implementação das soluções. Os exemplos escritos com Gherkin servirão como guia para o desenvolvimento e, quando associados com testes automatizados, podem se tornar documentação viva.

O jogo entra aqui como uma forma de reforçar o uso das técnicas do BDD e a repetição dos cenários ajuda a fixar o Gherkin, que nada mais é que uma forma de começar a escrever cenários (depois que estivermos bons nisso, tiramos a “rodinha” e podemos usar quaisquer formatos).

Antes de falar do jogo: o que é o BDD?

Uma pequena contextualização antes de falar sobre o jogo: BDD é um conjunto de técnicas e práticas de desenvolvimento de software focadas em comunicação, que buscam garantir que todos os envolvidos num projeto tenham clareza e compreensão sobre o comportamento que o software deverá ter.

Com BDD, buscamos mitigar os riscos de projetos falharem por estarem desalinhados com as necessidades do negócio e então não fazerem o que é esperado que façam.

BDD IN ACTION
Projetos bem-sucedidos devem criar funcionalidades corretamente e criar as funcionalidades corretas. Retirado do livro BDD in Action por John Ferguson Smart.

Em seu core, o BDD traz a técnica de especificação por exemplo, que encoraja a conversa entre todos os envolvidos num projeto, de desenvolvedores a stakeholders, para que juntos eles possam descrever exemplos de como cada funcionalidade deve se comportar.

A técnica mais comum para documentar os exemplos é usar uma linguagem estruturada conhecida como Gherkin.  

Estrutura de um cenário, que é a representação de um exemplo, usando o Gherkin
Exemplo concreto de um cenário

O que o jogo tem de legal?

Através da ludicidade do jogo, é possível exercitar a prática da especificação e da comunicação simples e pura, enquanto brincamos com a dificuldade de se fazer entender ao criar os cenários.

Ou seja, quase sem perceber, podemos melhorar nossa capacidade de criar especificações claras para um problema e como comunicamos esse entendimento e especificações para outros.

Como o jogo funciona?

São 2 a 6 jogadores e cada um possui pequenos identificadores com uma cor e/ou símbolo.

Mini identificadores para os jogadores

Cada jogador começa com 5 cartas na mão. A cada rodada, uma carta é jogada e outra é comprada da pilha.

O conteúdo das cartas é variado, podendo ser cláusulas, coringas ou de ação. Cada carta vai dar ao jogador a pontuação indicada no topo da mesma.

Carta cláusula

São as frases iniciadas com uma das palavras reservadas do Gherkin: Dado, E, Quando e Então. As lacunas devem ser preenchidas na hora em que o cenário ficar pronto.

Cartas de cláusulas

Carta coringa

São frases sem uma palavra reservada no início, podendo ser jogada em qualquer parte de um cenário – desde que seja utilizada para finalizá-lo.

Carta coringa

Carta de ação

São cartas que permitem uma ação especial para ganhar alguma vantagem dentro do jogo.

Cartão de ação

Cada jogador joga uma carta por vez e o objetivo do jogo é montar os cenários seguindo a sintaxe proposta pelo Gherkin.

 

Dado

E (opcional)

Quando

E (opcional)

Então

Os jogadores podem começar cenários concomitantes o quanto quiserem e podem jogar qualquer cláusula.

O jogador que jogar a última carta de um cenário terá que preencher as lacunas.

Os jogadores que participaram do cenário ganham os pontos das cartas se, após preencher as lacunas, todos os jogadores concordarem que o cenário fez sentido.

E como foi?

Fizemos duas rodadas aqui na Creditas, em ambas as dinâmicas reservei os primeiros minutos pra explicar alguns conceitos de BDD e depois as regras do jogo. Em média o jogo teve duração de 1 hora.

No início da partida surgem muitas dúvidas – especialmente relacionadas com o formato dos cenários (exemplos) – por isso é imprescindível ter um facilitador para iniciar o jogo explicando os conceitos. Passados esses minutos de dúvidas iniciais o jogo flui bem naturalmente.

O resultado final foi bem legal, o jogo funciona muito bem como uma ferramenta leve para trazer o conceito para a realidade prática. Hoje é bem mais fácil conversarmos sobre um item falando em termos de comportamento e mais histórias de usuário começaram a ganhar documentação em formato de cenários.

Feedback da galera da segunda rodada

Pedi feedback aos participantes após cada partida e compilei os da última rodada na imagem acima. Um ponto que destaco é que várias pessoas acharam que seria bem interessante jogar utilizando cartas com os termos do negócio da empresa no lugar de vampiros e zumbis.

Parece que eles pegaram o espírito da coisa, né?

Quero jogar, por onde começo?

  • Tenha os jogos impressos e, se possível, coloridos e com gramatura maior ou igual a cartão de visitas (imprimir no sulfite é bad vibes)
  • Antes de imprimir, certifique-se de que as cartas de ação, cláusulas e coringas tenham o mesmo tamanho, para que possam ser embaralhadas
  • Prepare um espaço com mesas para os grupos, não jogue no chão =(
  • Faça uma introdução rápida ao tema, falando de BDD e explicando as regras do jogo
  • Tenha um facilitador
  • Cada facilitador conseguirá dar suporte para 2 ou 3 grupos simultaneamente, então tenha controle de quantas pessoas vão facilitar x jogar 😉

Onde encontrar mais informações sobre o jogo?

Acesse o site oficial: https://bddwarriors.wordpress.com/

Software Quality Engineer. Acredita em automação e colaboração para construir o melhor software. Escreve sobre testes e qualidade em: http://blog.howtotest.com.br/