Pensar porque pagar o no un mantenimiento software de una herramienta comercial es una cuestión del valor que damos al uso que nos da.
El mantenimiento software se entiende, como el proceso de mejora y optimización del software una vez implantado y ejecutado en un entorno de producción real. Ese proceso puede corresponder desde cambios funcionales y operativos, a otros de rendimiento, usabilidad, correctivos, etc.
Mantenimiento software: perfectivo y evolutivo
Se trata de la incorporación de nuevas prestaciones y funcionalidades al software, así como en mejorar el rendimiento de las existentes. Igualmente, de readaptar nuevos procedimientos de trabajo que consigan hacer más operativo el sistema. Esas nuevas prestaciones, en ocasiones, corresponden a nuevos desarrollos muy importantes y cuyo coste es, por tanto, muy elevado.
Mantenimiento software: adaptativo
Quizá el más temido por el propio desarrollador del software porque puede escapar de su control y conocimientos. Corresponde a los cambios que hay que realizar derivados de los cambios en los sistemas operativos, en el hardware, en la arquitectura del sistema informático, etc. Incluso por los cambios relacionados con la propias tendencias del mercado, véase por ejemplo el cambio de un entorno cliente-servidor a un entorno web del software. Aunque suele corresponder a un porcentaje bajo en comparación con el resto de mantenimientos, ante ciertos cambios puede ocasionar una reescritura del código por completo o procesos de migración extremadamente manuales que ocasionan costes a veces inasumibles por el fabricante del software. No será el primer caso de productos punteros que llegado el momento mueren por no poder hacer frente a la inversión que supone su migración a las nuevas tecnologías o tendencias del mercado.
Mantenimiento software: correctivo
Trata de corregir los fallos y defectos de los programas, así como de los efectos derivados de éstos. En ocasiones el defecto en sí es muy leve, y por tanto su corrección fácil y rápida, pero las consecuencias derivadas de éste requiere de la reconstrucción de la integridad de los datos, lo cual se magnifica si afecta a varios o todos los clientes.
Hace unas semanas, y con motivo del inicio del nuevo año 2013, detectamos un bug en el módulo de autenticación de nuestro software contable que afectaba a una línea de código, además, en una línea que afectaba a la definición de una variable sin importancia alguna. El bug lo detectamos el martes 1-ene-2013 a primera hora de la mañana (para ser preciso, a las 7h30 A.M.), un error que en ningún cambio de período contable se había producido, pero su efecto era demoledor: no podía acceder ningún usuario de ninguna empresa cliente al programa. Si bien es cierto que el error quedó delimitado en media hora y corregido en quince minutos más, ya podéis imaginar el esfuerzo para ofrecer la solución a todos los clientes durante el mismo día 1-ene.
Mantenimiento software: preventivo
Todas las acciones orientadas a establecer controles que eviten los errores de los usuarios o que éstos se “cuelen por puertas traseras” de forma inconsciente o consciente. Se trataría casi de un mantenimiento restrictivo, donde al usuario se le guía en todo momento en lo que puede y no puede hacer, no dejando margen a acciones no contempladas por el sistema. A mi modo de ver, este es un mantenimiento que tratado adecuadamente y con el esfuerzo suficiente, puede evitar mucho mantenimiento correctivo futuro.
Creo que todo ello justifica con creces la necesidad de que una empresa que adquiere un producto de tipo ERP, herramienta comercial, CRM, BI,etc, debe entender de la necesidad de un respaldo y soporte de su herramienta que le permita una continuidad y evolución en el tiempo, no solamente en el terreno de los errores, sino en el ámbito de la mejora continua del producto.