Quando quis incentivar o uso do Test Driven Development , executei um Cyber-Dojo . Com esse tipo de exercício, a ênfase não está no código em si, mas no processo de escrita do código .
Passamos uma tarde, em pares, repetindo o mesmo kata, mas sob condições diferentes. Começamos com todos os grupos fazendo um exercício ao mesmo tempo. Isso forneceu uma linha de base.
Em seguida, discutimos alguns dos princípios básicos do TDD, todos mudaram de parceiro e repetiram o mesmo kata. Repetimos o mesmo kata para enfatizar menos a geração de código e, em vez disso, concentrar as pessoas no processo de nomear casos de teste e no ciclo Vermelho / Verde.
Em seguida, repetimos o kata novamente, mas aproximadamente a cada 10 minutos uma pessoa em cada grupo se deslocava para outro grupo, simulando os ambientes de equipe bastante fluidos que costumamos encontrar nos dias de hoje.
Na iteração final, os dois parceiros foram alterados a cada 10 minutos ou mais em grupos diferentes. Isso ajudou a demonstrar que, com o TDD, mesmo a transferência de uma equipe para uma equipe completamente diferente não precisa necessariamente ser muito dolorosa, pois o projeto deve ter apenas um ciclo de vermelho / verde a cada trabalho.
O interessante é que havia poucas pessoas que haviam feito algum TDD antes da sessão, mas que conhecimento sobre TDD havia se espalhado rapidamente até a iteração final através do kata, a maioria das pessoas estava pensando de uma maneira TDD ou pelo menos podia entender por que pode ser benéfico.
As pessoas geralmente diziam que a tarde foi divertida e informativa e agora estamos procurando outras maneiras de usar o Cyber-Dojo no meu local de trabalho.
O Cyber-Dojo , escrito por Jon Jagger , funciona incrivelmente bem para esse tipo de exercício. É um ambiente baseado na web integrada para fazer a prática deliberada de TDD e aprender sobre a dinâmica da equipe. Ele tem muitos katas selecionados especificamente para ajudar as pessoas a se concentrarem no processo de TDD e não no problema. Ele também suporta uma variedade de linguagens, de Python e Ruby a Java e C ++.
O melhor é que, depois de fazer um kata, você pode voltar e observar a progressão vermelho / verde (ou talvez não * 8 ') de cada um dos grupos participantes. Os semáforos são uma ótima maneira de visualizar como o processo TDD funciona.
Se você deseja seu próprio servidor CyberDojo, todo o projeto pode ser encontrado no github e há até uma máquina virtual do dispositivo Turnkey Linux vinculada a partir daí, o que significa que, assumindo que você já possui o VMware player ou o VirtualBox instalado, você pode estar em funcionamento no alguns minutos de download do aparelho!