CODING DOJO: O que é? Pra quê serve? Como funciona?

--

Coding Dojo é uma reunião torno de um desafio de programação em que as pessoas são incentivadas a participar e compartilhar suas habilidades de codificação com o público enquanto resolvem o problema. Estas reuniões levam este nome porque são inspiradas no dojos de artes marciais, no qual dois lutadores aprendem na prática enquanto os outros lutadores aprendem observando. No coding dojo ocorre mesmo, enquanto uma dupla tenta solucionar o problema na prática, os demais aprendem acompanhado a lógica utilizada.

Um dos princípios do coding dojo é criar um ambiente seguro, colaborativo, não competitivo e que junte pessoas com vários níveis de habilidade, para testar novas ideias permitindo o aprendizado contínuo.

Alguns dos princípios de metodologias ágeis, como o Extreme Programming — XP são aliados do dojo:

  • Pair Programming: programação em par;
  • Passos de Bebê: cada etapa para a solução deve ser pequena o suficiente para que todos possam compreender e replicar mais tarde;
  • Refactoring: refatoração de código;
  • Test Driven Development — TDD: antes de ser escrito uma implementação de código é escrito um teste;

Algumas regras gerais do coding dojo devem ser seguidas para que a reunião seja produtiva:

  • Sala com espaço e cadeiras suficientes para todos os participantes
  • Em geral necessita-se de um projetor e apenas um computador (a quantidade de computadores vai depender do formato de reunião escolhido);
  • Um quadro branco para esboçar e projetar discussões;
  • Um problema a ser resolvido, normalmente um problema de lógica;
  • Determinar o tempo que a reunião irá durar, geralmente dura de 1h a 1:30h .

No início de cada reunião os participantes discutem sobre o problema que será solucionado e a linguagem de programação será utilizada. Um dos participantes exerce a função de organizador, denominado Sensei.

Existem vários formatos de reunião do coding dojo, os mais difundidos são: Randori, Prepared e Kake Kata.

  1. Randori Kata: apenas um computador ligado a um projetor é utilizado, a cada 5 a 7 minutos dois participantes juntam-se para resolver o problema proposto, explicando o processo para a plateia. Para desenvolver a solução utiliza-se o TDD. Um dos participantes é o piloto que comanda o desenvolvimento do código, enquanto o copiloto aponta os erros e o que pode ser melhorado. Os outros participantes não ajudam até que um teste passe ou até um pedido de ajuda. Ao final do tempo o copiloto torna-se piloto e algum membro do platéia assume o papel de copiloto. O dojo encerra quando o desafio é solucionado ou quando o tempo definido acaba.
  2. Prepared Kata: é utilizado apenas um computador ligado a um projetor, um ou mais participantes já resolveram o desafio utilizando TDD e baby steps antes da reunião. A solução é apresentada a platéia durante a reunião, o apresentador começa mostrando a solução desde o início, explicando cada etapa. É permitido que a platéia faça perguntas ou sugestões a qualquer momento da apresentação. Ao final da apresentação todos os participantes devem estar aptos para a reproduzir as etapas e resolver o mesmo problema após a reunião;
  3. Kake Kata: é uma variação do formato randori kata. Utiliza diversos computadores e, em cada um, uma dupla deve resolver um problema diferente ou o mesmo problema em linguagens diferentes. As rotações ocorrem dentro da dupla e entre duplas. Ao término do ciclo, o piloto torna-se copiloto em outro computador e o copiloto torna-se o piloto, ficando responsável por explicar ao copiloto o problema que está sendo resolvido. Neste caso não existe platéia.

Independente do formato de dojo escolhido, ao final de cada reunião é realizada uma retrospectiva a fim de levantar e avaliar os pontos positivos e negativos, compartilhar as lições aprendidas com o grupo.

A troca de conhecimento estimulada pelo coding dojo, serve não só para o ambiente acadêmico, como forma de facilitador/acelerador de aprendizado como também serve no âmbito das empresas. Sabe-se que várias pessoas com conhecimentos e experiências diferentes trabalham na mesma equipe e utilizar o dojo nestes ambientes gera um compartilhamento de conhecimento, agregando maior valor as equipes e com isto beneficiando tanto a empresa como o colaborador.

--

--