Raúl Ávila

Sobre mí     Archivos

Global Day of Code Retreat (2015)

La semana pasada tuvo lugar el “Global Day of Code Retreat”. Se trata de un acontecimiento a nivel mundial, donde programadores de cualquier experiencia y bagaje se juntan durante un día para mejorar sus habilidades.

Aunque se lleva celebrando varios años no fue hasta este que me enteré de su existencia, gracias a la LSCC. Me consta que muchísimas ciudades españolas se unen al evento cada año, así que mea culpa si nunca asistí durante todos los años que vivía en Madrid, seguramente era bastante menos inquieto de lo que soy ahora.

La jornada se desarrolló un sábado comenzando a las 8:30 de la mañana. Personalmente creo que esta circunstancia crea un filtro excelente que hace que todos los que asisten estén realmente interesados, porque ¿alguien madrugaría un sábado más que un día de diario para hacer algo en lo que realmente no tiene interés?

En Londres, fueron varias las empresas que alojaron a diferentes grupos de desarrolladores dispuestos a compartir sus conocimientos y aprender juntos. Yo me decidí por Pivotal, que era la que más cerca de casa estaba. Siempre es de agradecer que haya empresas punteras que cedan sus instalaciones para estas historias, y dice mucho a favor de ellas.

Sin tener ni la más remota idea de lo que allí ocurriría, después de un desayuno patrocinado por los anfitriones, que ríete tú del de los hoteles, y después de una breve presentación a cargo de uno de los organizadores (empleado de Codurance, una empresa de referencia dentro del movimiento Software Craftmanship), se inició una serie de seis sesiones “hands-on”, donde, programando por parejas, había que intentar resolver el ejercicio Conway’s Game of Life una y otra vez. Además, al final de cada sesión (de 45 minutos cada una) era obligatorio borrar el código desarrollado.

Habéis leído bien, el día consistía en resolver el mismo problema desde cero, rotando parejas, seguramente lenguajes, a lo que además añado era prácticamente obligatorio utilizar TDD para dirigir nuestro desarrollo.

¿Y dónde está la gracia de hacer lo mismo una y otra vez? Pues en que cada sesión imponía determinadas restricciones que había que respetar, a saber:

  • Mute Pair Programming: un programador escribe el test fallido y se lo pasa al otro para que codifique el código de producción que haga pasar el test. ¡No se puede hablar!
  • Object Calisthenics: se trata de seguir una serie de restricciones en nuestro código, que limitan el rango de actuación. Por ejemplo, un solo punto por línea de código, no utilizar else, etc. En el link podéis profundizar en el tema si estáis interesados
  • Otro tipo de restricciones como: utilizar solo objetos inmutables, sin ni siquiera getters (¡no sabéis lo complicado que es esto!)

Adicionalmente, cuando buscabas tu pareja era posible elegir un lenguaje que no supieras, lo cual se reveló como algo realmente enriquecedor. Gracias a esto aprendí el framework Mocha para implementar tests en Javascript.

Tras cada sesión hacíamos una retrospectiva conjunta en la que comentábamos los desafíos que encontrábamos, como intentamos superarlos, etc. Me resultó muy curioso comprobar cómo la forma de acercarse al mismo problema variaba según la pareja que tuvieras, y cómo en cada sesión íbamos obteniendo un código más depurado (y eso que siempre lo empezábamos desde cero).

No tengo la menor duda que en el futuro repetiré, encontré esta jornada realmente útil (y agotadora, todo sea dicho). El evento se celebra siempre a finales de Noviembre, ¡así que permaneced atentos para el próximo año!