Pratique Coding Dojo com sua equipe
Recentemente participei de algumas sessões de coding dojo e achei muito interessante. O coding dojo é sem dúvida a nova mania do momento. O mais legal de tudo são os seus princípios, que promovem a troca de experiências entre toda equipe, não discriminando o menos experiente do mais experiente. Existem algumas regras a serem seguidas para fazer uma sessão de coding dojo ser realmente efetiva. Não tenho a pretensão de detalhar a técnica em um só post, mas já me darei por satisfeito caso você sinta vontade de experimentar dojo após ler esta matéria. Acredite, vale à pena!
O que é?
Bem objetivamente, é uma técnica de treinamento onde há um encontro de codificadores e um desafio. O termo dojo, que tem origem japonesa, representa um espaço para treinamento de artes marciais. O coding dojo é uma metáfora do dojo japonês, mas tem o mesmo significado: um lugar propício para treino, neste caso treino de programadores. Numa seção de coding dojo o que vale mesmo é o aprendizado. Motivados em resolver o problema-desafio, os programadores alternam-se em um teclado, tendo o vídeo projetado na parede para que todos acompanhem os detalhes do que está sendo construído.
Não pense em coding dojo como um combate entre os programadores. A técnica condena a prática de competição. Caso você pretenda se exibir, mostrar que você é o cara, não vá para uma sessão de coding dojo, o objetivo definitivamente não é esse. Além do mais, não deve-se restringir a participação de programadores menos experientes. O dojo é um lugar para treinar, trocar experiências e se aperfeiçoar, não faz sentido algum podar a participação de interessados. Por mais que você se sinta o rei da cocada preta, você sempre aprenderá numa sessão de coding dojo.
Para mais detalhes acesse o site CodingDojo.org, lá você encontrará mais informações sobre a técnica e referências para outros materiais.
Princípios
Para praticar coding dojo é fundamental o conhecimento dos seus princípios. Aviso com antecedência que você enfrentará uma quebra de paradigma, por isso é preciso ter a mente aberta. Antes de mais nada, no dojo não se discute projeto técnico nem arquitetura da solução, já vai logo metendo a mão no código. No início achei isso muito estranho, mas percebi que, se fóssemos discutir a solução antes de codificar, iríamos perder mais tempo do que ir direto à prática. Esta abordagem conflita com o que eu aprendi na faculdade e no dia-a-dia no trabalho. Pois é, esta sensação ocorre justamente porque pulamos uma etapa da escala evolutiva: o treino! Não esqueça que o coding dojo é para fins de treino, então não saia por aí aplicando nos projetos dos clientes.
No coding dojo não existe código-fonte sem teste. Uma prática muito utilizada nas sessões de dojo é o TDD (Test-Driven Development), onde os testes são criados antes do código-fonte, em um ciclo contínuo até que o problema seja resolvido. Os programadores não devem pensar numa solução complexa, o problema deve ser resolvido com baby steps (à passos de bebê). Soluções complexas podem também atrapalhar o aprendizado dos outros participantes. Chegar à solução do problema não é o foco do dojo, e sim proporcionar o aprendizado e a troca de experiências.
Quando você estiver codificando numa sessão de dojo, explique tudo que você estiver fazendo. É muito importante a compreensão geral, afinal todos colaborarão ativamente com a solução. É o momento para você compartilhar experiências, mas lembre: nada de exibicionismo! É fundamental que não se tenha pressa.
Como funciona?
Para começar, apresenta-se o planejamento do treinamento para todos os participantes. Dedica-se um tempo para explicar os princípios do coding dojo mesmo que a equipe já conheça a técnica, não custa nada investir 10 minutos de flashback (sugiro este material). O maior tempo do treinamento deve ser dedicado à fase de codificação, onde os participantes irão alternar no desenvolvimento da solução. Por último, reserva-se um tempo para discutir as lições aprendidas.
A fase de codificação deve utilizar apenas um computador, porém a tela deve ser vista por todos os participantes. Geralmente usa-se um projetor, mas fique à vontade para usar sua criatividade. Dois participantes iniciam a codificação aplicando a técnica de programação em pares: um assumirá o papel de piloto, enquanto o outro será o co-piloto. A dupla terá um curto intervalo de tempo predeterminado para consolidar suas idéias, usando TDD e baby steps, explicando tudo que está sendo feito. O piloto e o co-piloto atuarão por 5 minutos, por exemplo. Passado o tempo, o piloto volta para a platéia, cedendo o lugar para o ex-co-piloto. Alguém da platéia assume o papel do co-piloto, e assim por diante.
Ao final da fase de programação em pares, todos os participantes devem tomar nota dos pontos positivos e negativos. As opiniões devem ser lidas pelo organizador em voz alta para que todos discutam à respeito. Esta é uma das etapas mais importantes da técnica: o compartilhamento, o debate e a consolidação das lições aprendidas. Mais uma vez, o que vale é o aprendizado!
O que aprendi com tudo isso?
Segue uma listagem do que eu aprendi nas sessões de coding dojo até agora:
- A solução do problema não é o foco;
- Dê apenas um pequeno passo de cada vez;
- O importante é a troca de experiências e o aprendizado de todos;
- Você não precisa conhecer a ferramenta/tecnologia/desafio previamente, no decorrer da sessão você aprende;
- Discutir o projeto técnico no início das sessões leva mais tempo do que ir direto ao código;
- A solução final é de todos, e não apenas de uma pessoa;
- Veja a programação em pares funcionando na prática;
- Coding dojo é para treino, não para produção;
- É uma forma divertida de aprender!
Existem sites que disponibilizam sugestões de problemas-desafio, tais como o TDD Problems e o CondigDojo.org. É fácil encontrar listas de discussão que compartilham experiências sobre o assunto, tal como a Dojo Bahia. O que você está esperando para praticar coding dojo na sua empresa? Tenho certeza que sua equipe vai adorar!
Filed under: Post | 11 Comments
Tags:Dojo, Relato
Pelo visto pra aprendizado essa técnica é show.
Dojô na veia.
OSS!
Vou tentar fazer um coding Dojo aq na empresa é uma boa pra elimina gasto com treinamento.
Eu diria que treinamento é investimento ao invés de gasto 😉
Já que vai começar com o Dojo, sugiro a leitura deste outro post: https://cleversonsacramento.wordpress.com/2010/10/15/por-que-o-coding-dojo-nao-funciona-bem-em-minha-empresa/