Es un error común pensar que al finalizar el desarrollo de una aplicación -con su posterior instalación y entrega- el trabajo está terminado, como si fuese un mueble que encargamos a medida. El siguiente paso a un delivery es el mantenimiento del software.
El mantenimiento de software es también una de las fases en el Ciclo de Vida de Desarrollo de Sistemas. La fase viene después del despliegue (implementación) en el campo e involucra cambios al software en orden de corregir defectos y dependencias encontradas durante su uso, tanto como la adición de nueva funcionalidad para mejorar la usabilidad y aplicabilidad del sistema.
El mantenimiento del sistema se realiza durante un tiempo determinado tanto para solventar eventuales errores, problemas en circunstancias no previstas o casos excepcionales, como también ir añadiendo nuevas funcionalidades que puedan surgir de necesidades del cliente dentro de la lógica de su negocio. Además, en los tiempos que corren, donde la pandemia ha expuesto la necesidad de las empresas a mantenerse online y actualizados en tecnologías para poder seguir operando, es fundamental que nuestro software se pueda adaptar a estos cambios generando el menor costo posible.
El tipo de mantenimiento a implementar estará basado en función de la actividad y aquello que se pretenda conseguir con la acción. Dependiendo del desarrollo de software a medida, se utilizarán más de un mantenimiento con el fin de optimizar al proyecto.
Tiene por objetivo localizar y eliminar los posibles defectos del sistema, que son aquellos con el potencial de provocar una falla. Estas pueden ser de procesamiento, rendimiento (por ejemplo, uso ineficiente de los recursos de hardware), programación (inconsistencias en la ejecución), seguridad o estabilidad, entre otras.
Consiste en la modificación de un programa debido a cambios en el entorno (hardware o software) en el que se ejecuta. Este tipo de mantenimiento puede ser desde un pequeño retoque, hasta una reescritura de todo el código para que se adapte al nuevo entorno.
Consiste en agregar mejoras o nuevas funcionalidades que no fueron contempladas al momento del desarrollo (rendimiento, flexibilidad, usabilidad). Esto suele ocurrir a medida que el usuario empieza a utilizar la herramienta y se encuentra con nuevas necesidades.
Cuyo propósito es evitar que ocurran problemas al modificar los productos de software. Se trata de anticiparse a eventuales inconvenientes, identificar los riesgos futuros y problemas aún desconocidos y llevar a cabo medidas para que estos no se produzcan.
Es importante saber esto a la hora de contratar un mantenimiento, ya que nos permite contemplar todas las variables que pueden impactar en un sistema y exigir al prestador que abarque cada una de ellas en mayor o menor medida.
Por lo general se trabaja enfocando esfuerzos en mantenimientos perfectivos, donde se busca que el sistema crezca y mejore en funcionalidad y rendimiento. Luego, en mantenimientos adaptativos, que buscan que el sistema no pierda vigencia frente al gran auge de nuevas tecnologías, tanto en hardware como software. Le sigue el mantenimiento correctivo, que siempre lo vamos a encontrar ya que sabemos que el desarrollo no es ajeno a los errores. Por último, el mantenimiento preventivo, ya que no es una práctica recurrente resolver problemas del futuro.
Un proyecto de software suele incluir todos estos tipos de mantenimiento, variando los porcentajes según las necesidades y las características del sistema. Un constante y permanente proceso de mantenimiento puede garantizar su funcionamiento por muchos años, revalorizando la inversión inicial hecha para el desarrollo, sin mencionar que una migración total hacia una nueva aplicación es mucho más costosa en tiempo y dinero.