viernes, 17 de diciembre de 2010

CodeRetreat de Zaragoza... allí estuvimos!

Después de un más que interesante Coding Dojo en Barcelona el pasado viernes, unos cuantos valientes con ganas de más nos íbamos al día siguiente al CodeRetreat de Zaragoza! Para el que no lo sepa, un CodeRetreat consiste, simplificando mucho, en juntarse un grupo de desarrolladores un día entero para programar (da igual el lenguaje, la experiencia... sólo importan las ganas) , en una serie de iteraciones de 45 minutos, una y otra vez el mismo ejercicio (normalmente el Juego de la Vida de Conway), por parejas, usando TDD e introduciendo una nueva restricción en cada una de las iteraciones. Además, por si no fuera suficiente, cada iteración se realiza con una pareja diferente! Viva la promiscuidad!! La verdad es que suena muy freak, y efectivamente lo es, sobretodo si se realiza a 300km de tu ciudad y tienes que levantarte a las 5:30 de un sábado para asistir! pero aparte de eso, es una manera excelente de aprender y mejorar, de conocer gente, de hacer networking y también de divertirse por supuesto!

Así que con muchas ganas y mucho sueño yo y Vicenç cogíamos al AVE las 7 de la mañana dirección Zaragoza. El resto de gente de Barcelona , Javier Gómez y su mujer (ingeniera informática que hace 4 años que no programa, y a la que según Javier había que devolver la sonrisa) iban en el siguiente tren!

Con el tiempo justo y gracias a que nos encontramos a Amalia (con quien habíamos colaborado en la organización delAOS2010) y a Jorge(alias Semurat) conseguimos llegar al peculiar "Water Pavillion", el lugar donde se iba a celebrar el evento.

Digital Water Pavillion

Más de 20 personas estábamos inscritas, y ya mayoría de gente ya había llegado y tenía los portátiles preparados cuanto entramos nosotros! Aparte de mucha gente de Zaragoza y los que íbamos de Barcelona había gente de diferentes lugares de la geografía Española, cómo Madrid, Valladolid, Valencia.. Únicamente tuve tiempo para saludar brevemente a Xavi Gost, que iba a ser el facilitador del evento, a Teresa Oliver (a quién también conocía de la organización del AOS2010 y una de las culpables de la realización del CodeRetreat) y a alguna persona más que conocía de haber asistido al mismo evento justo antes de que llegara los dos catalanes que faltaban y nos pusiéramos manos a la obra.

Después de una breve ronda de presentaciones, donde de se vio que había dos grandes grupos en lo que a lenguajes de programación se refiere (Java y .Net) Xavi nos explicó la dinámica del evento, básicamente la que he explicado arriba, nos explico las 4 reglas del juego de conway que había que implementar y nos dijo que empezáramos!

Antes de empezar


La primera iteración la hice con Vicenç, y después de los primeros 45 minutos, nos pensábamos que teníamos un código bastante bueno y bonito, ingenuos... Al acabar Xavi nos reunió y fue preguntó¡ando a la gente por sus impresiones, por cómo habían enfocado el problema, etc... Hubo un poco de todo,desde gente que había empezado a desarrollar en universo entero donde situar a las células del juego hasta gente que prácticamente no había hecho una sola línea de código. Hay que tener cuenta que mucha gente no había programado con TDD en su vida. A partir de ese momento y durante las siguientes iteraciones, Xavi nos iba poniendo nuevas restricciones a la hora de implementar los tests, por ejemplo:
  • No instanciar nada más allá de lo estrictamente necesario
  • Desarrollar el test dentro del propio test
  • Darle semántica al código (cómo ejemplo, la mayoría de le gente utilizaba una variable boleana para indicar si una célula estaba viva o no, y Xavi nos dijo que una persona cuando muere no está a "False"...)
  • ...
Al final hicimos unas 5 iteraciones, en las que tuve la oportunidad de tocar 3 lenguajes de programación (C#, Java e incluso Python!!) y de desarrollar con personas diferentes que tienen diferentes puntos de vista y diferentes maneras de buscar la solución, lo cual creo que es muy enriquecedor e interesante.

Después de la 5ª iteración y de una breve videoconferencia con Enrique Comba desde Londres (Enrique es uno de los firmantes originales del manifiesto por la artesanía del software, además de ser un asiduo facilitador de CodeRetreats) la gente estaba bastante cansada, y se decidió acabar con un pequeño reto a Xavi Gost: Seleccionamos una Kata que él no conocía y tenía que implementar la solución utilizando TDD, sin leerle el enunciado, únicamente a base de tests que Amalia le iba escribiendo! La kata elegida fue la de La Multiplicación a la Rusa, muy muy complicada para realizar con TDD puro y duro, así que hubo que darle alguna pista adicional a Xavi para que pudiera deducir la implementación!

Xavi Gost enfrentándose a "La multiplicación a la Rusa"

Con esto, y unas cervezas cortesía de los chicos de Masterbranch finalizaba "oficialmente" el CodeRetreat!! Y digo "oficialmente" porque el evento se alargaba para que los querían (o podían) con unas cervezas, cena y lo que surgiera! Lástima que nosotros nos tuvimos que volver esa misma noche!!

Cómo conclusión, aparte de las ganas y la motivación de la gente, el buen ambiente y el poder conocer a personas muy interesante (y volver a ver a las que ya conocía) , me quedo con la idea de que es necesario buscar la excelencia en nuestra profesión (cómo en toda profesión de hecho) y que esa búsqueda debe empezar por elevar el grado de auto-exigencia a nosotros mismos, y buscar siempre y de manera continua el ir mejorando poco a poco en todo aquello que hagamos (ya sea código o cualquier otra actividad).

Por suerte parece que empieza a haber cada vez más gente que comparte esa misma idea cómo se puede ver con los diferentes eventos que están surgiendo últimamente en diferentes lugares y de las diferentes comunidades (muchas de ellas ágiles) repartidas por el estado.

Para finalizar: muchas gracias a los organizadores, que hicieron posible este evento, a Xavi Gost por su facilitación y a todos los que asistieron por darme la posibilidad de poder aprender de ellos (especialmente a la gente con la que pude sentarme a desarrollar) y de conocerlos!!

Un saludo!!

PD: Dani Latorre ha recopilado una lista con muchas de las cuentas de twitter de los asistentes! Por si os falta alguna!!

martes, 14 de diciembre de 2010

Primer Coding Dojo en Barcelona

Después del fantástico AOS 2010 celebrado en Barcelona había una idea flotando en el ambiente: hay que montar más cosas!! Así que, ni cortos ni perezosos, el grupo local de Barcelona organizamos nuestro primer Coding Dojo. El evento lo realizamos en las fantásticas oficinas de Runroom con Carlos como anfitrión.

La convocatoria fue un éxito y enseguida se apuntó mucha de gente, aunque el echo diferencial fue la promesa de Gin Tonics subvencionados por Úbeda Gin & Tapas. Todo un detallazo!


La kata que seleccionamos para hacer el Coding Dojo fue la de Cesar juega a la loteria. Es una kata interesante que se puede resolver de varias maneras y que da bastante juego. Entre los 18 participantes se realizó la kata en .Net, en Java y en JavaScript. Eso si, todos con TDD.



No se exactamente por qué, pero me parece que en Barcelona hay más programador en .Net y, en cambio, en otras comunidades hay más programador en Groovy, Rails y compañía. Por lo menos en las comunidades ágiles. Curioso.

Hicimos dos iteraciones de 40 minutos. Después de la primera iteración tocaba cambio de pareja, pero quizá por ser la primera la gente no se animó y todos continuamos con nuestra primera pareja, y con nuestro segundo Gin Tonic, claro :D.



Al final de ambas iteraciones, hicimos un poco de retrospectiva de la kata. Cada uno comentó como se había encontrado haciendo TDD, como había encarado la kata, etc.Surgieron opiniones para todos los gustos: gente que no se acababa de encontrar cómoda con TDD ( para muchos era su primer vez ), gente que se encontraba muy cómoda y la kata le iba saliendo muy bien, gente que estaba refactorizando tranquilamente por el echo de tener tests por debajo, etc.

Y para acabar vimos todos el vídeo del "The downfall of Agile Hitler" para echarnos unas risas antes de continuar con las cervezas ágiles mientras cuatro afortunados nos preparábamos para ir a la mañana siguiente al coderetreat de Zaragoza. Pero eso ya es otro post...