¿Es más difícil construir un edificio o desarrollar / mantener un software a gran escala?

Creo que sería muy interesante escuchar a alguien con experiencia en ambos lados, pero puedo hablar con experiencia desde la perspectiva del software.

El software a gran escala tiene su primer desafío de tener una arquitectura detallada y bien diseñada. Considere el motor de búsqueda de Google utilizado en todas partes. Tiene una interfaz engañosamente simple que oculta una enorme infraestructura detrás de su búsqueda:

  1. Latencia : ¿cómo responde Google rápidamente a más de un millón de consultas abiertas en milisegundos?
  2. Sistemas distribuidos: ¿cómo se distribuyen estas consultas en varios centros de datos en todo el mundo? ¿Cómo se comparte la información entre estos diferentes centros de datos?
  3. Seguridad : ¿cuáles son las preocupaciones de seguridad? ¿Cómo afectan las políticas y las normas sociales el acceso a la información? Más allá de la seguridad de la red con TCP (Internet es una enorme culminación del ingenio arquitectónico), ¿cómo diseñaría la tubería de búsqueda para mantener las entradas confidenciales de los atacantes maliciosos?
  4. Algoritmos : ¿cómo se puede optimizar el rango de página? ¿Cómo ejecutar rápidamente algoritmos de aprendizaje automático y aprovechar estructuras de datos eficientes para autocompletar y sugerencias?

Y estas son todas las consideraciones antes de que la implementación comience incluso para el software. En cuanto a los edificios, un arquitecto debe elaborar minuciosamente todos los detalles finos relacionados con la asignación geométrica del espacio, los servicios públicos, los diseños ecológicos, las precauciones de seguridad en caso de desastres naturales como terremotos, y mucho más. Pero al final del día, la arquitectura de los edificios se trata de averiguar dónde van los objetos físicos con respecto a otras cosas. El software, diría, tiene su propia complejidad arquitectónica abstracta que se superpone e intrínsecamente ligada a su arquitectura de hardware físico.

Es difícil de construir …

Es más difícil de construir sostenible y sostenible.

Soy ingeniero de software y mi hermano, arquitecto … Les aseguro que cada uno tiene sus desafíos específicos en diferentes etapas.

Lo que eventualmente puede marcar la diferencia es la pasión que tiene y la cantidad que aplica en su trabajo. La responsabilidad, las buenas prácticas y las habilidades son los factores clave.