Saturday, February 17, 2024

Bilbostack 2024: Mi crónica de la conferencia

El pasado 27 de enero tuve la suerte de poder asistir a la duodécima edición de Bilbostack (https://bilbostack.com/), un evento que se celebra en Bilbao y que reúne a profesionales del mundo de la tecnología y el diseño.
Es una de mis conferencias favoritas y de la que he disfrutado en bastantes ediciones, tanto como asistente como ponente (https://www.eferro.net/2019/01/bilbostack-2019devops-is-not-what-you.html y https://www.eferro.net/2022/01/talk-developer-experience-modern.html).  Un año más, terminé encantado con la conferencia y con ganas de volver el próximo año. Dejo por aquí una crónica de la conferencia por si a alguien le ayuda a decidirse a asistir el próximo año. :) 




Aparte de volver a mi tierra e ir a visitar a la familia, el evento me sirvió para ver a viejos amigos y hacer nuevos. Además, tuve la suerte de poder asistir a charlas muy interesantes. 
La Bilbostack es una conferencia que "solo" tiene 8 charlas, organizadas en dos tracks paralelos. Las charlas son siempre de gran calidad y el ambiente es inmejorable.

Charlas

La primera charla a la que asistí fue la de Adrià Fontcuberta (https://twitter.com/afontq), "El arte de desarrollar: ¿En qué pensamos cuando pensamos en software?". Adrià nos habló de los modelos mentales que utilizamos para desarrollar software y de cómo estos afectan a la calidad del software que desarrollamos. Me encantó, y me sentí como si todo lo que comentaba Adrià fueran mis propias conclusiones. Explicó mediante metáforas y con ejemplos claros la importancia de los feedback loops, la simplicidad, la necesidad de ser capaces de posponer las decisiones mientras aprendemos lo más rápido posible para ir disipando la incertidumbre.
Espero que Adrià grabe la charla en algún momento para poder recomendarla a todo el mundo. De momento, os dejo el enlace a sus slides: https://noti.st/afontcu/kmdzCv/el-arte-de-desarrollar-en-que-pensamos-cuando-pensamos-en-software y al blog post que Adrià escribió sobre la charla: https://afontcu.dev/bilbostack-2024/ 

Después de esta primera charla, intenté asistir a una relacionada con seguridad, pero había tantos amigos y conocidos, que para cuando llegué a la puerta de la sala, ya estaba llena :) En cualquier caso, no me arrepiento, puesto que una de las mejores cosas de la Bilbostack es el networking, así que aproveché para estar poniéndome al día con amigos y conocidos.

La siguiente charla a la que asistí fue la de Mario López Martínez (https://www.linkedin.com/in/mariolopezmartinez/), "Ser data-driven no es de guapas". Mario nos habló de la dificultad de ser "data-driven" en una empresa, y de cómo la cultura de la empresa y la naturaleza humana dificultan la tarea. Me pareció una charla muy interesante y que me hizo reflexionar sobre la forma de trabajar en data engineering. Mario es un gran comunicador y, además de disfrutar del contenido de la charla, me estuve riendo un buen rato. Os dejo por aquí el enlace al post que Mario escribió sobre la charla: https://brain.drmario.tech/pages/%E2%9C%8D%EF%B8%8F+Ser+data-driven+no+es+de+guapas




Por último, asistí a la charla de mi gran amigo Isidro López (https://twitter.com/islomar), "Valor por encima de código: el poder del Despliegue Continuo". Isidro nos habló de la entrega continua, de su importancia y de cómo llevarla a la práctica. Es un tema que me apasiona, y en esta ocasión lo disfruté doblemente puesto que hasta hace poco (y por segunda vez) Isidro y yo trabajamos juntos usando entrega continua. Por tanto, parte de los ejemplos usados eran de cómo trabajamos en algunos equipos de ClarityAI. La charla estuvo genial, y contenía mucha sabiduría y experiencia. Me parece fundamental que se hable de esta forma de trabajar (entrega continua, Trunk Based Development, XP, etc.) puesto que para mucha gente parece algo lejano y casi utópico, pero la realidad es que llevo trabajando de esa forma desde hace al menos 14 años y no lo cambiaría por nada. Desarrollar software no tiene por qué ser un infierno lleno de ansiedad y estrés; puede ser un ritmo sostenible en el que disfrutes con tu trabajo mientras entregas valor a tus clientes de forma continua. Isidro ha publicado las slides y recursos de la charla en su blog: https://islomar.es/blog/talks/slides-and-resources-talk-bilbostack-2024/ y además ha tenido la paciencia de contestar con detalle todas las preguntas que los asistentes le hicieron en la charla: https://islomar.es/blog/talks/preguntas-y-respuestas-bilbostack-2024/ 

Con mucha, lo más duro de la Bilbostack es la necesidad de elegir entre las charlas, puesto que al mismo tiempo de la charla de Isidro, me quedé con muchísimas ganas de asistir a la charla de Ujue Agudo (https://twitter.com/ujue) y Karlos G (https://twitter.com/patxangas), "Cuando las decisiones humanas se cruzan con los sistemas automatizados". Pero bueno, la vida es elegir.

Networking



Después de las charlas, llegó una de las estrellas de esta conferencia, el networking. En este año (creo que ya es el segundo), los organizadores de la Bilbostack han habilitado una zona en la explanada del museo marítimo de Bilbao para poder charlar con los asistentes, tomar algo y disfrutar del buen ambiente. Me encanta esta parte de la conferencia, puesto que es una oportunidad para charlar con amigos, conocidos y desconocidos. Creo que el lugar es una gran elección puesto que está muy cerca del Palacio Euskalduna, donde se celebra la conferencia, y además es un lugar espacioso.
Hace algunos años, el networking era en la Plaza Nueva, y aunque era un lugar mucho más típico, estaba más lejos de donde se hace la conferencia y, al ser un sitio público, los organizadores no podían fácilmente controlar el aforo u organizar actividades. 
Con la decisión de hacerlo en la explanada del museo, les ha permitido poner puestos de comida y bebida, hacer actividades y tener más flexibilidad sobre la experiencia de los asistentes. Ni que decir tiene que disfruté como un puerco en la charca, charlando con amigos, conocidos y desconocidos.
Me hubiera encantado seguir el networking hasta altas horas de la madrugada, pero al ser de Bilbao tenía otros compromisos, así que me tuve que ir pronto.
En cualquier caso, un acierto el nuevo formato de networking. 




 En resumen, la Bilbostack 2024 fue una conferencia genial, con charlas de gran calidad y un ambiente inmejorable. Me encanta que se celebre en Bilbao, y que sea una conferencia pequeña y acogedora. Espero poder asistir el próximo año y volver a disfrutar de la comunidad.

Wednesday, January 31, 2024

Selección de charlas recomendadas en español

 

Normalmente comparto en este blog el contenido (charlas/podcast) que encuentro interesantes. La mayoría del contenido es en inglés, pero con el paso del tiempo he ido acumulando algunas que son en castellano y merecen mucho la pena. Espero que las disfruteís...
  • Aquí también hay esperanza (Modesto San Juan) [Engineering Career, Inspirational] [Duration: 01:22] Inspiradora charla sobre nuestra profesión de eternos aprendices. Imprescindible.
  • Clean Architecture: La mejor forma de escalar y mantener tu código (Rafa Gómez) [Architecture, Design, hexagonal] [Duration: 00:18] Muy buena descripción de las arquitecturas limpias y de la arquitectura hexagonal. Muy didactico.
  • Artefactos en la gestión de Producto (Vanesa Tejada) [Product] [Duration: 01:06] Interesante charla en la que Vanesa nos comparte los artefactos que usa para mejorar el proceso de producto a escala (radiadores de información, tracking, etc).
  • E019 Qué es y para qué sirve la cultura organizacional (Xavi Gost, Carlos Iglesias) [Agile, Company Culture, Culture] [Duration: 00:59] Realworld podcast Ep 19.
  • Startup School: Restart "Motivación y responsabilidad" (Félix López) [Engineering Career, Inspirational, Product] [Duration: 00:56] "ownership" o responsabilidad, una de las grandes tendencias en muchos artículos sobre productividad y efectividad para gestionar equipos y que pocas veces se explica en profundidad cómo conseguirla o las principales razones para hacerlo.
  • Aprender a distinguir el problema de las soluciones (Carlos Ble) [Agile, Engineering Culture, Product, Lean Software Development] [Duration: 00:41] (⭐⭐⭐⭐⭐) En esta sesión Carlos se centra en cómo saber separar el "Qué" del "Cómo" para ser eficaces y económicos resolviendo problemas, sin que la calidad de las soluciones se vea afectada. Una muy buena charla para cualquiera que se interese por el desarrollo de software lean (agile real).
  • CDD (Desarrollo dirigido por consenso) (Xavi Gost) [Agile, Engineering Culture, Lean Software Development] [Duration: 00:58] (⭐⭐⭐⭐⭐) En esta charla, Xavi introduce el concepto de 'Desarrollo Dirigido por Consenso' junto con el 'Sistema de Concerns'. Esta metodología resulta ser una práctica sumamente efectiva para optimizar el flujo de trabajo en equipos, manteniendo al mismo tiempo bajo control la deuda técnica y abordando eficientemente los menores problemas de diseño identificados por el equipo. Tras observar la implementación de esta metodología en varios equipos, puedo afirmar que su utilidad es significativa.
  • La economía del refactoring. Una visión desde la gestión económica del proyecto. (Xavi Gost) [Inspirational, Technical Practices, XP] [Duration: 00:51] Inspiracional charla sobre las motivaciones y la estrategia para refactorizar de forma continua.
  • ¿Que es un programador y cual es su papel en la sociedad? (Xavi Gost) [Inspirational, ethics, professionalism] [Duration: 00:34] Buena reflexión sobre el papel del desarrollador en la sociedad y la necesidad de una etica profesional fuerte.
  • Unexpected inhabitants: algorithms, ethics, and emergency (Aitor García Rey) [Inspirational, ethics, professionalism] [Duration: 00:21] Interesante charla para comprender el contexto del cambio que estamos experimentando debido a la entrada masiva de software (y ahora de la Inteligencia Artificial) en todos los aspectos de nuestra sociedad. Invita a la reflexión.
  • Case Study: tools and strategies for tackling legacy practices (Alejandro Scandroli) [Engineering Culture, Technical leadership] [Duration: 00:48] Ejemplo práctico del uso de los Wardley Maps y algunos conceptos de DDD (strategic design) para proponer una estrategia para el equipo de Ingenieria.
  • Connectsai 2020: Cómo entregar más por menos - Marta Manso (Marta Manso) [Lean Product Management, Product, Product Discovery, Product Engineer] [Duration: 00:57] (⭐⭐⭐⭐⭐) Inspiradora charla de Marta sobre como trabajar en un equipo enfocado a dessarrollo de producto y que entiende la tecnologia como un medio. Gran cantidad de ideas y detalles interesantes.
  • Muda, Mura, Muri: mitos y prácticas aplicando Lean Software Development (Abraham Vallez) [Agile, Lean Software Development, XP] [Duration: 00:55] (⭐⭐⭐⭐⭐) Excelente charla que se fundamenta en experiencias prácticas acerca de cómo colaborar eficazmente en equipo, siguiendo los principios del desarrollo de software Lean y de Programación Extrema (XP). Constituye un recurso valioso para recomendar o compartir con equipos que buscan optimizar sus metodologías de trabajo.
  • Product minded software crafter (Cansu Karayel, Gemma Cortel) [Lean Product Management, Lean Software Development, Small Safe Steps (3s)] [Duration: 00:38] (⭐⭐⭐⭐⭐) Ejemplo real de como un equipo de desarrollo de producto en el que todo el mundo entiende el software como un medio puede tener un gran impacto.
  • Tips & tricks para llegar a ser un equipo de alto rendimiento (Iván Badia) [Agile, Engineering Culture, Lean Software Development] [Duration: 00:53] (⭐⭐⭐⭐⭐) Iván da las claves para tener una cultura de ingenieria sana en el que los equipos tienen una aproximación lean y con buenas prácticas para el desarrollo de producto. Muy alineado con las ideas descritas en la charlas.

Relacionado:

Monday, January 22, 2024

Good talks/podcasts (Jan 2024 II)

 

These are the best podcasts/talks I've seen/listened to recently:
  • Rockstar Developers Are THE WORST Developers (Dave Farley) [Engineering Career, Engineering Culture] [Duration: 00:17] Dave explains clearly why what the industry often calls a RockStar developer is by no means a good developer, and why we should change that definition to focus on teams and disciplined developers who work in teams rather than individually. My notes on the topic: https://www.eferro.net/2024/01/be-humble-no-rockstars-allowed.html
  • Polly Want a Message (Sandi Metz) [OOP] [Duration: 00:41] A good talk by Sandi about how to create and evolve applications with good OO design. Like all of Sandi's talks, it is very worthwhile.
  • DDD Europe 2023. A Daily Practice of Empirical Software Design (Kent Beck) [Small Safe Steps (3s), Software Design, XP] [Duration: 00:59] Interesting reflection on the economics of software design and the principles that affect it. This talk describes some of the ideas that Kent elaborates on in detail in his new book 'Tidy first?'
  • GeePaw Hill on Incremental Software Delivery (GeePaw Hill) [Small Safe Steps (3s), Software Design, XP] [Duration: 01:18] (⭐⭐⭐⭐⭐) Pure wisdom on why working in small, safe steps is the most efficient way to work in software product development when we have environments of high uncertainty (which is almost always).
  • “Industry Changing Book” | Jez Humble & Dave Reflect On Continuous Delivery (Jez Humble, Dave Farley) [Continuous Delivery] [Duration: 01:06] This is an interesting talk by the two authors of the book 'Continuous Delivery' about the impact the book has had on the industry.
Reminder: All of these talks are interesting, even just listening to them.

Related:

Sunday, January 21, 2024

Best talks that I recommended in 2023

 As some of you know, I maintain a database of the talks and podcasts that I watch or listen to. I usually save a description, the topics discussed, and a rating. I often use this database to make recommendations or to search for ideas and content.


This is the list of all the talks or podcasts that I recommended during this past year (2023) and to which I assigned a rating of 5/5:

  • "Simple Made Easy" (12-minute redux) by Rich Hickey (2011) (Rich Hickey) [Architecture, Inspirational, Scalability, Software Design] [Duration: 0:12] This is a 12-minute redux of the 1-hour talk by Rich Hickey, for really impatient people. Original: https://www.youtube.com/watch?v=SxdOUGdseq4
  • Architecture for Flow with Wardley Mapping, DDD, and Team Topologies (Susanne Kaiser) [DDD, Engineering Culture, Technology Strategy, Wardley maps, team topologies] [Duration: 0:43] This talk illustrates the concepts, connects the dots between DDD, Wardley mapping and team topologies, and demonstrates how these techniques help to evolve a fictitious legacy system for a fast flow of change.
  • Master Class with Marty Cagan (Marty Cagan) [Inspirational, Product, Product Discovery, Product Leadership, Product Team, leadership] [Duration: 1:21] A great presentation on skilled product teams and leading product organizations. The questions at the end are also very interesting.
  • Artificial Intelligence seen from the software development lifecycle perspective (Nerea Luis) [AI, MLOps] [Duration: 0:54] Great introduction to the differences between traditional software development and the development cycle with AI models. Nerea introduces concepts such as Continuous training, model deployment, MLOps, and collaboration between data scientists and software engineers. Highly recommended for software engineers looking to delve into these topics and collaborate more closely on AI-based feature development.
  • CONSTANT Changes To User Requirements Drive Me CRAZY (Dave Farley) [Agile, Continuous Delivery, Inspirational, Lean Product Management, Lean Software Development] [Duration: 0:13] This presentation by Dave Farley shows that software development is not just about translating perfect requirements into code, but rather a process of discovery and exploration. It acknowledges that the nature of the problems being solved has changed and that it is impossible to have all the answers. It emphasizes that successful software products must be able to adapt and evolve over time, and that the key to success is embracing change and making it easy, safe, and low-cost.
  • Systems Thinking for Developers (Jessica Kerr) [Inspirational, Mental models] [Duration: 0:55] Great explanation of how system thinking arises and its basic concepts. System thinking is a fundamental tool to work with/in complex systems such as software systems.
  • Simon Sinek Performance vs Trust (Simon Sinek) [Company Culture, Culture, Inspirational] [Duration: 0:02] Great description of the impact of trust on team members and leaders.
  • Improving Software Flow (Randy Shoup) [Devops, Flow, Inspirational, Lean, Lean Software Development, Technical leadership, leadership] [Duration: 0:50] In this session, Randy explains how they improve the overall flow and the engineering capacity following the ideas in the Unicorn Project (Locality and Simplicity, Focus, Flow, and Joy, Improvement of Daily Work, Psychological Safety, and Customer Focus). It is an excellent talk about generating/improving an engineering culture following lean principles.
  • Many More Much Smaller Steps with GeePaw Hill (GeePaw Hill, Chris Lucian, Austin Chadwick) [Evolutionary Design, Lean Software Development, Software Design, Technical Practices, XP] [Duration: 0:39] Good conversation about GeePaw Hill's software development approach based on taking continuous small safe steps (Many More Much Smaller Steps).
  • Tips For Technical Startup Founders | Startup School (Diana Hu) [Inspirational, Lean Software Development, Lean Startup, startup] [Duration: 0:28] Diana Hu shares her advice for being a technical founder at the earliest stages - including topics like how to ship an MVP fast, how to deal with technology choices and technical debt, and how and when to hire an engineering team.
  • Oredev 2011: Sleeping with the enemy (Gojko Adzic) [Engineering Culture, testing] [Duration: 0:52] Gojko Adzic describes why independent testing should be a thing of the past. He explains how testers engaging with developers and business users create opportunities to accomplish things they cannot do otherwise.


It should be noted that I recommended them last year, but that does not imply that the talk or podcast is from 2023, in fact I think most of them are much older.


I hope you find these recommendations helpful.

Sunday, January 14, 2024

Good talks/podcasts (Jan 2024 I)

 

These are the best podcasts/talks I've seen/listened to recently:
  • Big Transitions in Small Steps (Kent Beck) [Agile, Software Design, Technical Practices] [Duration: 0:59:00] (⭐⭐⭐⭐⭐) Very deep ideas about how to make any kind of huge technical change using small and incremental changes. This part of the core of agile... Vertical slicing to make changes in small (low risk) steps.
  • Laloux Culture Model and Agile (AgileForAll) [Agile, Company Culture, Culture, Inspirational, Lean] [Duration: 0:09:00] (⭐⭐⭐⭐⭐) An overview of Frederic Laloux's Reinventing Organizations and how it relates to Lean and Agile Adoption.
  • Compliance standards should be modern development practices (Charity Majors) [Compliance, Engineering Culture, Security] [Duration: 0:37:00] Great talk in which Charity explains how to maintain good engineering practices in regulated environments while meeting the corresponding compliance requirements. The talk doesn't have a high level of detail, but provides ideas for a general approach.
  • Paul Akers - How to apply lean thinking to your business for success (Paul Akers) [Lean, Lean Manufacturing] [Duration: 0:57:00] (⭐⭐⭐⭐⭐) Very interesting conversation with Paul Akers who speaks from experience on how to apply lean thinking and continuous improvement.
  • A Young Lady's Illustrated Primer to Technical Decision-Making (Charity Majors) [Engineering Culture, Technical leadership] [Duration: 0:41:00] (⭐⭐⭐⭐⭐) Fun and interesting talk about the context and process for making technical decisions. Very good ideas. The talk is a few years old, but the ideas are still very valid. Charity talks about how to decide to introduce new technologies, the cost of maintaining them, the importance of migrations, failure modes, etc.
  • Solomon Hykes Discusses Dagger, DevOps, and Docker (Solomon Hykes) [Continuous Delivery, Developer Productivity, Devex, Operations] [Duration: 0:43:00] Interesting podcast about the current problems of CI/CD pipelines and how they aim to solve them from Dagger. There are also interesting opinions from the perspective of creating technical products geared towards developers and about the development experience.
Reminder: All of these talks are interesting, even just listening to them.

Related:

Saturday, January 06, 2024

Be humble, no Rockstars allowed

Continuous delivery is based on the hypothesis that when facing uncertainty and complex problems (see Cynefin), the appropriate strategy is to assume that we do not know the solution and must continuously learn about the problem and the best possible solution. Additionally, continuous delivery forces us to put in place means to manage errors, which we are sure to make with minimal impact.

If we assume that we know the solution or the problem is sufficiently simple (or just complicated in Cynefin terms), continuous delivery and learning are not the most efficient strategies. In these cases, a direct approach is better, made by some team that has already done it before. However, do not expect to learn anything or improve anything. On the other hand, if it has been done before, doing it again would simply be a waste that we should try to avoid.

"The only way it's all going to go according to plan is if you don't learn anything." - Kent Beck

My experience and context

In my case:

  • I assume that what I come up with is not the best solution.
  • I assume that I have (we have many faults) in developing (I can't even do the 'hello world' right the first time).
  • I assume that we still have a lot to learn about everything (domain, business, tools, needs, etc).

And I have never been in complicated or simple contexts where a better solution had already been made. And if I came across one, I would try by all means not to build a new solution (to avoid waste).

In this context, the discipline of lean product development, with continuous delivery (focused on continuous flow), continuous learning, and sustainable quality, is the best option I know.


For Self-Sufficient Experts

If you consider yourself an expert in everything, who rarely makes mistakes and feels like a 'rockstar' in their field, you might think that you don't need continuous delivery. I suspect that humility and recognizing that EVERYONE (including yourself) makes mistakes are lacking in this case. Maybe I am wrong, and you are some mythological being who does not make mistakes and does not need to learn continuously. If that is the case, my apologies… :)


However, I won’t be able to work with you since I do make mistakes and need to be in a team that uses techniques that allow us to develop products despite errors without living in constant stress.


In summary

I believe that the general trick of this profession is to do teamwork in the best way we know how, with the best techniques we know, and still assume that we are going to make mistakes, that we have to keep learning, that we need to improve, and that we need a quality that allows us to be sustainable. The discipline of continuous delivery (CD, TBD, TDD, etc.) provides me with all of that...

Please...

  • Be a great team player. Collaborate and get involved.
  • Create a safe learning environment for your team.
  • Program as best you can but assume that you will fail, so create an environment where failing is manageable and has a low impact on customers.
  • Make the best architectural decisions you can, but assume that you will have to continuously improve it (evolve it).
  • Seek continuous delivery (as a goal that helps us generate the right discipline and a safe work environment).
  • Be humble and accept failure, uncertainty, and lack of knowledge.



I don't want to work with RockStars, nor with x10 developers… I want to work in x10 teams and environments, where learning is constant, questioning is accepted, errors are accepted (since they are low cost) and improvement is continuous.

Remember:

We need professionals, not heroes.

“I’m Not a Great Programmer, I’m Just a Good Programmer With Great Habits.” — Kent Beck