Sería lógico pensar que con la entrega de nuestra aplicación (la instalación y configuración de nuestro proyecto en los equipos del cliente) hemos terminado nuestro trabajo.
En cualquier otro sector laboral esto es así, pero el caso de la construcción de software es muy diferente.
La etapa de mantenimiento es la más larga de todo el ciclo de vida del software.
Por su naturaleza, el software es cambiante y deberá actualizarse y evolucionar con el tiempo. Deberá ir adaptándose de forma paralela a las mejoras del hardware en el mercado y afrontar situaciones nuevas que no existían cuando el software se construyó.
Además, siempre surgen errores que habrá que ir corrigiendo y nuevas versiones del producto mejores que las anteriores.
Por todo ello, se pacta con el cliente un servicio de mantenimiento de la aplicación (que también tendrá un coste temporal y económico).
El mantenimiento se define como el proceso de control, mejora y optimización del software.
Su duración es la mayor en todo el ciclo de vida del software, ya que también comprende las actualizaciones y evoluciones futuras del mismo.
Los tipos de cambios que hacen necesario el mantenimiento del software son los siguientes:
- Perfectivos: Para mejorar la funcionalidad del software.
- Evolutivos: El cliente propone mejoras para el producto. Implica nuevos requisitos.
- Adaptativos: Modificaciones, actualizaciones... para adaptarse a las nuevas tendencias del mercado, a nuevos componentes hardware, nuevas condiciones especificadas por organismos reguladores, etc.
- Correctivos: Resolver errores detectados. Sería utópico pensar que esto no vaya a suceder.