El primer fin de semana del mes de octubre 2019 tuvo lugar la Software Crafters Barcelona 2019, también conocida como SCBCN 2019. Como miembro de inLab FIB tuve la ocasión de asistir. Allí pude compartir experiencias con apasionados y grandes artesano del desarrollo de software. Algunos de ellos, han pasado por el programa Talent de inLab, como por ejemplo, Pau Trepat, parte de la organización de la SCBCN 2019, y que además en la anterior SCBCN (2018) nos deleitó con la charla Culture engine and stopper of changes que podéis ver en YouTube. También estuvo Joan López de la Franca, otro ex-inLaber, que hizo de ponente en un charla sobre DDD y Go, que más abajo os resumo. Y durante diferentes charlas, estuve codo con codo con Eduard Maura, otro Talent boy.
Las conferencias están divididas en 4 tracks durante 2 días, donde se hicieron diferentes conferencias que coincidían en el tiempo, algunas en castellano y otras en inglés. Solo voy a comentar sobre algunas de las charlas a las que pude asistir.
Cómo las herramientas correctas ayudan a implantar la arquitectura correcta
En esta charla, Carlos Villuendas nos cuenta su experiencia personal de llevar una arquitectura a producción. En concreto se centra en resolver problemas de arquitectura que los equipos se han ido encontrando, y nos cuenta las soluciones por las que optaron.
Una de las soluciones, fue evitar que los equipos de desarrollo pudieran tocar la configuración de los proyectos de software, creando un repositorio donde todos los proyectos tenían la misma configuración como dependencia. De esta solución, surgió un debate interesante entre la libertad del equipo para poder probar e innovar, respecto a las ventajas de uniformidad de configuración de los repositorios del software creado.
Ingeniería del caos: Rompiendo cosas a propósito en producción
David Lluna nos cuenta los inicios de la ingeniería del caos, contándonos la historia de cómo Netflix comenzó a crear y utilizar herramientas, como Chaos Monkey, para comprobar la resiliencia de sus sistemas en producción en Amazon Web Service. Una frase que lo resume sería: “Decir que funciona en ‘stage’ es igual de malo que decir que funciona en local”.
Para crear experimentos hay cuatro pasos a seguir:
- Definir un estado estable medible que indica el comportamiento habitual.
- Realizar una hipótesis del estado que le seguirá con un grupo de control y otro grupo experimental.
- Introducir variables que produzcan errores en el sistema, como fallos de disco, de red, etc.
- Y finalmente intentar refutar la hipótesis buscando la diferencia entre el estado estable en el grupo de control y el grupo experimental.
También habló sobre cómo se ha de realizar un postmortem sin culpables, para conseguir saber qué partes del sistema han fallado y buscar maneras de poder mejorarlas.
Back to the basics: Modelando nuestro dominio
En la tercera charla que asistí, Javi Ferrer González y Rafa Gómez Casas de CodelyTV, nos deleitaron con un ameno relato de como modelar nuestro dominio sin volvernos locos con Domain Driven Design (DDD) y los principios SOLID. En ocasiones necesitamos una solución simple que no introduzca una complejidad accidental que realmente no aporta valor para solucionar un problema. Nos cuenta con ejemplos de código diferentes matices para resolver algunos de los problemas habituales al trabajar DDD. Os recomiendo ver sus charlas que cuelga en su canal de YouTube.
Why Serverless?
Vicenç García Altés nos explicó, desde su experiencia, las ventajas y desventajas de trabajar con serverless, en concreto con AWS Lambda. Comentó que no es posible solucionar todo con serverless, pero que hacerlo ayudaba a los equipos a centrarse en crear valor, desarrollando software de producto, delegando gran parte del trabajo de gestionar la infraestructura a la herramienta de AWS Lambda.
Desde el caos al Domain Driven Design en Go
Nuestro conocido ex-inLaber Joan López de la Franca, junto con Adrián Pérez nos explicaron una divertida historia de cómo llevar una idea de negocio, desarrollada en Go, y de cómo fueron aplicando poco a poco DDD. Me pareció muy ilustrativa e instructiva incluso para alguien como yo que desconoce Go.
Software and architecture quality in a startup
Un crack como Cristian Cotes, nos dio una píldora de sabiduría, simplificando un tema tan complejo como la calidad de código y arquitectura. Según la fase de maduración de una empresa, el código a desarrollar no tiene porque tener la misma calidad. Si estamos en una fase inicial donde el objetivo es validar una idea de negocio, queremos poder validarla cuanto antes, gastando el mínimo dinero. En esa fase, un prototipado rápido y barato puede marcar la diferencia de una startup. Una vez validado el modelo de negocio, en la siguiente fase, has de encontrar el momento en el que plantear si mejorar la calidad de tu software, o directamente comenzar con código nuevo y limpio, ya que has de comenzar a tener en cuenta los costes de mantenimiento y extensibilidad de tu producto. Y en la fase final, es decir, cuando la empresa gana dinero, es fundamental la calidad en el código y arquitectura.
Visualización de datos: ¿Un nuevo arte?
María Ballesteros nos explicó lo importante de comunicar con imágenes. Nos dio alguna referencia como la Guía de vocabulario visual de Financial Times que nos puede ayudar a decidir qué gráfico utilizar, según los tipos de datos que tenemos y lo que queremos contar. Y también hizo referencia a WTF Visualizations donde podemos encontrar en un contexto humorístico, una recopilación visualizaciones de datos reales, vistas en internet, televisiones y periódicos.
Don’t fear DDD: introducing it to your project
En la última charla que asistí, el formato fue diferente. Oriol Saludes y Álvaro García nos mostraron, programando en directo, cómo evitar tener miedo a aplicar DDD, centrándose en la parte de entidades, value objects, agregados y repositorios. Realizaron in-situ diferentes refactorizaciones de un código en producción, aplicando Test Driven Development (TDD) y baby-steps. Charla muy recomendable para quien quiera iniciarse en DDD con Java.
En resumen, la Software Crafter de Barcelona ha sido un espacio donde he aprendido pequeñas píldoras de sabiduría y experiencias de otros compañeros de profesión, que me serán muy útiles para mejorar como profesional. Os recomiendo asistir a este tipo de eventos siempre que podáis.
Bonustrack
Si os habéis quedado con ganas de asistir a las charlas, en los próximos meses Autentia colgará las diferentes charlas en su canal de YouTube. Aquí tenéis el enlace a la playlist de videos de la Software Crafter Barcelona de 2018.