Fragilidad del software

Fragilidad del software es el término irónico que describe la dificultad incremental de arreglar software antiguo. El término es derivado de analogías al trabajo del metal.

Etapas

Debemos separar entre las distintas etapas que hacen a la vida de una aplicación , se separan en desarrollo, prueba, producción y mantenimiento.

Concepto

Cuando el software está en etapa de desarrollo o de prueba, es infinitamente maleable; puede ser formado completamente al gusto de sus implementadores. Pero tan pronto como un proyecto dado crece más y más (etapa de producción), y desarrolla una gran base de usuarios con mayor experiencia con el software, se vuelve menos y menos maleable. Como un metal que ha sido forjado, el software se vuelve un sistema heredado, frágil e incapaz de ser fácilmente cambiado sin fracturar el sistema completo.

Razones

A los programadores a menudo se les entrega un sistema (de software) de tamaño considerable, construido por gente que no conocen, tocado por muchas personas desde entonces, documentado mínimamente si es que lo fue. Se les dice que lo mejoren. Su tarea debería ser corregir un error, agregar una característica, o una refabricación completa. Están bajo la presión del tiempo, así que necesitan minimizar el tiempo total destinado a aprender del sistema y el tiempo gastado en mejorarlo. Cunningham, Hunt, Marick & Thomas

Costos

Está demostrado que la mayor incidencia en los costos de una aplicación está en su mantenimiento.

Comentarios

Es común para los sistemas de software volverse ligeramente frágiles dentro de, digamos, cinco años y casi inmantenibles dentro de quince años. Es muy raro que encontremos un proyecto de software tan bien diseñado que pueda sostenerse un período mayor siendo fácilmente mantenible. Más a menudo, la antigua base de código será simplemente abandonada y un sistema completamente nuevo será iniciado desde cero; el nuevo sistema puede estar libre de muchas de las cargas del sistema heredado.

Véase también