Service as Software

Arquitectura para crecer: decisiones que importan

Fernando Blanco DosilFernando Blanco Dosil

La arquitectura es el conjunto de decisiones difíciles de cambiar más adelante. Por eso importa tanto: acertar en unas pocas decisiones tempranas te da años de crecimiento cómodo, y errar en ellas te condena a pelear contra tu propio sistema cada vez que quieras avanzar. La buena noticia es que no son tantas las que de verdad pesan.

El otro extremo también es peligroso. Hay quien sobrediseña desde el día uno preparándose para una escala que quizá nunca llegue, y se ahoga en complejidad antes de tener clientes. Una buena arquitectura para crecer no es la más sofisticada, sino la que resuelve lo de hoy sin cerrarte las puertas de mañana.

Decide pronto lo caro de cambiar

Algunas decisiones son baratas de revertir y otras te marcan durante años. El modelo de datos, los límites entre las grandes partes del sistema y cómo separas lo que cambia rápido de lo que cambia despacio entran en la segunda categoría. En estas merece la pena pensar bien desde el principio, porque rehacerlas más tarde es costosísimo.

En cambio, qué framework concreto usas o cómo se ve una pantalla son decisiones reversibles. No las trates con la misma solemnidad. Reserva el esfuerzo de diseño para lo que de verdad te ataría si te equivocas.

  • Modelo de datos: el más caro de cambiar; piénsalo bien desde el inicio.
  • Límites entre módulos: definen qué puedes evolucionar de forma aislada.
  • Separación entre lo estable y lo que cambia a menudo.
  • Puntos de integración con sistemas externos y cómo los aislas.

Simple primero, complejo cuando duela

La mejor arquitectura para una empresa que empieza suele ser la más simple que resuelve el problema actual. La complejidad solo se justifica cuando un problema real la pide, no por si acaso. Cada capa de sofisticación que añades es código que mantener, gente que formar y puntos donde algo puede fallar. La simplicidad bien planteada es una ventaja, no una carencia.

Lo importante es que esa simplicidad no cierre puertas. Un sistema simple pero con límites claros se puede hacer crecer; un sistema simple y enmarañado, no. La diferencia está en el orden interno, no en la cantidad de piezas.

Diseña para poder cambiar

Como no puedes prever todo, la mejor defensa es diseñar para el cambio: límites claros entre partes, dependencias controladas y la posibilidad de sustituir una pieza sin tocar las demás. Una arquitectura que se deja modificar envejece mucho mejor que una optimizada para un futuro concreto que probablemente no llegará tal como lo imaginaste.

Más sobre service as software
Fernando Blanco Dosil

Escrito por

Fernando Blanco Dosil

Product Engineer al que le mueve convertir ideas en producto. Escribe sobre desarrollo, datos y cómo llevar proyectos de la chispa a la realidad.

Ver perfil →