El por qué del mantenimiento software (para aplicaciones a medida)

En esta empresa llevamos ya muchos años (cómo pasa el tiempo) dedicándonos al desarrollo de aplicaciones a medida para nuestros clientes.  Cuando damos un presupuesto para un desarrollo a medida lo solemos dividir en dos partes: el trabajo de creación e implantación de la aplicación, y el servicio de mantenimiento software posterior a la puesta en marcha del sistema (que no es obligario para el cliente).

En la facultad te enseñan que hay cuatro tipos de mantenimiento software:

  • Mantenimiento preventivo: El que se adelanta a los posibles problemas. Por desgracia rara vez algún cliente tiene algún tipo de inquietud en este aspecto, sólo nos acordamos de Santa Bárbara cuando truena.
  • Mantenimiento correctivo: El que subsana los errores de programación en la aplicación. Este siempre lo damos sin coste a nuestros clientes.
  • Mantenimiento adaptativo/evolutivo: El que añade nuevas funcionalidades o cambia las existentes en el programa (el más habitual).
  • Mantenimiento perfectivo: El que cambia la forma en que está programada internamente la aplicación para hacerla más rápida, moderna o cumplir con nuevos estándares (de calidad, versiones de sistema operativo o de navegador...). Casi nadie demanda este tipo de mantenimiento hasta que el programa deja de ser usable, ya lo dice la máxima informática: "cuando una aplicación funciona, no la toques".

En las grandes empresas el servicio de mantenimiento de software se da por hecho, supone un coste fijo muy bajo en relación a los costes de inactividad de la empresa  (y a la tranquilidad impagable que aporta al mando intermedio responsable del desempeño del sistema ante sus jefes) en caso de futuros problemas. Sin embargo en las empresas pequeñas y medianas, el mantenimiento de sotware es considerado en muchas ocasiones una argucia de los informáticos que quieren colar una cuota fija por no hacer nada. No podemos hablar por otros, pero si podemos justificar en qué nos basamos para ofertar mantenimiento software para las aplicaciones desarrolladas por nuestra empresa.

La principal razón de los mantenimientos de software es la de minimizar los daños en caso de desastres.

Todos entendemos que es normal pagar el seguro de una casa porque si algún día se rompe una tubería (algo que es muy improbable) tendrá que venir el fontanero, el albañil y el pintor (eso si hay suerte y no se daña ningún mueble ni electrodoméstico) y la factura nos saldrá por un pico. En cambio, ¿por qué resulta tan dificil entender que si un día el programa deja de funcionar y nuestra empresa deja de poder vender o facturar el coste económico y de imagen compensa con creces la cuota de mantenimiento software? Los sistemas software son mucho más complejos y frágiles que una tubería envuelta en cemento. Las posibles causas de error son muchas: virus, actualizaciones automáticas de sistema operativo, manipulación incorrecta por parte de operarios (accidental o malintencionada), ataques informáticos, fallos de hardware... Si la empresa que ha desarrollado la aplicación no recibe ingresos en concepto de mantenimiento, deberá buscarlos en otro sitio, lo que se traduce en realizar otros proyectos de programación para otros clientes. ¿Qué ocurre cuando llamas con urgencia a un proveedor que tiene sus recursos dedicados a otro cliente? Pues que seguramente la respuesta no será tan rápida como te gustaría porque estarás en la cola esperando que en algún hueco libre puedan echarle un vistazo a tu problema.

La vida es cambio, y los sistemas informáticos deben adaptarse de la misma forma que sus dueños para no quedar fuera de juego.

Por muy familiar y tradicional que sea un negocio el mundo cambia, y los clientes, y la legislación, y los impuestos, y los proveedores, y los mercados, y ... Para no llevar la mitad de la gestión con un sistema a medida y la otra mitad en excel, o en una libreta a lápiz, hay que acomodar los sistemas informáticos a las nuevas realidades que nos sobrevienen. En nuestro caso, a los clientes con un contrato de mantenimiento software les garantizamos importantes descuentos sobre las tarifas de desarrollo, pero sobre todo, que tendremos personal capaz de aplicar cambios al software desarrollado. Como esto último parece una obviedad lo mejor será explicarlo en profundidad.

En el mundo de la informática las tecnologías vienen y van a velocidad de vértigo. La que hoy es la técnica de programación más novedosa el año que viene será lo habitual, y dentro de dos años estará obsoleta. Esta volatilidad obliga a los informáticos a formarse continuamente, y también plantea un problema importante de recursos (técnicos y humanos).

Por un lado, las nuevas tecnologías empujan a las anteriores a un rincón. Si un programador quiere desarrollar con la última tecnología en muchos casos dejará de poder hacerlo con las anteriores, o al menos tendrá que instalar nuevas herramientas de programación en cada cortísimo ciclo tecnológico. Esto supone que en pocos años el PC de desarrollo estará hasta arriba de entornos de programación distintos, a veces incompatibles entre si, y que cambiarse a un PC nuevo (en el que lo normal es instalan únicamente las herramientas de uso cotidiano en ese momento) significa dejar de poder realizar cambios de forma sencilla en las aplicaciones más antiguas para las que ya no se cuenta con herramientas específicas.

Por otro lado, los profesionales con conocimientos en tecnologías específicas en cada momento pueden ser captados por empresas de la competencia. En este contexto, si tras el desarrollo de una aplicación con la tecnología X el cliente se desentiende del desarrollo y prefiere no pagar un mantenimiento software, la empresa de desarrollo software no tendrá necesidad de mantener en plantilla personal solvente en el manejo de esa tecnología X. Un par de años después, cuando el cliente requiera un cambio menor en su aplicación, podría no haber nadie capaz de hacerselo, y el cambio menor y rápido se podría convertir en un gran retraso y un presupuesto muy importante, cuyo montante principal podría ser el tiempo dedicado por una nueva empresa a analizar y comprender la programación original del sistema antes de atreverse a modificarlo.

Para concluir, sólo queda recalcar que a nadie le gusta pagar un seguro y no dar ningún parte, pero aún gusta mucho menos necesitarlo y no contar con él. Esas situaciones en las que algo va mal son mucho más llevaderas cuando tienes a tu lado un profesional capaz de reconducir la situación en tiempo y costes mínimos.