Coding Dojo

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
Coding Dojo no Garoa Hacker Clube

Coding Dojo é um método de aprendizagem para desenvolvimento de projetos em computação, utilizado em universidades, eventos de computação, empresas e hackerspaces.[1][2][3][4]

Nessa dinâmica, todas as pessoas constroem juntas a solução, alternando a posição reflexiva da plateia com as posições mais ativas dos pilotos, construindo a partir do trabalho acumulado dos pilotos anteriores.

Desenvolvimento[editar | editar código-fonte]

Inspirado nas práticas dos dojos de artes marciais japonesas, um Coding Dojo inicia-se tipicamente com o seguinte arranjo:[5][6][7]

  • ao menos um computador conectado a um projetor
  • uma tela de projeção que todos possam ver
  • um piloto, um copiloto e um mestre
  • demais participantes em plateia

O mestre oferece um desafio ao grupo. O piloto, sentado ao computador, é a única pessoa que pode utilizá-lo para concluir o desafio. O copiloto permanece ao seu lado, mas somente para observar o piloto em ação e oferecer indicações. Todos os demais observam e podem discutir entre si e com o copiloto e o piloto.

Qualquer um pode ainda fazer perguntas ao mestre, mas este só pode responder com outra pergunta.

Independente do desafio ser resolvido, a cada cinco minutos o atual piloto volta à plateia, o copiloto torna-se o próximo piloto, e alguém da plateia assume como copiloto.

A cada desafio cumprido, o mestre oferece um outro, ligeiramente mais complexo.

Ao final do Coding Dojo, normalmente, os participantes realizam uma retrospectiva do evento.

Nessa retrospectiva, que pode ser realizada utilizando diversas técnicas, de maneira geral são respondidas três perguntas básicas:

  • O que aprendemos com o Coding Dojo de hoje;
  • O que podemos melhorar para a realização dos próximos Coding Dojos;
  • O que devemos continuar fazendo nos próximos Coding Dojos.

A retrospectiva é extremamente importante, pois condensa todo o aprendizado do Coding Dojo.

O dojo pode ser organizado também com apenas dois participantes, ou em grupos de dois participantes, quando não há necessidade de projetor. Também chamada programação em pares, nessa forma os participantes alternam-se nas funções de piloto e copiloto.

Uma ênfase dos dojos são os passos de bebê, garantindo que todos os participantes estejam acompanhando todo o progresso. Outra ênfase pode ser no desenvolvimento orientado a testes (Test Driven Development).


Como funciona um Coding Dojo?[editar | editar código-fonte]

Para ter um coding dojo que funcione bem, alguns ingredientes são necessários:

1. Criar um ambiente adequado e com os equipamentos necessários[editar | editar código-fonte]

Novamente, um dojo é um ambiente sem competição e colaborativo. Então, criar um ambiente seguro, confortável e propício ao compartilhamento de conhecimento é mandatório.

De acordo com o formato escolhido, também precisamos ter à disposição uma quantidade de computadores compatível com a quantidade de pessoas que irão codificar. Também temos um projetor para que todos possam visualizar os códigos e um quadro branco para discutir soluções.

2. Definir a periodicidade e o objetivo das reuniões[editar | editar código-fonte]

A ideia de ter um dojo é que as pessoas se reúnam com certa periodicidade — não se trata de apenas uma única reunião. Preferencialmente, os encontros acontecem em um mesmo local e no mesmo horário.

Formatos[8][editar | editar código-fonte]

Existem alguns formatos que são utilizados para a realização de Coding Dojos:

  • Kata:
    • Nesse formato existe a figura do apresentador. Ele deve demonstrar uma solução pronta, previamente desenvolvida.
      • O objetivo é que todos os participantes sejam capazes de reproduzir a solução alcançando o mesmo resultado, sendo permitido realizar interrupções para sanar dúvidas a qualquer momento;
        Evento de Dojo Kata

  • Randori:
    • Nesse formato há a participação de todos. É proposto um problema a ser resolvido e a programação é realizada em apenas uma máquina, por pares. Para esse formato é imprescindível a utilização de TDD e passos de bebê.
      • A pessoa que está codificando é o piloto, e seu par o co-piloto. A cada cinco minutos o piloto volta para a plateia e o co-piloto assume a condição de piloto. Uma pessoa da plateia passa a assumir a posição de co-piloto.
      • Somente são permitidas interrupções quando todos os testes estiverem no verde. É importante notar também que é a dupla quem decide o que será feito para solucionar o problema. Todos devem entender a solução, que deve ser explicada pelo piloto e pelo co-piloto ao final de seu ciclo de implementação;
  • Kake:
    • É um formato semelhante ao Randori, porém há várias duplas trabalhando simultaneamente. A cada turno as duplas são trocadas, promovendo a integração entre todos os participantes do evento. Nesse formato um conhecimento mais avançado dos participantes é necessário.

Vantagens[8][editar | editar código-fonte]

O Coding Dojo é um ambiente seguro para testar novas ideias, promover o networking e compartilhamento de ideias entre os membros da equipe. É muito comum empresas promoverem Dojos abertos. Dessa forma a empresa pode conhecer profissionais que possam se adequar ao seu ambiente e os profissionais também tem a oportunidade de conhecer o ambiente dessas empresas.

Testing Dojo[8][editar | editar código-fonte]

Testing dojos, ou dojos de teste, fornecem uma estrutura similar a de um dojo de programação. Os testers, porém, praticam habilidades individuais dentro de um grupo.

O desafio do dojo pode ser testar um produto, gerar ideias de teste para um software em particular, exercitar geração de relatórios de bugs, ou até mesmo avaliar ferramentas. Normalmente, tudo isso é feito através de testes exploratórios.

Em um dojo de testes, os papéis também sofrem algumas modificações. Agora teremos:

  • Tester: a pessoa que interage com o programa.
  • Registrador (recorder): a pessoa que registra informações relativas às atividades.
  • Facilitador: pessoa que define a missão para o dojo, facilita o feedback e garante que as regras sejam seguidas.
  • Observador(es): a platéia. Cada pessoa que observa a criação da solução deve fazer notas sobre o processo, o que inclui monitorar as atividades e as interações entre os participantes. Como não é possível observar tudo o que acontece, é importante focar em um ou dois pontos, tais como: ideias sobre cobertura, pausas na fala, monólogos, pausas no teste, gerenciamento do foco…

Passos de bebe[9][editar | editar código-fonte]

Quando um bebê está aprendendo a caminhar ele não arrisca dar passos grandes por aí. No Dojo acontece da mesma forma.

O código vai saindo devagar, ajudando para que todos estejam entendendo o que está acontecendo e que rumo tudo está tomando.

Sempre que alguém não estiver entendendo o que está acontecendo, esse tem o direito de perguntar e se encaixar nos trilhos novamente.

Utilização em outras áreas[8][editar | editar código-fonte]

A ideia de um dojo não pertence a uma única disciplina como artes marciais ou programação. Estes mesmos conceitos que você acabou de ler podem ser aplicados em outras áreas.

"Certo, mas como eu faço isso?"

Da mesma forma que um dojo funciona: com pessoas dispostas a colaborar para resolver problemas, aprender novas técnicas e compartilhar conhecimentos.

Trabalha em uma empresa que quer substituir o sistema atual por um novo software? Monte um dojo para aprender a utilizar esse software. Proponha reproduzir algumas atividades simples que eram feitas no sistema antigo (lembre-se, baby steps).

Já conseguiu reproduzir as atividades anteriores com sucesso e todo mundo entendeu como fazê-las? Analise funcionalidades agora. Vá atrás daqueles botões que ninguém usou e não sabe como funciona.

Todo mundo adquiriu um bom nível de proficiência no software? Pense em novas formas de utilizá-lo.

Referências

  1. DUG-RS promove Delphi Coding Dojo, Baguete, visitado em 2014-06-20
  2. Programação #ArenaNETmundial[ligação inativa], PlanejaSampa, visitado em 2014-06-20
  3. Dojo iM: Especial #AdaLovelaceDay, iMasters, visitado em 2014-06-20
  4. Fazendo o meu próprio coding dojo controller, iMasters, visitado em 2014-06-20
  5. «O que é Coding Dojo?». Florianópolis: petcomputacao.paginas.ufsc.br. 15 de maio de 2014. Consultado em 22 de junho de 2016. Arquivado do original em 15 de maio de 2014 
  6. Pollice, Gary (2011). «Coding Dojo». web.cs.wpi.edu (em inglês). Dept. Computer Science, Worcester Polytechnic Institute. Consultado em 22 de junho de 2016 
  7. Vailati, Tiago (16 de novembro de 2010). «Aprenda mais com Coding Dojo -». imasters.com.br. Consultado em 22 de junho de 2016. Arquivado do original em 21 de agosto de 2016 
  8. a b c d Andrade, Sabrina (21 de novembro de 2018). «Coding Dojo: como melhorar suas habilidades». Medium (em inglês). Consultado em 30 de novembro de 2019 
  9. «Coding Dojo – O Que é ? E Como Participar ?» 


Bibliografia[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre computação é um esboço. Você pode ajudar a Wikipédia expandindo-o.
Ícone de esboço Este artigo sobre educação ou sobre um educador é um esboço relacionado ao Projeto Ciências Sociais. Você pode ajudar a Wikipédia expandindo-o.