ago 252011
 

Pleno agosto, pocos en la oficina, los clientes de vacaciones o muy tranquilos…¿por qué no aprovechar para hacer algo distinto?

Después de la sesiones de la AOS2011, sobre todo “Rompe la rutina” propuesta por Kinisoftware, nos hemos planteado mover dentro de nuestra empresa, algunas de las ideas allí comentadas. Coincidiendo además con que estoy haciendo los deberes que me ha puesto Rubén Bernárdez de cara al Coding Dojo organizado por Agile Spain Zona Norte  para el 24 de septiembre, ¿por qué no comenzar con nuestro primer Coding Dojo? He hecho esta propuesta a los que estaban por aquí y pusimos manos a la obra.

Objetivos

Organizando esta sesión, además de los objetivos típicos que se asumen en un Coding Dojo (hay mucho de esto ya escrito), me proponía:

  • Divulgación interna del agilismo, buenas prácticas, TDD, etc.
  • Motivar
  • Comprobar el interés que podrían generar en nuestra empresa, eventos de este tipo
  • Ensayo con pocas personas para centrarnos un poco más en el proceso
  • Aprender y aprender

Preparación

El único prerrequisito para participar fue: “Querer estar. Es en horario de trabajo, pero nadie está obligado a venir. Eso sí, si vienes, participas. ;-)”

En realidad la idea tenía cierto riesgo:

  • Nunca he participado en un Coding Dojo, y me iba a lanzar a moderarlo solo con lo que he estado leyendo.
  • La mayoría de mis compañeros tampoco han estado nunca, algunos ni siquiera sabían lo que era.
  • Nos falta a todos conocimientos de TDD, testing, etc.
  • Si esto salía mal, ¿cómo organizar nuevas iniciativas cuando estén todos en septiembre?

Intentando mitigar estos riesgos, nos pusimos ciertos deberes previos:

Lo importante en este caso no era el ejercicio en sí, por lo que optamos por la kata FizzBuzz, que es lo suficientemente sencilla como para permitirnos terminarla en el tiemplo planificado, dándole más importancia el resto de temas.

Como modalidad de dojo escogimos Randori y trabajamos en Java con jUnit, aplicando TDD.

Desarrollo

Organizamos una sesión de dos horas donde participamos cinco personas. La planificación:

  • Introducción. (30 minutos)
  • Desarrollo de la kata
    • Planteamiento y debate del ejerecicio (10 minutos)
    • Sprints de desarrollo con TDD. Una pareja cada vez frente al ordenador, aunque participando todos a través de la proyección (1 hora)
      • Preparación del siguiente sprint (2-3 minutos)
      • Picar código (10 minutos)
  • Retrospectiva (20 minutos)

Participamos todos picando y como copilotos he íbamos cambiando las parejas en cada sprint.

Foto Coding Dojo 1 Foto Coding Dojo 2

Sinceramente me quedé muy sorprendido al ver cómo estábamos todos metidos en el ejercicio, comentando, proponiendo alternativas, riendo y pasando un buen rato.

Durante el desarrollo iban surgiendo dudas y breves debates muy interesantes, por ejemplo:

  • Necesidad o no de comentarios en el código y formato de los mismos
  • Formas de utilizar el IDE (en nuestro caso Eclipse) que ayuden en la productividad
  • Cómo extrapolar lo que estábamos haciendo con TDD a proyectos grandes
  • Problemas y formas de implantación del agilismo en nuestro entorno

Por cierto, y aunque en este momento puede ser lo menos importante, terminamos la kata y ¡en el tiempo planificado!.

Retrospectiva

Acertamos en la selección de la kata y del formato del dojo.

Hemos comprobado que viene bien hacer actividades de este tipo. Se aprende mucho, se comparte información y al mismo tiempo rompemos la rutina.

Algo muy importante, de saber muy poco o nada de estos temas, hemos pasado a plantear la necesidad de aplicar estas cosas en nuestro trabajo diario. Debemos profundizar más en los debates que surgieron en esta sesión.

Y sobre todo, nos falta muuuuucho por aprender.

Conclusiones

Objetivos cumplidos. De verdad que no esperaba que saliera tan bien. Creo que debemos hacer todo lo posible por seguir este camino y que salgan muchas cosas de esta pequeña semilla.

¡Ha valido la pena y seguro repetiremos!