El software puede deteriorarse en "rendimiento" con el tiempo y se convierte en lo que comúnmente se llama "obsoleto" a medida que corre y acumula errores; Esto generalmente no es considerado putrefacción de software, aunque puede tener algunas de las mismas consecuencias.
Un usuario puede configurar el sistema de trabajo una vez y tenerlo funcionando perfectamente durante un tiempo.
El arquitecto de información Jonas Söderström ha nombrado este concepto como Onceability (una sola vez),[1] y lo define como "la cualidad en un sistema técnico que impide a un usuario restaurar el sistema, una vez que ha fallado".
Sin embargo, mucho software requiere continuos cambios para satisfacer las nuevas exigencias y corregir errores, y la reingeniería de software cada vez que se realiza un cambio es raramente práctica.
Como una consecuencia de esto y un entorno cambiante, asunciones hechas por los diseñadores originales pueden ser invalidadas, introduciendo errores.
Hasta cierto punto, esto puede ser mitigado por las siguientes mejores prácticas actuales en cuanto a la documentación interna y nombres de variables.
Entonces él o ella lo modifica fuertemente, añadiendo nuevas características y opciones.
Debe tenerse cuidado de no cambiar el comportamiento externo del software, ya que esto podría introducir incompatibilidades y por lo tanto contribuye en sí mismo a la pudrición de software.