Code Kata
Publicado por Vinicius Manhães Teles há mais de 3 anos.

Durante a viagem para o Paraná, aproveitei para escutar diversos podcasts que estavam há tempos no notebook. Um dos mais interessantes foi a entrevista que Dan Benjamin fez com Dave Thomas. Dave falou sobre como virou editor de livros "acidentalmente". Aliás, editor de alguns dos melhores livros de computação da atualidade. Além disso, falou sobre Ruby e Rails, naturalmente. Mas, o que mais me chamou a atenção foi o conceito de Code Kata.
O Ivan Sanchez toca uma bela iniciativa nesse sentido através do Coding Dojo Floripa. Eu já tinha uma noção do significado de Dojo e Kata através de seu site. Mas, ouvindo as explicações do Dave Thomas, a idéia ficou mais clara ainda e compreendi o quanto é poderosa.
Ele explica que seu filho luta Karatê, onde se aprende diversos tipos de Kata. O Kata é uma seqüência de movimentos que o lutar repete inúmeras vezes à medida que se exercita. São movimentos de ataque e defesa que o lutar faz para "simular" uma luta real. Provavelmente nenhuma luta irá se assemelhar ao Kata, mas o objetivo não é esse.
A idéia é fazer com que os movimentos sejam "internalizados" pelo lutador. Ou seja, eles precisam sair do nível consciente para o subconsciente. Precisam "entrar no sangue" e se tornar tão naturais que o corpo passe a agir de forma reflexiva, sem que a mente consciente tenha que entrar em ação. De tanto repetir os movimentos, o corpo acaba aprendendo e o lutador passa a executá-los sem se dar conta do que está fazendo. É como passar marcha, acelerar e frear. São ações feitas de forma praticamente subconsciente quando estamos dirigindo.
O Code Kata é um exercício de programação que o desenvolvedor executa para treinar suas habilidades de desenvolvimento. A idéia é, de tempos em tempos, refazer o exercício, mas sempre se esforçando para criar uma solução diferente para o mesmo problema. Isso ajuda a explorar novos pontos de vistas e pesquisar abordagens alternativas.
Há também o formato de reuniões, onde um ou dois desenvolvedores trabalham na solução de um exercício de programação, com uma platéia assistindo e fazendo perguntas, como o que fizemos no XP Rio há alguns meses: o XP Rio on Rails.
Adorei esse conceito e hoje mesmo o utilizei durante o treinamento Imersão Ágil aqui em Fracisco Beltrão. O único detalhe é que misturei isso com programação em par e o resultado parece ter sido bem proveitoso, sobretudo para ajudar os alunos a fixar alguns dos conceitos mais importantes de TDD.
OBS: Figura retirada do Wikipedia.



O que você achou? Coloque seus comentários e sugestões abaixo!
Acompanhe o RSS dessa página.
Comentários (1 até o momento)
Marcos Tapajós disse 1 dia depois: