Há tempos ouço falar de "coding Dojo" sem saber exatamente do que se tratava. Contudo hoje (27/05/13) ocorreu na Aldeia Coworking em Curitiba um coding Dojo, com isso resolvi ir pra ver que bicho é esse. Meu resumo segue abaixo.
O que é
É um método de programação em que consiste em um grupo de programadores trabalharem em conjunto para a resolução de um determinado problema. Na verdade não é programação como no dia a dia e sim mais com cara de um jogo para nerds he he.
O que é preciso
Normalmente (em eventos) tudo que o grupo de programadores possui é um computador ligado a um projetor.
Como funciona
Normalmente a programação é feita com piloto e co-piloto, caracterizando-se como
Pair Programming com isso ao mesmo tempo em que um vai digitando, o co-piloto assim como os demais que estão na fila de espera vão opinando sobre o código, ou seja, tudo não passa de uma grande colaboração de vários se não todos os participantes para a solução do problema.
Principais características
Desenvolvimento guiado por testes: É selecionada um linguagem de programação (isso mesmo, nem sempre é na sua linguagem de domínio, isso que torna o processo mais interessante) e o framework de testes. Com isso o fluxo torna-se
vermelho - verde - refatora.
Baby steps: Nada de complicar, o negócio é fazer tudo com calma e do jeito mais simples possível, assim como um bebê, de passo em passo.
Todos devem entender: enquanto todos os participantes não tenham pleno conhecimento do que se passa no código o mesmo não pode ir pra frente.
Não é ambiente competitivo: Muito pelo contrário, o ambiente é totalmente colaborativo, todos devem se ajudar. Outro ponto importante é que não há nível de conhecimento, pode ser um programador pleno, sênior ou mesmo alguém que esteja apenas curioso em programar.
Não são utilizados problemas de trabalho: Os problemas devem ser escolhidos no início do dojo e geralmente é uma espécie de jogo ou algo como um algoritmo que aprendemos na faculdade.
Conclusão
Achei a prática excelente, aprendi muito (resolvemos um algoritmo de um cara que era fanático por miojo, ele gostava do seu macarrão exatamente ao ponto, 3 minutos. Ele foi a um acampamento e esqueceu de levar relógio para contar o tempo de preparo, por coincidência os demais amigos que estavam também esqueceram de levar relógio, a solução que ele econtrou foi comprar duas ampulhetas para realizar a contagem do tempo, o problema é que uma ampulheta contava 5 minutos e outra 7 minutos.), tal problema foi resolvido em
ruby com testes unitários, pense que foram 11 ou 12 testes e horas de rafatoração para que todas as inúmeras possibilidades fossem atendidas. Pretendo praticar outros dojo's para que com essa "brincadeira de nerds" eu aprenda cada vez mais.
Até breve ;)