O documento explica o que é um Coding Dojo, que é um local de treinamento para programação onde pessoas se reúnem periodicamente para praticar habilidades de codificação de forma colaborativa e divertida, aprendendo umas com as outras. O texto descreve os formatos de kata, randori e kake que podem ser usados nos encontros e como eles funcionam, além de explicar que testers também podem se beneficiar de Dojos de Teste.
4. • A palavra dojo (em japonês, 道場) é um termo emprestado do Zen-
Budismo que significa literalmente "o lugar onde se pratica o caminho”
• Um local em que o que importa é a prática em si
O que é um dojo?
6. • Pessoas de TI dedicam pouco tempo ao refinamento de habilidades
• Acabamos por adquirir e desenvolver competências durante o nosso dia a
dia de trabalho, o que representa um risco ao projeto
• Esperar que criadores de soluções façam seu trabalho ao mesmo tempo
que buscam alternativas melhores é permitir que errem quando deveriam
estar fazendo o melhor trabalho possível
Coding Dojo
7. Coding Dojo é um "local de treinamento de código" ou
"local de treinamento de programação"
Coding Dojo
Source: www.codingdojo.com
8. Trata-se de um ambiente:
• Seguro, inclusivo e sem preconceitos
• De colaboração e aprendizado contínuo
• Onde as atividades são realizadas através de baby steps
• Para testar novas ideias, compartilhar conhecimentos, praticar habilidades
e, principalmente, se divertir
Coding Dojo
9. Assim como em um dojo de artes marciais,
a atenção deve ser à prática
Coding Dojo
11. 1. Criar um ambiente adequado e com os equipamentos necessários
• Criar um ambiente seguro, confortável e propício ao compartilhamento de
conhecimento é mandatório
• De acordo com o formato escolhido, também precisamos ter à disposição
uma quantidade de computadores compatível com a quantidade de
pessoas que irão codificar (pelo menos um computador)
• Também temos um projetor para que todos possam visualizar os códigos e
um quadro branco para discutir soluções
Como funciona?
12. 2. Definir a periodicidade e o objetivo das reuniões
• Um coding dojo não se trata de apenas uma única reunião
• Preferencialmente, os encontros acontecem em um mesmo local e no
mesmo horário
• O que faremos neste encontro?
Como funciona?
13. 3. Definir o formato
• Kata (ou kata preparado)
• Randori
• Kake
Como funciona?
Source: waxingonoff.blogspot.com
14. • Uma pessoa demonstra passo a passo uma solução previamente
desenvolvida para o problema
• Esses passos são baby steps
• Interrupções são permitidas para sanar quaisquer dúvidas
Kata Preparado
15. • A solução final não é demonstrada até que cada passo seja testado,
codificado e entendido por todos
• O objetivo é que as pessoas que participam do encontro sejam capazes de
reproduzir esta solução
Kata Preparado
16. • No randori, há o uso de Test-Driven Development (TDD) e programação
em pares realizada em rodadas
• Cada pessoa assume um papel específico
Randori
17. Papéis
• Piloto: a pessoa responsável por codificar, refatorar e testar cada parte da
solução que está sendo criada
• Co-piloto: pessoa que auxilia o piloto na resolução dos passos que estão
sendo trabalhados
• Platéia: as outras pessoas que estão participando do dojo
apenas observam o desenvolvimento da solução, que está sendo exibida
através de um projetor
Randori
18. • Cada rodada dura aproximadamente 5–7 minutos
• Ao final de uma rodada, o piloto volta para a platéia, o co-piloto se torna o
piloto e alguém da platéia se torna o novo co-piloto
• A dupla que está trabalhando na solução não deve ser alterada enquanto
o teste não for atendido
• Quando a solução for aprovada, é possível fazer comentários que ajudem
na refatoração
Randori
20. • Definir o objetivo e escolher um desafio (~10 minutos)
• Discussão do problema (~20 minutos): os participantes discutem diferentes
possibilidades de resolução e geram uma lista de tarefas para guiar as
duplas durante a fase de codificação
• Codificação (~60 a 120 minutos): os participantes definem qual será a
forma do Dojo e começam a codificação, aplicando as técnicas para a
opção escolhida
• Retrospectiva (~30 minutos)
Estrutura dos encontros
22. • Testing dojos, ou dojos de teste, fornecem uma estrutura similar a de um
dojo de programação
• Os testers, porém, praticam habilidades individuais dentro de um grupo
• O desafio do dojo pode ser testar um produto, gerar ideias de teste para
um software em particular, exercitar geração de relatórios de bugs, ou até
mesmo avaliar ferramentas
Testing Dojo
23. • Tester: a pessoa que interage com o programa
• Registrador (recorder): a pessoa que registra informações relativas às
atividades
• Facilitador: pessoa que define a missão para o dojo, facilita o feedback e
garante que as regras sejam seguidas
• Observador(es): a platéia. Cada pessoa que observa a criação da solução
deve fazer notas sobre o processo, o que inclui monitorar as atividades e
as interações entre os participantes
Testing Dojo
24. • Um dojo é um processo contínuo com intuito de refinar as habilidades de
um time, permitir que pessoas com diferentes níveis de conhecimento
interajam, experimentem e aprendam em conjunto
• Além disso, também treina habilidades de comunicação. Times que se
comunicam e interagem bem são capazes de produzir produtos com a
mais alta qualidade
• A intenção jamais é chegar a uma solução final absoluta, mas ser capaz de
melhorar a cada encontro
Conclusão