Ya sabéis que me gusta escuchar podcasts sobre ingeniería de software. Pero esta entrevista a Grady Booch en el podcast Pragmatic Engineer es absolutamente imprescindible.
Ya hemos hablado de Grady antes (al final pensaré que soy un “fanboy”) pero aquí de nuevo consigue dar importantes mensajes mezclados con mucho contexto e historia que ayuda a entender el porqué y el cómo el modelado, la arquitectura de software, los métodos de desarrollo… han ido cambiando y cuáles son los nuevos campos donde podemos marcar la diferencia (ej. habla de un UML para IA, algo en lo que también hemos empezado a trabajar vía el modelado de redes neuronales)
Vale la pena mirar la entrevista completa
o leer su transcripción, pero también os dejo aquí algunas de las frases y comentarios que a mi más me impactaron:
- El propósito de UML era el ayudar a razonar y documentar. Convertir UML en un lenguaje de programación hizo que UML se volviera mucho más complicado y contribuyó a su caída en desgracia. Mi opinión personal es que ahora intentamos generar código a partir de UML sin utilizar UML como lenguaje de programación (más siguiendo un estilo de convention over configuration). Para más opiniones de Booch sobre UML ver este otro post también.
- A pesar de todo, UML sigue vigente y se utiliza en sistemas tan complejos como el diseño del telescopio James Webb
- El rol del arquitecto ha cambiado. Ahora muchas decisiones vienen ya “predefinidas” por los frameworks que se utilizan y que vienen ya con diseños arquitectónicos aceptables para muchos sistemas habituales.
- Donde sí que la arquitectura es importante es durante las migraciones. Como él dice, las migraciones nos atormentarán hasta el día del juicio final.
- Sobre la importancia de los métodos formales, comenta que son útiles, pero solo para partes de un sistema y nunca como el motor de la arquitectura en sí misma. Vaya que en muy pocos casos puedes realmente demostrar de una manera formal el sistema entero.
- Un UML para la IA. Grady dice que se necesita algún lenguaje que permita visualizar de forma estándar la arquitectura y la actividad de un LLM y que sirva también para describir y generalizar cualquier tipo de red neuronal.
- Ve todavía un gran futuro para los ingenieros software. Como siempre dice, la historia de la ingeniería de software es la de subir el nivel de abstracción. Ahora tenemos otras abstracciones (ej. de componentes IA si seguimos con el punto anterior) pero es un cambio de modelos y herramientas, siguen habiendo muchísimas cosas interesantes a explorar.
Últimos comentarios