Algunas de las primeras referencias que vi sobre el desarrollo de software como artesanía sería cuando leí The Pragmatic Programmer. Por aquel entonces me parecía muy oportuna la alegoría de que desarrollar software tiene más que ver con un trabajo de artesanía que otra cosa.
Con el tiempo para mi dejó de parecerme tan oportuna, no por que la alegoría ya no me parezca válida, si no por la sensación de ver utilizada la etiqueta de artesano de software en muchas ocasiones de modo que al ponérsela uno ya pertenece automáticamente a algún tipo de élite. Me recuerda bastantes a tiempos en los que ponerse la etiqueta ágil era ser élite, y ahora uno pasa de conocer de oídas scrum a ser todo un experto de todos los artefactos de las metodologías ágiles con un curso de un par de tardes.
En fin, que me lío. Todo esto para decir que hace un par se semanas que asistí a la Software Craftsmanship Barcelona y salí muy contento del evento. Y eso que me habían hablado muy bien tanto Néstor como la gente de No Flop Squad, iba con expectativas bastante altas y estas se cumplieron con creces.
Desde Aragón salimos una pequeña representación: Néstor, Javi, Miguel Ángel, Nacho y yo. Que como de costumbre lo dejamos todo para el último momento y al final fue un poco desastre el tema del alojamiento, como oí en alguna ocasión: "el último momento responsable está peligrosamente cerca del primero irresponsable". Llegamos el día de antes, con el tiempo justo para cenar algo con un grupo que ya habían estado de kata pre-evento.
Ya en la craftsmanship pude encontrarme con bastantes compañeros del gremio: algunos sospechosos habituales en saraos agilistas, gente de Barcelona que conocí en un code retreat que facilité hace un par de años, desvirtualizar por fin a Rafa Gómez (todo un favstar ;)) y conocer a unos cuantos que no tenía en el radar; entre ellos a la buena gente de 540.
En cuanto a las sesiones el primer día estuve en:
- Mutation Testing que explicó Vicenç, una técnica para comprobar la calidad de los tests modificando (mutando) el código original y comprobando que los tests fallen (mueran las mutaciones). Justo la semana después me vi una charla que tenía pendiente sobre el tema en InfoQ también muy recomendable.
- ReactJS para arquitectura de frontend en Schibsted Spain con Carlos Villuendas. Esta charla me gustó bastante porque no se limitó a hablar de cómo están usando React para los proyectos de Schibsted (infojobs, fotocasa...), si no además a cómo tienen planteada toda la arquitectura de frontend tratando de tener la lógica totalmente abstraída de cualquier framework. Me anoté lo de tener todo el código de lógica de negocio como un módulo npm.
- Replanteamiento de diseño de software de Javier Ferrer fue la charla que más me gustó. Explicó los problemas que se estaban encontrando en uvinum para cambiar y evolucionar su software (deuda técnica, coste de mantenibilidad...) y cómo estaban abordando cómo atajar el problema. Desde tratar de mejorar el diseño a bajo nivel hasta encaminarse al Domain Driven Desing y cuál está siendo su experiencia con ello.
- #NoEstimates con Alex Casquete y Fernando Escolar. Es un tema del que llevaba un tiempo viendo que se hablaba en algún evento pero nunca me había llamado la atención meterme en una sesión, tengo una opinión bastante formada acerca de la poca utilidad que suelen tener las estimaciones de tareas. Sobre la charla, la primera mitad de la charla me pareció interesante, pero a raíz de algunas interrupciones se terminó desviando un poco el tema y preferí salirme de charlas de pasillo.
- TDD para crear una herramienta de TDD con Néstor (The troll). Me gustó mucho su charla acerca de las tripas de mamba y, como muchas veces he pensado que sería interesante juntarse a cerrar alguna issue con él, me sirvió como intro para conocer un poco los entresijos de este framework. Ahora será cosa de ver si no lo dejamos sólo en buenas intenciones.
El segundo día, terminé por no meterme en ninguna de las katas de programación que había en agenda. Me hice hueco en la zona del coffee break para poder ponerme con mi portátil a atender a algún compromiso que quería finiquitar antes de acabar el fin de semana. Por la tarde sí asistí a varias de las sesiones del open space que se organizó:
- Equipos remotos. A esta llegué a mitad tras salirme de una sobre de DDD a la que no terminé de pillar el punto. El rato que estuve se habló más que nada de herramientas; desde las más o menos típicas de comunicación como slack, trello, hangouts... a otras para hacer pair programming como RemoteCollab, tmux, Screenhero.
- Introducción a Clojure, ahí Manuel Rivero nos hizo una intro a vista de pájaro. No es que nos pudiera enseñar mucha cosa, pero a mi me sirvió para hacerme una idea inicial de cómo es la sintaxis del lenguaje y algunas de las características de este dialecto de Lisp.
- Comunidades locales. Estuvimos un puñado de personas que estamos involucrados en diferentes comunidades locales de nuestras respectivas ciudades. Ahí vimos como algunos problemas eran diferentes en ciudades grandes respecto a ciudades medianas y pequeñas; pero también algunos problemas e inquietudes muy similares. No saqué soluciones en claro para los "problemas" en las comunidades en las que voy echando una mano, pero me resultó muy interesante compartir experiencias.
Para los que tengáis interés, se pueden ver los videos de algunas charlas que grabaron en el canal de youtube de Software Craftsmanship Barcelona y algunas fotos en su meetup.
Tras finalizar aún nos quedamos con ganas de más, en el viaje de vuelta en tren terminamos la mitad de trayecto viendo código de un par de proyectos míos y charlando sobre algunos temas técnicos.
Lo dicho, que me fui con buen sabor de boca del evento.