# data[].attributes.headline
CODING DOJO COMO METODOLOGIA DE ENSINO: A VISÃO DOS EDUCADORES

# data[].attributes.subject
CODING DOJO COMO METODOLOGIA DE ENSINO: A VISÃO DOS EDUCADORES

# data[].attributes.body
Escrever previamente testes simples;

Todos os testes irão falhar (red);

Durante o dojo, primeira coisa é fazer o teste passar (green), não importa como;

Passos seguintes é melhorar o código escrito (refactoring), usando as melhores práticas.

# data[].attributes.body
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.

# data[].attributes.attachment_link.readable_text
No mundo da tecnologia da informação as novidades surgem a todo momento. Por mais que um time procure se manter atualizado sobre tudo, é extremamente importante existir um ambiente onde novas técnicas possam ser aprendidas, testadas, praticadas e compartilhadas.

Dojo, (pronuncia-se Dojô) é uma palavra de origem japonesa e significa "local de treinamento". Portanto, o Coding Dojo nada mais é que do um "local de treinamento de código", ou "local de treinamento de programação".

Formatos

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;

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 aoRandori, 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

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.

A DevMedia possui mais de 280 cursos online na área de programação, análise, gerência, entre outras. Vale a pena conferir.

Intuito

O intuito de se realizar um Coding Dojo é a diversão. Desafiar programadores com novos problemas, novas linguagens, enfim, buscar novas soluções saindo da zona de conforto.

O Dojo não é uma competição sobre quem resolve o problema mais rápido, ou qual solução é melhor implementada.

Obviamente o conhecimento obtido durante a execução do Coding Dojo é utilizado pelos programadores nas tarefas de seu dia a dia, o que faz com que a qualidade do trabalho "real" produzido também aumente, de forma indireta, com a realização de Coding Dojos.

Ambiente

O ambiente e fundamental para que a realização do Coding Dojo seja bem sucedida. De acordo com o formato escolhido é necessário possuir a quantidade de computadores compatível com a quantidade de duplas que irão codificar. Também pode ser interessante a existência de um projetor, para que todos possam visualizar os códigos.

Alimentação também é importante, afinal programador feliz é programador alimentado.

É importante propiciar um ambiente que seja confortável a todos os participantes. Para tanto, é indispensável conhecer a quantidade (que pode até ser limitada através de inscrições) como também alguns gostos particulares que podem influenciar (restrições alimentares, idioma, etc).

Valores

A realização de um Coding Dojo bem sucedido depende e fortalece alguns valores em todos os profissionais envolvidos. Entre eles, podemos destacar alguns:

Cooperação: A solução para o problema proposto é construída com a cooperação de todos os participantes, o que cria um ambiente colaborativo;

Participação: Todos os participantes participam da resolução do problema, o que cria um sentimento de igualdade entre todos os envolvidos. Não existem opiniões mais "importantes";

Coragem: É necessário coragem para sair da zona de conforto e enfrentar um desafio. O ambiente do Coding Dojo propicia que todos desenvolvam essa característica, trabalhando em projetos que permitem que aconteçam erros, sem estar diretamente envolvido na rotina normal de um projeto (prazo, custo, etc);

Respeito: Todos os participantes devem respeitar a solução proposta pelos demais, mesmo conhecendo maneiras diferentes de resolver o problema. Como o intuito é aprender, o respeito pelo tempo de cada participante é fundamental;

Simplicidade: O Coding Dojo serve para compartilhar conhecimentos e experiências entre os participantes. Como cada participante pode estar em um nível técnico diferente, é importante que seja mantida a simplicidade tanto no problema composto como na solução implementada, de forma que todos consigam entender exatamente o que está sendo feito.

Retrospectiva

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.

Alguns times costumam registrar os Coding Dojos realizados (através de filmagens, atas, etc) para consultas futuras. Essa é uma prática extremamente interessante, pois permite que o aprendizado seja compartilhado por mais pessoas mesmo após a realização do Coding Dojo.

Espero que com esse artigo tenha ficado claro o que é um Coding Dojo, porque ele é importante e, principalmente, porque vale a pena ser realizado.

Um time motivado produz muito mais, e poucas coisas motivam mais um time de desenvolvimento do que desafios e novas tecnologias.

Qualquer dúvida, ou complementos sobre o assunto por favor deixem nos comentários. Abraços.

# data[].attributes.attachment_link.description
No mundo da tecnologia da informação as novidades surgem a todo momento. Por mais que um time procure se manter atualizado sobre tudo, é extremamente importante existir um ambiente onde novas técnicas possam ser aprendidas, testadas, praticadas e compartilhadas. Dojo, (pronuncia-se Dojô) é uma palavra de origem japonesa e significa "local de treinamento".

# data[].attributes.body
Escolher um problema;

Preparar ambiente (computador, ferramentas e primeiros testes);

Apresentar problema;

Sortear primeiro piloto e primeiro copiloto;

Organizar fila.

# data[].attributes.body
Várias sugestões de problemas para serem utilizados em um Dojo

# data[].attributes.attachment_link.description
Um Coding Dojo é um encontro onde um grupo de programadores se reúne para treinar técnicas e metodologias de desenvolvimento de software através da solução de um pequeno desafio de programação. Saiba mais... Existem diversas páginas na Internet com problemas dos mais variados formatos que podem ser utilizados em um Dojo.

# data[].attributes.body
Para as turmas de Linguagens de Programação e Estrutura de dados:
Apresentar conceitos de TDD e Coding Dojo, mostrando a organização do ambiente (utilizar sala de aula, exibindo a tela do computador na televisão disponível na sala).
Será considerado para avaliação individual:

Entendimento do problema;

Trabalho em equipe (conversa entre piloto e copiloto, conversas na plateia).

Ao final da dinâmica se espera que:

O problema tenha sido resolvido;

Ao menos 5 novos testes (além dos propostos inicialmente) tenham sido implementados;

Todos os testes estejam 'verdes';

Considerar 10 minutos por piloto, calcular tempo necessário para cada turma onde cada aluno seja piloto ao menos 2 vezes.