¿Por qué el costo de mantenimiento del software es tan alto?

Tan alto … en comparación con qué?

No hay nada en el mundo que se parezca remotamente al software, entonces, ¿sobre qué base de comparación estás diciendo esto?

Considere algo comparablemente caro como una gran pieza de software … digamos, un avión de pasajeros … que pasan por revisiones de diseño a lo largo de toda su vida, además de desgastarse y romperse.

Si considera un Boeing 747–800 que cuesta $ 360 millones. El mantenimiento le cuesta alrededor de $ 35 por cada hora volada … la mayoría de las aeronaves vuelan entre 5000 y 6000 horas al año … así que entre $ 175,000 y $ 210,000 por año. Si incluye el desgaste de los neumáticos y los costos de reemplazo, puede duplicar eso.

Eso es suficiente para pagar por dos o tres ingenieros de software a tiempo completo … que es aproximadamente del tamaño del equipo que necesitarías para mantener una pieza moderadamente grande de software de mediana edad que originalmente costaba cientos de millones.

Sin embargo, eso ignora el diseño y las revisiones de seguridad que Boeing hace a sus aeronaves de manera continua … para una comparación justa, esa cifra también debería incluirse.

Pero las comparaciones como esta son un poco tontas.

No hay nada con lo que comparar los costos de mantenimiento del software … entonces, ¿cómo puede POSIBLEMENTE decir que es “alto”?

Según la respuesta proporcionada en los comentarios …

Cuando observa el ciclo de vida total del software, el desarrollo del software es solo una pequeña parte:

  • El desarrollo del software puede llevar, por ejemplo, un año o 6 meses, el software probablemente se utilizará durante 5 a 10 años y algunos sistemas heredados se utilizarán durante 20 años o incluso más.
  • El desarrollo de software a menudo se centra en desarrollar la funcionalidad requerida para el negocio o el usuario final. Esto significa que el mantenimiento no se tiene en cuenta de la forma en que podría / debería. El resultado es que es difícil analizar los errores que ocurren y puede ser difícil corregirlos en el código.
  • Responder preguntas de usuarios finales y registrar solicitudes, incidentes y problemas a menudo se considera parte de los costos de mantenimiento del software. Cuando tiene una gran base de usuarios, puede darse el caso de que varias personas tengan que responder llamadas telefónicas y correos electrónicos sobre el software
  • Parte de los costos de mantenimiento del software también es la plataforma en la que se ejecuta. Cuando el software se está desarrollando, esto suele estar en la computadora portátil o PC del desarrollador. Habrá entornos de prueba, pero las dimensiones (capacidad de la CPU, almacenamiento, número de núcleos, etc.) serán significativamente menores que en el entorno de producción. Y esto es durante el ciclo de vida total del software en producción. También es probable que se necesiten varios servidores de aplicaciones y servidores de bases de datos.
    Esta es una de las razones por las que la computación en la nube está ganando popularidad, cuando ejecuta su software en la nube, usted (como organización) no necesita sus propios servidores de aplicaciones y servidores de bases de datos y puede escalar de manera más fácil y flexible con respecto a la capacidad de CPU y memoria.