El término es derivado de analogías al trabajo del metal.
Debemos separar entre las distintas etapas que hacen a la vida de una aplicación , se separan en desarrollo, prueba, producción y mantenimiento.
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.
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.