Resolviendo un desafío en equipo

lunes, 17 de enero de 2011

En Noviembre pasado, Kinética Solutions nos hizo partícipe de una capacitación, sobre Test Driven Development (TDD), que brindó a su equipo de trabajo.

Esta capacitación se dividió en dos jornadas: la primera consistió en una charla introductoria del tema, la segunda fue un Workshop con el formato “Coding Dojo” para practicar un poco de Test Driven Development (TDD).

En este artículo les contaré la experiencia de los participantes de TercerPlaneta con el “Coding Dojo”.

¿Que es “Coding Dojo”?

Un Coding Dojo es una sesión de codificación centrada alrededor de un desafío de programación, de alcance pequeño. Todos los asistentes a esta sesión participan en la codificación para resolver el desafío planteado.

El objetivo es aprender, enseñar y mejorar nuestras habilidades de programación, compartiendo conocimiento y experiencia con otros desarrolladores de software, en un ambiente relajado.

La versión de Coding Dojo que propuso Kinetica Solutions es Randori, la misma consiste en utilizar una única computadora y un proyector. Los participantes de la sesión, en parejas, van utilizando la computadora durante una cantidad de tiempo fija y acotada, para codificar una porción de código de la solución. Una vez concluido el tiempo, dejan lugar a otra pareja de programadores para que continúen con el desafío.

Resolviendo el desafío

El desafío propuesto fue:

Llevar los puntos de un partido de tenis

sencillo, no?

Todos conocíamos cómo se llevan los puntos en un partido de tenis, con lo cual el primer paso para entender el alcance estaba dado, y así podíamos comenzar a resolver el problema

Para la dinámica del workshop se definieron 10 minutos para que la pareja de “piloto y co-piloto” se adueñen de la computadora y codifiquen un test (recordemos que estábamos haciendo TDD) y el código correspondiente para que pase el test.

Las parejas no se formaron al inicio del taller, sino que se iban formando a medida que comenzaba un nuevo período de tiempo. Rápidamente dos participantes, en forma voluntaria, se proponían para pasar a la computadora, y entre ellos decidían quien haría de piloto, haciéndose cargo del teclado y mouse, y por lo tanto el otro voluntario actuaría de co-piloto, aportando en el armado del código. Juntos decidían qué probar, mientras el resto del auditorio podía aportar ideas, pero siendo respetuosos ya que los “dueños” del código durante los 10 minutos de cada sesión, eran los “dueños temporales” de la computadora.

Una vez que se llegó a la mitad de la sesión, hicimos una Retrospectiva, con el objetivo de realizar los ajustes necesarios para completar el desafío en la siguiente mitad. Algunos cambios que surgieron fueron:

  • tener 2 minutos de “yapa” para terminar de desarrollar la idea;
  • la pareja que pasa a la computadora primero deja en claro para todos lo que va a hacer;
  • para la misma pareja, se intercambian los roles de piloto y co-piloto.

En la segunda mitad, se llevaron a cabo los cambios propuestos y se logró que todos conozcan mas y puedan participar mejor en la resolución del desafío planteado.

Moraleja

A pesar que no se completó la resolución del desafío planteado, sí se pudo cumplir con los objetivos del Coding Dojo: mejorar las habilidades de programación y hacerlo en un entorno distendido.

En particular, a los integrantes de Tercer Planeta, nos brindó la posibilidad de aprender un poco mas acerca de la dinámica detrás de TDD y participar en un workshop con el formato Coding Dojo.

Además, nos permitió compartir con nuestros colegas de Kinetica Solutions una actividad mas, la cual fue muy enriquecedora:

  • intercambiamos experiencias en la generación y uso de pruebas unitarias
  • hicimos pair programming con chicos de Kinetica
  • nos ayudó a hacer hincapié en tener claro qué codificar antes de “tirar” líneas de código
  • nos permitió interactuar con otros desarrolladores compartiendo un momento ameno, distendido y divertido
  • fue interesante codificar frente a un auditorio y recibir consejos, ayuda y opiniones
  • el espíritu que reinó durante el taller fue que todos, como un solo equipo, teníamos el objetivo de resolver el desafío.

¡Agradecemos la invitación y esperamos que se repita pronto!