La dimensión económica del trabajo arquitectónico en software

Fuentes: The essence of architectural work - Part 3

En la tercera entrega de esta serie sobre la esencia del trabajo arquitectónico, el autor —tras repasar en la entrada anterior varios antipatrones— aborda el propósito económico de la arquitectura de software. Identifica tres facetas complementarias del propósito de la arquitectura: económica, cognitiva y humana, ninguna de las cuales invalida a las demás, sino que enriquecen la perspectiva. La entrada se centra en la primera.

El autor define la arquitectura como un problema de optimización a lo largo del tiempo bajo restricciones cambiantes, y explica que los atributos de calidad —las llamadas "ilities", como escalabilidad, mantenibilidad o seguridad— se dividen en dos grandes grupos: los que afectan al sistema en tiempo de desarrollo (entendibilidad, evolutividad, portabilidad) y los que influyen en su comportamiento en tiempo de ejecución (disponibilidad, rendimiento, seguridad operativa). Con frecuencia, los debates arquitectónicos se estancan porque los interlocutores mezclan ambos planos.

El núcleo del artículo analiza los atributos de calidad en tiempo de desarrollo, ligados al coste del cambio. El autor ilustra con un experimento mental: para elegir entre dos opciones arquitectónicas A y B según su impacto en los cambios futuros, sería necesario predecir todas las modificaciones que sufrirá el software hasta su fin de vida y calcular su coste en dos líneas temporales paralelas. Como eso es inviable —no se puede viajar en el tiempo ni bifurcar la realidad—, las decisiones sobre estos atributos solo pueden evaluarse a posteriori, lo que convierte su medición efectiva en profundamente difícil.