Semanas 382, 383 y 384

Semanas un poco locas las últimas 3: Puestas a producción, la software craftsmanship de Barcelona, tener que ponerse en modo cowboy para llegar a una entrega parcial con los pilares de por medio y algunos que otros dolores de cabeza más... Y sin poder reservar el tiempo y ganas necesarios para escribir la retro semanal.

Elegimos el ganador del Code 4 Pilar. Por mi parte estuve revisando el código de todo el que lo dejó libre, y aunque no se tuvo en cuenta la calidad del código, el conocer un poco como estaban enfocadas las soluciones de los proyectos con código abierto sirvió para resolver algunas dudas que surgieron durante la reunión del jurado.

También llegaron varias peticiones de presupuestos que aún tengo pendiente de responder, por el momento veo difícil poder atender esos proyectos. Y en cuanto a los que me han tenido bastante liado:

  • Hice los últimos ajustes y puesta en producción para Alchups. Estoy muy contento con el resultado de este proyecto, a ver si estos días saco un rato para explicarlo con más detalle.
  • En Bichomanía estuve haciendo algún arreglo en el desliegue con capistrano, le añadí monitorización con newrelic e integré los cambios de Pablo para arreglar algunas cosas del responsive que estaban rotas.
  • En One-stop pidieron algunos cambios pequeños cambios en el frontend, así que los introdujimos y ya están desplegados en producción.
  • Y lo que la mayor parte de mi tiempo absorbió fue el proyecto con Maubic. Tenía que tener listo el grueso de la funcionalidad del backend implementado para una entrega y al final la cosa llegó a su puerto razonablemente bien, aunque hubo que dedicarle muchas horas y me generó mucho estrés (¿he oído ritmo sostenible?). Realizar cambios de arquitectura bastante majos, implementar varias funcionalidades, revisar todas las cuestiones de niveles de acceso de los usuarios... Y entre todo el jaleo también me tocó buscar como parchear un issue que encontré loopback, todavía tengo pendiente intentar dejarlo un poco apañado para enviar un pull-request.

Buena semana.

Software Craftsmanship Barcelona 2015

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.

Semana 381

La semana pasada, igual que lo que llevamos de esta, fue de sacar el máximo de productividad posible. Son semanas de esas en las que sacamos mucho trabajo adelante pero nos pasamos un poco por el forro nuestro principio de tener un ritmo trabajo sostenible, de cualquier modo he intentado focalizarme en que la calidad no se viera demasiado resentida, que ya sabemos como acaba la cosa si vamos dejando ventanas rotas alegremente.

Esta semana tuvimos zaragozarb. Para esta edición íbamos a hacer una sesión de Mob Refactoring sobre una aplicación rails mía, que iba a tratar de facilitar yo. Finalmente estuvimos discutiendo alrededor del código de una aplicación ya vieja con modelos con sobrepeso y otra en la que estoy trabajando actualmente (con una base de código todavía pequeña). Aunque no trabajáramos sobre el código creo que el debate sobre el propio código resultó interesante.

En cuanto a proyectos:

  • Estuvimos trabajando en Alchups, finiquitamos los temas de diseño y frontend que coleaban, y ya estamos a la espera de que nos den la orden de dejarlo en abierto para que lo hagan público.
  • Introduje una modificación en la gestión de restaurantes de Minchador en el fork para la startup con la que estamos colaborando.
  • También trabajé en Bichomanía resolviendo algunas issues e implementando algunos cambios para tratar de mejorar el SEO.
  • Con la gente de Maubic estuve trabajando sobre uno de los microservicios con vistas a la próxima demo y estuve haciendo cambios en la documentación de los contratos del API. Fue una semana de programar mucho con node/loopback/mocha, y teniendo que dejar aparcado mi soporte al equipo de frontend en cuestiones de testing.
  • En OutreachTool tuve que trabajar en varias pequeñas funcionalidades para una campaña de captación leads. Además tuvimos reunión para ver los posibles caminos a seguir en los próximos meses, a raíz de ello empecé a darle alguna vuelta a un prototipo para el generador de planes de comunicación.

Buena semana.

Semana 380

Semana de ir a ritmo, sacando cosas con bastante trabajo pero cierta estabilidad. Tocó rechazar una posibilidad de colaboración a modo de contractor, que aunque el proyecto siempre me pareció muy interesante desde que lo conocí, es incompatible con mis actuales compromisos.

También se hizo pública la convocatoria del concurso/hackathon Code 4 Pilar, de la que formo parte del jurado. Es un concurso en el que se puede presentar cualquier aplicación (web o nativa) donde, además del premio en metálico, se considerará la aplicación oficial de pilares, así que imagino que también se llevará bastante promoción.

En cuanto a saraos, aunque llegué algo tarde, estuve por la conferencia abierta del Google Developer Groups Summit. Las charlas eran de media hora, por lo que los temas técnicos no pudieron ser más allá que introductorios. También se habló de una iniciativa que no conocía: Tech&Ladies, para tratar de dar visibilidad a las mujeres que trabajan en el sector para fomentar su mayor incorporación y participación (tema que por aquí tratamos en su momento en forma de entrevistas).

Y en lo que se refiere a mis proyectos y colaboraciones en marcha:

  • Dejé medio hecho lo poco que quedaba de Alchups a nivel de programación, más que nada temas de integración con el API de google maps. Esta semana parece que cerraremos los flecos de diseño y maquetación.
  • Dediqué algunos ratos para hacer pequeños cambios tanto en OutreachTool, como en Bichomanía y Mosica.
  • Con Maubic tuvimos la primera demo con el cliente, parece que salió bastante satisfecho aunque se nos quedaran algunas cosas en el tintero.
    Hicimos nuestra primera retrospectiva como equipo y como era de esperar salieron bastantes puntos de mejora; por otro lado, como arranque del siguiente sprint, estuvimos extrayendo las tareas e hicimos una sesión de planning poker.
    Mientras que a nivel individual, además de seguir trabajando en tareas de backend, me tocó preparar una sesión de introducción a testing unitario en javascript con Jasmine. Y también aproveché para retomar el tema de cucumber, dejando un par de escenarios cubiertos con tests end-to-end que puedan servirnos de referencia para retomarlo algo más adelante.

Buena semana.

Semanas 378 y 379

Seguimos con semanas bastante moviditas, la anterior no reservé un tiempo para escribir la retro, así que de nuevo vuelvo a hacer retro quincenal.

La semana anterior había de nuevo Geek's Talks. Sigo notándome muy atascado respecto a cuando era habitual y andaba algo más rodado, últimamente me estoy volviendo a plantear el buscar alguna formación más "formal" y ya me han recomendado alguna cosa.

Por otro lado este viernes retomamos los FridayDojo, en este Gualis se preparó una kata un tanto diferente, ya que era acerca de trabajar con el sistema de ficheros y forzar el trabajar con mocks para los tests.

También tuve conversaciones alrededor de Minchador, tengo pendiente una reunión de la que veremos si sale algo interesante.

En cuanto a proyectos en curso:

  • Pusimos en producción el nuevo Bichomanía, aún a sabiendas que existen algunas mejoras pendientes de implementar teníamos que lanzarlo ya. Poco después del despliegue arreglé un pequeño bug que encontramos y añadimos soporte para recibir pagos por Paypal, transferencia y a contra reembolso.
  • En Alchups tenemos ya casi todo diseñado, maquetado y programado. Estamos a poco de cerrar a falta de una sección de la web, con todo ya desplegado en un entorno de staging y con los encargados del contenido trabajando con normalidad sobre el backoffice.
  • Tuvimos una sesión de trabajo de todo el equipo de OutreachTool para definir la renovación de la landing page, también dediqué algunos ratos para bocetar algunas cosas de la aplicación web.
  • Hice alguna pequeña mejora en Mosica, principalmente relacionado con la sección para pilares. También le he estado dando vueltas a implementar alguna mejora para la aplicación móvil, aunque últimamente ando fatal de tiempo para ello.
  • Con la gente de Maubic encarábamos las 2 últimas semanas para preparar la primera demo con el cliente. Por mi parte estuve trabajando principalmente en cerrar tareas del backend, tanto implementando algunas features y cambios como haciendo algunos refactors, para algunas de ellas estuve haciendo pair programming con un desarrollador que ha entrado hace poco. Por otro lado, me tocó investigar y hacer alguna prueba con Karma para el testing de frontend y viendo qué tal era Instambul para controlar la cobertura de tests tanto en los frontends como en el backend.

Buena semana.