martes, 21 de agosto de 2012

¿Qué es un Coding Dojo?


Coding Dojo
Como desarrolladores es importante que tengamos ganas e interés en ser cada día mejores profesionales. Por eso quizá, participar de vez en cuando en un Coding Dojo sea una experiencia enriquecedora en la que podemos mejorar nuestras habilidades de programación.
Un Coding Dojo se trata de una reunión de programadores para trabajar en un reto de programación durante unas horas, una tarde o incluso un día entero. Además los programadores que codifiquen en ese momento están rodeados por una audiencia (que participará o no posteriormente) observa el proceso de codificación, si es posible técnicamente a través de un proyector. En definitiva, una forma divertida de aprender técnicas nuevas con programadores que posiblemente en otras circunstancias no tengamos la oportunidad de trabajar.

Principios básicos del Coding Dojo

  • Fundamentalmente entender que adquirir nuevas habilidades de programación es un proceso continuo en la que como programadores debemos estar abiertos siempre a aprender nuevas técnicas y tecnologías.
  • El entorno de Coding Dojo es colaborativo y no competitivo en el que todos los programadores aportan indiferentemente del nivel que tengan.
  • Deber ser divertido ya que estamos para pasar un buen rato a parte de aprender. Se puede tener a alguien que actúe como speaker para que, de forma distendida, vaya narrando el proceso. Si consigue que ver a un compañero codificando en eclipse sea divertido, mucho mejor.
  • Es importante estar abierto a nuevas ideas y nuevas formas de abordar un problema.

Modalidades de Coding Dojo

Codekata

En esta modalidad un participante exhibe una solución a un desafío concreto (por ejemplo, pasar de número latinos a romanos) la cual ha sido preparada con anterioridad, ensayada y refinada. El concepto de kata se extrae de las artes marciales en las que se ensaya una técnica constantemente hasta conseguir la perfección.
En el Coding Dojo básicamente lo que se intenta es refinar nuestro código, incluso ver diferentes soluciones a un mismo problema usando diferentes lenguajes. Se usa TDD para alcanzar la solución. Por supuesto, al final todos podemos participar proponiendo mejoras en el código de la Kata final para refinarla aún más. Todos aprendemos de todos.

Randori

El reto se intenta solucionar por parejaspair programming, en la que uno hace de piloto con el teclado y otro de copilo sobre un mismo ordenador resolviendo el problema. Se turnan según un time box, tiempo decidido que puede ser el tiempo de un pomodoro como medida, rotando las parejas pasando el copiloto a piloto y entrando uno nuevo como copiloto proviniente de la audiencia.
Eventualmente la audiencia puede opinar y dar sugerencias de cómo resolver el problema, pero en ocasiones la pareja puede decidir no ser interrumpida. Ante todo siempre se tiene que ir explicando cada paso que se realice para que la audiencia pueda seguir el proceso y poder entrar en marcha sin problemas. Normalmente se elije un tiempo de interacción concreto para los turnos y se aprovecha el cambio de pareja para analizar la evolución del proceso y el feedback que va dando la audiencia a modo de retrospectiva.
Lo mejor de todo es animarse entre un grupo de compañeros, aprovechar los coding dojo que se suelen organizar en las universidad o si tienes la oportunidad en tu empresa de mezclar a varios desarrolladores de diferentes equipos para crear un proyecto express de un día o un par de horas. Practicar unas katas de programación o realizar un miniproyecto utilizando la técnica Randori para dinamizar la participación de todo el equipo en el proyecto. Incluso se pueden formar varios equipos que trabajen en paralelo en diferentes soluciones.
¿Habéis participado alguna vez en algún Coding Dojo? ¿Qué os ha parecido?
Más información | Coding Dojo 
Foto | Caike (Flickr)
En Genbeta Dev | Ejercítate como programador: 12 meses, 12 katas

No hay comentarios: