“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.”
Esta definição pode ser encontrada no site http://codingdojo.org/ que é uma Wiki criada para fornecer a comunidade casos de usuários adeptos ao Coding Dojo. Resumindo com minhas palavras, um Coding Dojo é um espaço onde alguns malucos se encontram, em um determinado dia para tentar resolver algum problema. Este problema não necessariamente precisa ser resolvido, este não é o objetivo. O objetivo é misturar as experiências e fazer com que todos participantes compartilhem-a. É meio Nerd claro, mas é muito produtivo. Esses malucos dispostos a acordar cedo em um sábado, após uma semana cansativa de trabalho árduo e faculdade são os personagens do Dojo. O **Guru **é um destes personagens, ele é responsável por escolher o problema. Os outros são sub-divididos em 3 grupos:
- Plateia - Galera que fica observando o desenvolvimento do código aguardando sua vez de ser co-piloto e piloto
- Piloto - O cara que faz código
- Co-Piloto - Ajuda o cara do código
Normalmente o Guru começa explanando sobre WTF é um Coding Dojo, e logo após apresentando o problema.
Também é comum que o Guru inicie como piloto, mostrando as boas práticas e codificando um pouco.
O Dojo possui algumas regras básicas:
[O texto abaixo foi copiado de: http://dojopoa.wordpress.com/conceitos/]
[Que por sua vez foi copiado de: http://pet.inf.ufsc.br/dojo/o-que-eh-dojo]
- Desenvolvimento guiado por testes: Antes de fazer qualquer implementação, deve ser escrito um teste, que ao passar indica que a implementação está correta.
- “Passos de bebê”: Se um teste não está passando, você deve escrever o código mais simples possível que faça o teste passar. Quando for escrever um novo teste para o mesmo método, escreva um teste que teste só um pouquinho a mais da funcionalidade desejada.
- Pair programming: A programação é feita em duplas. Cada dupla tem um piloto e um co-piloto. Ambos pensam em como passar no teste atual, mas só o piloto digita. Cada par tem por volta de 5 a 10 minutos no seu turno. Quando esse tempo acaba:
- O piloto volta para a plateia
- O co-piloto assume o lugar do piloto
Um novo co-piloto vem da platéia
Todos devem entender: O piloto e o co-piloto devem sempre explicar em voz alta o que estão tentando fazer para solucionar o problema. Qualquer um na platéia pode pedir explicações se não entender algum raciocínio.
Três fases: Um Coding Dojo sempre está em alguma dessas 3 fases, dependendo do estado dos testes:
Vermelha: Pelo menos um teste não está passando. A dupla da vez deve se concentrar em fazer o teste passar. A platéia não deve falar nessa fase, para não atrapalhar piloto e co-piloto.
Verde: Os testes acabaram de ser rodados e todos estão passando. Essa é a hora de quem está na platéia dar sugestões para melhorar o código.
Cinza: O código foi modificado de acordo com as sugestões, mas a bateria de testes ainda não foi rodada. Deve-se evitar fazer grandes modificações no código nessa fase.
O mundo está cheio de malucos, e aqui em Porto Alegre não é diferente, então não demorou para que fosse parido o DojoPOA. Não participei diretamente da criação do grupo, mas desde o inicio dou apoio e abraço a ideia. Creio que seja de consenso comum que só existem vantagens em uma iniciativa como esta. Compartilhar conhecimento nunca é demais! [http://jaydson.com/dissemine-o-conhecimento/]
Tive a oportunidade de ser o Guru no Coding Dojo de Javascript que aconteceu no fim de outubro, foi realmente muito bom.
Mora em Porto Alegre ? Ta passando por Porto Alegre ? É maluco o suficiente para vir para Porto Alegre ? Então não perca essa oportunidade única.
Site do DojoPOA: http://dojopoa.wordpress.com/ Grupo de discussões: https://groups.google.com/group/dojo-poa?hl=pt&pli=1
Referências: http://dojopoa.wordpress.com/ http://codingdojo.org/ http://pet.inf.ufsc.br/dojo/o-que-eh-dojo/ http://apoie.org/Dojo.htm