BT

Coding Dojos: aprendizado, troca de informações e networking na programação

Postado por Rodrigo Urubatan em 13 Abr 2011 |

Há algum tempo na Comunidade Ágil, ouve-se falar em Coding Dojos como forma interessante e produtiva de se aprender técnicas novas de desenvolvimento. Os dojos têm sido até mesmo utilizados em algumas faculdades como forma de ensinar linguagens e técnicas ágeis. São eventos sociais, em que um grupo de desenvolvedores se reúne para fazer networking e compartilhar conhecimentos. A ideia é favorecer o aprendizado voluntário e colaborativo.

Um dojo deve promover um ambiente divertido e cooperativo, sem enfoque na competição. Todos os níveis de conhecimento sobre o tema do encontro são bem-vindos, criando-se assim um ambiente seguro para testar novas ideias. Alem disso, coding dojos são uma ótima ferramenta para ensinar o básico de uma linguagem de programação, procurar soluções para um problema complexo, ou até mesmo incentivar desenvolvedores a colaborar com projetos open source.

Passos para um dojo

Para montar um dojo, os requisitos são uma sala de reuniões confortável para os participantes, um computador com o ambiente de desenvolvimento desejado já instalado e funcionando, além de um projetor para que todos os participantes possam ver o que está sendo feito.

"Dojo" (pronuncia-se dojô) é uma palavra japonesa originada das artes marciais. Os dojos são locais onde estudantes de luta se reúnem para treinamentos e atividades relacionadas (como desafios ou testes para mudança de faixa). Como parte do treinamento, são realizados vários tipos de "Kata", que são sequências precisas de movimentos de luta, usadas geralmente para exercitar técnicas de defesa.

Os Coding Dojos pegam emprestado este último termo para identificar a dinâmica adotada no encontro. A mais utilizada é a Randori Kata, que funciona da seguinte forma:

  1. É estabelecido um problema a ser solucionado durante o dojo.
  2. Uma dupla de programadores resolve uma parte do problema programando em par, utilizando o desenvolvimento orientado a testes (TDD) e Baby Steps. Os componentes do par são chamados "piloto" e "copiloto".
  3. Cada par tem entre 5 e 7 minutos para solucionar uma parte do problema.
  4. Ao final do período, o par interrompe seu trabalho onde estava e o copiloto assume o teclado. O piloto volta à plateia e alguém da plateia assume o posto de copiloto, para mais um turno de programação.

Há outras regras importantes a serem seguidas:

  1. O par decide o que vai ser feito para solucionar o problema; o próximo par continua a implementação.
  2. A plateia só pode dar sugestões para modificar ou melhorar o código quando todos os testes estiverem passando. E quando a implementação estiver pela metade, não é permitido atrapalhar o par.

O dojo é considerado como um sucesso se o problema proposto for resolvido dentro do tempo predefinido e todos os presentes tiverem aprendido o suficiente para duplicar a solução em casa. Para quem vai pela primeira vez a um dojo, pode ser difícil não oferecer opiniões constantes sobre como resolver o problema, mas – e talvez por isso mesmo – trata-se de uma experiência bastante divertida.

Participação

Existem diversos sites com endereços e datas de dojos acontecendo pelo Brasil, como por exemplo:

  1. O Dojomap, mantido pelo pessoal do #horaextra
  2. O site de dojos da ThoughtWorks com datas, detalhes e endereços dos dojos que acontecem nos escritórios da empresa pelo mundo, sempre abertos ao público em geral.
  3. O site do GURU-RS com a lista dos próximos dojos de Ruby organizados por este grupo de usuários de Ruby do Rio Grande do Sul
  4. O Dojorio, que mantém anúncios de dojos no Rio de Janeiro.

Há também sites descrevendo o funcionamento de coding dojos e suas diversas variantes.

Entrevista

A melhor forma de conhecer e entender como funcionam os dojos e porque estão se multiplicando tanto, é participando você mesmo de um desses eventos. Outra boa opção é perguntar para quem já participou ou organizou. Foi o que fizemos, entrevistando Henrique Bastos, um veterano em Dojos e um dos fundadores do Dojorio. Henrique vem participando e organizando Dojos há quase três anos e usa as dinâmicas desses eventos em várias atividades, profissionais e acadêmicas.  

Rodrigo Urubatan (RU): Como foi o Início do Dojorio e quando você começou a participar?

Henrique Bastos (HB): Em outubro de 2008, no evento PythonBrasil 2008 que aconteceu no Rio, o amigo Rodolfo Carvalho montou um Dojo que chamou muita atenção. Em seguida, foi tentada a organização de um dojo semanal, mas foi difícil encontrar um espaço. Somente em dezembro de 2008, Rodolfo e Flávio Amieiro conseguiram estabelecer o Dojorio.
Só participei do Dojorio pela primeira vez no início de 2009. Rodolfo vinha insistindo no convite havia algum tempo, mas eu estava muito ocupado organizando a PythonCampus. Então ele propôs se juntar à organização do evento, para que sobrasse tempo para participarmos do Dojorio. Acho que nunca o agradeci o suficiente por isso!

RU: Qual sua opinião sobre a utilização de dojos como ferramenta de ensino em faculdades e cursos de programação em geral?

HB: Não há maneira melhor de ensinar! Temos levado o modelo do Dojorio para diversas universidades. Muitos professores estão obtendo resultados surpreendentes com a utilização das dinâmicas dos dojos para ensinar – principalmente em matérias de introdução à programação. E tenho tido bastante sucesso com o uso de dojos em meus treinamentos.

RU: Você já utilizou um dojo em uma empresa? Como foi a experiência?

HB: Com o sucesso do Dojorio, decidimos fazer dojos semanais na Myfreecomm (empresa nacional de softwares financeiros). Tem sido fantástico para compartilhar experiências e discutir diferentes visões, que, por razões diversas, acabam não emergindo no dia a dia. Uma curiosidade é que a dinâmica de compartilhamento dos dojos vence inclusive barreiras culturais. Em Orlando, na Flórida, Caike Souza, integrante da turma do Dojorio, tem tido muito sucesso com as iniciativas do OrlandoDojo. E após eu levar o Dojo para a PyCon 2010, uma participante da India gostou da ideia e levou a dinâmica para sua comunidade em Bangalore, Índia.

RU: Você gostaria de acrescentar algo sobre a experiência com dojos?

HB: Sim. Parece haver mais do que uma simples dinâmica nos fundamentos dos dojos. Por isso, um participante do Dojorio está escrevendo seu TCC em Ciência da Computação sobre o uso dos dojos como ferramenta de educação, e uma estudante de Ciências Sociais está desenvolvendo uma pesquisa sobre os fundamentos antropológicos e sociológicos do dojo no seu TCC. Ambos são na Universidade Federal Fluminense, onde – e não por acaso – temos três sessões semanais do Dojorio.

Conclusões

Como se vê, a dinâmica dos Dojos pode ser utilizada em diversos cenários, e uma das grandes vantagens é juntar diversão, networking, aprendizado e troca de informações. O próximo passo é procurar algum dojo que esteja acontecendo perto de você, ou até mesmo organizar o seu para começar a compartilhar conhecimento.

Sobre o autor

Rodrigo Urubatan (@urubatan no Twitter) trabalha com desenvolvimento desde 1997. Já desenvolveu sistemas em um gama de linguagens, incluindo Delphi, C, C++, PHP, ASP, ColdFusion, Assembly, Leather, Ruby e Java. Atualmente trabalha com pesquisa e desenvolvimento na HP, utilizando principalmente Java, Flex e Ruby. Também já ministrou cursos e palestras em diversos eventos pelo Brasil. Autor do livro Ruby On Rails: Desenvolvimento Fácil e Rápido de Aplicações Web da editora Novatec, Rodrigo tenta manter seu blog atualizado e, quando não está trabalhando, passa o maior tempo possível com o pequeno filho e a esposa, preferivelmente em atividades ao ar livre.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Aprendizado ágil by Paulo Rebelo

O dojo é, sem sombra de dúvida, uma das melhores formas de aprendizado ágil em alguma técnica ou tecnologia. O artigo mostra claramente os seus conceitos e origens, muito bom!

A minha opinião sobre Dojos by Daniel Wildt

Um pouco atrasado, vou aproveitar para responder umas perguntas que o Rodrigo tinha me enviado!

1) Quando você ouviu falar sobre Coding Dojo pela primeira vez, e como foi a primeira vez que participou?

A primeira vez que ouvi falar em Coding Dojo foi em uma conversa sobre artes marciais com o Guilherme Lacerda... isto em 2005... em certo momento discutindo as práticas de randori e prepared kata, e da terminologia que vem relacionada nem tanto com o Karate mas mais relacionada ao Judô. Aí lembramos que o importante era ajudar a aumentar a qualidade do código produzido. Fecha parênteses. :-)

Alias, para quem não sabe, o "Guerreiro", como chamo o Guilherme, foi quem fundou o XP-RS comigo, lá em Abril de 2004 comigo, hoje conhecido como GUMA-RS. O grupo foi lançado um dia depois de um evento do Grupo de Usuários Java do RS (RSJUG), e mais exatamente depois de uma palestra do Klaus Wuestefeld e do próprio Guilherme Lacerda sobre XP. Eu e o Guilherme nos falamos e decidimos que era hora que fazer uma comunidade do assunto no RS. E aí a brincadeira começou.

Do primeiro Dojo que participei não sei, foi mais ou menos por aí também mas já relacionado a outra pergunta. Acabei rodando as primeiras experiências na faculdade, dentro de sala de aula e dentro das reuniões dos grupos de estudos de linguagens de programação na própria FACENSA (em Gravatai/RS) onde fui professor durante 7 anos. Hoje estou de licença para poder tocar outros projetos, mas devo voltar em 2013.

2) Qual a sua opinião sobre a utilização de dojos como ferramenta de ensino em faculdades e cursos de programação em geral?

Em 2005 comecei a fazer um exercício em sala de aula. Aqui falando da FACENSA. Os alunos trabalhavam em par nos exercícios, e a cada 7 min eu gritava troca! E neste caso um novo co-piloto tinha que entrar para seguir desenvolvendo o problema.

Isto foi evoluindo e cada vez mais nas minhas aulas este tipo de situação era usada.

Cheguei a fazer disciplinas onde todas as aulas práticas funcionavam em formato de coding dojo. Isto criava uma identidade dentro da turma, e criava comprometimento em fazer e saber fazer.

E a repetição ajudava a criar base tanto de OO como de técnicas para resolver problemas de forma simplificada, com baby steps, clean code, e foco.

Quanto mais profissionais do mercado puderem voltar as suas faculdades e ajudar este tipo de prática a se difundir, melhor vai ser.

Depois comecei a fazer eventos dentro de universidades que me chamavam para palestrar, até como uma atividade dentro da minha palestra sobre testes ou sobre qualidade de código.


3) Você já utilizou um dojo em uma empresa ou sabe de alguem que usou? Como foi a experiência? Usaria novamente?

Na Trevisan Tecnologia, onde estou desde maio de 2009, a equipe nunca foi forçada a desenvolver usando TDD e a fazer testes automatizados.

Começamos a fazer semanalmente, toda terça-feira (hoje toda quinta-feira) a prática de coding dojo, trabalhando OO, linguagens de programação diferentes, testes automatizados (unitários, funcionais) e refactoring. Hoje todos do time sabem usar ferramentas e técnicas e a prática vai sendo melhorada para a equipe poder aproveitar e aprender mais. A equipe já mantém alguns projetos em Ruby e não só o Java e Delphi são as linguagens padrões. JavaScript tem crescido bastante também dentro da equipe.

O Coding Dojo se torna dentro das empresas um agente de mudanças orgânico. As mudanças na forma da equipe trabalhar ocorrem da maneira certa. Não é necessário forçar nada, a equipe vai aprender, ver benefício e vai aplicar no dia a dia.

E hoje, sendo quinta-feira tem dojo na Trevisan Tecnologia! :-)

Re: A minha opinião sobre Dojos by Serge Rehem

Olá Rodrigo, parabéns pelo artigo!

Só queria reforçar o coro daqueles que acreditam que o Dojo é uma excelente forma de aprendizado. Desde meados de 2010 temos praticado e disseminado os Coding Dojos em Salvador, daí criamos a lista groups.google.com/group/dojo-bahia e o blog dojo-bahia.blogspot.com.

Apreitando a deixa, dicas de vídeo, um slidecast de 5 minutos e um artigo de 22 páginas sobre Dojo como forma de aprendizado:
www.youtube.com/watch?v=8aDQR4KhA7Q
www.slideshare.net/serge_rehem/coding-dojo-em-5...
www.slideshare.net/serge_rehem/con-serpro2010-dojo

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

3 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT