quinta-feira, 2 de setembro de 2010

Coding Dojo

Coding Dojo, é definido assim pelo site http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”
Esse encontro segue algumas regras básicas, como por exemplo a programação em pares, a troca constante dos pares, desenvolvimento guiado por testes e os "passos de bebê".

Existem 3 tipos de Coding Dojo:
  • Kata: técnica em que um apresentador deve demonstrar uma solução previamente desenvolvida. O objetivo é ensinar aos participantes todos os passos necessários e permitir que todos possam reproduzir o mesmo resultado. Nesse formato é permitido realizar interrupções para tirar dúvidas a qualquer momento.
  • Randori: formato que promove a participação de todos. O desenvolvimento da solução é feita orientada à testes e com programação em par. A cada turno de aproximadamente 5 minutos, o piloto volta para a platéia, o co-piloto vira piloto e um participante da platéia vira co-piloto. Os comentários são permitidos somente quando os testes estiverem em verde e, enquanto estiverem no vermelho, a platéia deve permanecer em silêncio.
  • Kake: técnica semelhante ao Randori, porém no desenvolvimento há vários pares trabalhando em soluções diferentes simultaneamente e a cada turno a troca é feita entre os pares. Esse formato necessita de um conhecimento mais avançado dos participantes.

Nas reuniões que fazemos aqui, não podemos seguir todos esses conceitos, a começar pela quantidade limitada de pessoas (normalmente 2 ou 3) e de tempo (normalmente, nos dedicamos entre 30 e 40 minutos para nossos estudos).

Utilizamos um formato parecido com o Randori, porém obviamente sem platéia no nosso caso :p.
Como o tempo que dispomos não é grande, normalmente não realizamos a troca de par, ou seja, quem começou programando segue programando até o final.

Como o enfoque é totalmente no aprendizado, sempre pegamos problemas pequenos, e que de preferência possam ser resolvidos em meia hora, e nos concentramos nele durante todo o tempo.

Esse formato tem se mostrado bastante produtivo no nosso caso, e estamos obtendo um grande progresso em nosso (des)conhecimento de Java, Orientação a Objetos, etc.

O primordial para o sucesso de um Dojo é a participação e compromentimento de todos.

Com a gente, tem funcionando muito bem até agora, visto que conseguimos montar um ambiente colaborativo, onde não temos receio de expor nossas dúvidas.
Além disso, é muito importante a colaboração, compartilhando pesquisas, blogs, exemplos, etc.

Bem, é isso... Apesar de não ser um Coding Dojo "tradicional" é assim que temos feito, e até agora não temos encontrado problemas.