Publicaciones
Grady Booch sobre Arquitectura
5 de septiembre de 2020 • 2 min de lectura
Una serie de tweets de Grady Booch sobre arquitectura de software:
https://twitter.com/Grady_Booch/status/1301810358819069952
Un hilo sobre la arquitectura de sistemas intensivos en software.
Hay más en el mundo de los sistemas intensivos en software que plataformas centradas en web a escala.
Una buena arquitectura se caracteriza por abstracciones claras, una buena separación de responsabilidades, una clara distribución de responsabilidades y simplicidad. Todo lo demás son detalles.
No puedes reducir la complejidad de un sistema intensivo en software; lo mejor que puedes hacer es gestionarla.
Con el paso del tiempo, todas las arquitecturas vibrantes deben evolucionar.
El software antiguo nunca muere; debes matarlo.
Algunas arquitecturas son intencionales, algunas son accidentales, la mayoría son emergentes.
La arquitectura significativa es un proceso vivo y vibrante de deliberación, diseño y decisión.
La acumulación implacable de código durante días, meses, años e incluso décadas convierte rápidamente cada nuevo proyecto exitoso en uno heredado.
Muéstrame la organización de tu equipo y te mostraré la arquitectura de tu sistema.
Todos los sistemas intensivos en software bien estructurados están llenos de patrones.
Un arquitecto de software que no programa es como un cocinero que no come.
Enfocarse en patrones y preocupaciones transversales puede producir una arquitectura que sea más pequeña, más simple y más comprensible.
Las decisiones de diseño fomentan lo que un stakeholder particular puede hacer así como lo que limita lo que un stakeholder no puede hacer.
Al principio, la arquitectura de un sistema intensivo en software es una declaración de visión. Al final, la arquitectura de cada uno de estos sistemas es un reflejo de los miles de millones y miles de millones de decisiones de diseño pequeñas y grandes, intencionales y accidentales tomadas en el camino.
Toda arquitectura es diseño, pero no todo diseño es arquitectura.
La arquitectura representa el conjunto de decisiones de diseño significativas que dan forma y función a un sistema, donde significativo se mide por el costo del cambio.
Autor: Chuck Conway es un Ingeniero de IA con casi 30 años de experiencia en ingeniería de software. Construye sistemas de IA prácticos—canalizaciones de contenido, agentes de infraestructura y herramientas que resuelven problemas reales—y comparte lo que está aprendiendo en el camino. Conéctate con él en redes sociales: X (@chuckconway) o visítalo en YouTube y en SubStack.