No mundo da tecnologia da informação as novidades surgem a todo momento. Por mais que um time procure se manter atualizado sobre tudo, é extremamente importante existir um ambiente onde novas técnicas possam ser aprendidas, testadas, praticadas e compartilhadas.

Dojo, (pronuncia-se Dojô) é uma palavra de origem japonesa e significa “local de treinamento”. Portanto, o Coding Dojo nada mais é que do um “local de treinamento de código”, ou “local de treinamento de programação”.

Formatos

Existem alguns formatos que são utilizados para a realização de Coding Dojos:

  • Kata: Nesse formato existe a figura do apresentador. Ele deve demonstrar uma solução pronta, previamente desenvolvida.
  • O objetivo é que todos os participantes sejam capazes de reproduzir a solução alcançando o mesmo resultado, sendo permitido realizar interrupções para sanar dúvidas a qualquer momento;
  • Randori: Nesse formato há a participação de todos. É proposto um problema a ser resolvido e a programação é realizada em apenas uma máquina, por pares. Para esse formato é imprescindível a utilização de TDD e passos de bebê.
  • A pessoa que está codificando é o piloto, e seu par o co-piloto. A cada cinco minutos o piloto volta para a plateia e o co-piloto assume a condição de piloto. Uma pessoa da plateia passa a assumir a posição de co-piloto.
  • Somente são permitidas interrupções quando todos os testes estiverem no verde. É importante notar também que é a dupla quem decide o que será feito para solucionar o problema. Todos devem entender a solução, que deve ser explicada pelo piloto e pelo co-piloto ao final de seu ciclo de implementação;
  • Kake: É um formato semelhante ao Randori, porém há várias duplas trabalhando simultaneamente. A cada turno as duplas são trocadas, promovendo a integração entre todos os participantes do evento. Nesse formato um conhecimento mais avançado dos participantes é necessário.

Vantagens

O Coding Dojo é um ambiente seguro para testar novas ideias, promover o networking e compartilhamento de ideias entre os membros da equipe. É muito comum empresas promoverem Dojos abertos. Dessa forma a empresa pode conhecer profissionais que possam se adequar ao seu ambiente e os profissionais também tem a oportunidade de conhecer o ambiente dessas empresas.

A DevMedia possui mais de 280 cursos online na área de programação, análise, gerência, entre outras. Vale a pena conferir.

Intuito

O intuito de se realizar um Coding Dojo é a diversão. Desafiar programadores com novos problemas, novas linguagens, enfim, buscar novas soluções saindo da zona de conforto.

O Dojo não é uma competição sobre quem resolve o problema mais rápido, ou qual solução é melhor implementada.

Obviamente o conhecimento obtido durante a execução do Coding Dojo é utilizado pelos programadores nas tarefas de seu dia a dia, o que faz com que a qualidade do trabalho “real” produzido também aumente, de forma indireta, com a realização de Coding Dojos.

Ambiente

O ambiente e fundamental para que a realização do Coding Dojo seja bem sucedida. De acordo com o formato escolhido é necessário possuir a quantidade de computadores compatível com a quantidade de duplas que irão codificar. Também pode ser interessante a existência de um projetor, para que todos possam visualizar os códigos.

Alimentação também é importante, afinal programador feliz é programador alimentado.

É importante propiciar um ambiente que seja confortável a todos os participantes. Para tanto, é indispensável conhecer a quantidade (que pode até ser limitada através de inscrições) como também alguns gostos particulares que podem influenciar (restrições alimentares, idioma, etc).

Valores

A realização de um Coding Dojo bem sucedido depende e fortalece alguns valores em todos os profissionais envolvidos. Entre eles, podemos destacar alguns:

  • Cooperação: A solução para o problema proposto é construída com a cooperação de todos os participantes, o que cria um ambiente colaborativo;
  • Participação: Todos os participantes participam da resolução do problema, o que cria um sentimento de igualdade entre todos os envolvidos. Não existem opiniões mais “importantes”;
  • Coragem: É necessário coragem para sair da zona de conforto e enfrentar um desafio. O ambiente do Coding Dojo propicia que todos desenvolvam essa característica, trabalhando em projetos que permitem que aconteçam erros, sem estar diretamente envolvido na rotina normal de um projeto (prazo, custo, etc);
  • Respeito: Todos os participantes devem respeitar a solução proposta pelos demais, mesmo conhecendo maneiras diferentes de resolver o problema. Como o intuito é aprender, o respeito pelo tempo de cada participante é fundamental;
  • Simplicidade: O Coding Dojo serve para compartilhar conhecimentos e experiências entre os participantes. Como cada participante pode estar em um nível técnico diferente, é importante que seja mantida a simplicidade tanto no problema composto como na solução implementada, de forma que todos consigam entender exatamente o que está sendo feito.

Retrospectiva

Ao final do Coding Dojo, normalmente, os participantes realizam uma retrospectiva do evento.

Nessa retrospectiva, que pode ser realizada utilizando diversas técnicas, de maneira geral são respondidas três perguntas básicas:

  • O que aprendemos com o Coding Dojo de hoje;
  • O que podemos melhorar para a realização dos próximos Coding Dojos;
  • O que devemos continuar fazendo nos próximos Coding Dojos.

A retrospectiva é extremamente importante, pois condensa todo o aprendizado do Coding Dojo.

Alguns times costumam registrar os Coding Dojos realizados (através de filmagens, atas, etc) para consultas futuras. Essa é uma prática extremamente interessante, pois permite que o aprendizado seja compartilhado por mais pessoas mesmo após a realização do Coding Dojo.

Espero que com esse artigo tenha ficado claro o que é um Coding Dojo, porque ele é importante e, principalmente, porque vale a pena ser realizado.

Um time motivado produz muito mais, e poucas coisas motivam mais um time de desenvolvimento do que desafios e novas tecnologias.

Qualquer dúvida, ou complementos sobre o assunto por favor deixem nos comentários. Abraços.