4.5 MANTENIMIENTO DE SISTEMAS El mantenimiento es un aspecto más del desarrollo de sistemas de información. Sin embargo, efectuar cambios y ajustes no necesariamente indica la corrección de errores o la ocurrencia de problemas. Entre los cambios más frecuentes solicitados por los usuarios finales se encuentra el agregado de información al formato de un reporte (listado). Se pueden revisar los requerimientos del sistema como consecuencia de su uso o del cambio de las necesidades de operación. Quizás sea necesario corregir algún descuido que ocurrió durante el proceso de desarrollo. A menudo, surge la necesidad de capturar más datos y almacenarlos en la base de datos, o quizás sea necesario añadir características para la detección de errores con la finalidad de evitar que los usuarios del sistema emprendan por equivocación una acción no deseada. También existe el agregado de nuevas funciones, como mejoras en la seguridad. Todas estas situaciones son realidades del mantenimiento de aplicaciones. Cuando se presentan, sin embargo, son un buen indicador de que el sistema se está utilizando, de que tiene una función útil y de que los usuarios no lo están “archivando”. Hay entonces 3 TIPOS DE MANTENIMIENTO: - CORRECTIVO: es cuando se debe corregir errores de funcionamiento del sistema , “pulgas”, o cuando aparecen situaciones que no se tuvieron en cuenta o se mal interpretaron en el relevamiento. Ejemplos: totaliza mal un listado, no filtra un informe por zona, no redondea un total. - ADAPTATIVO: cuando el objetivo es adaptar el sistema o partes de él a nuevas situaciones que generan nuevos requerimientos, por la dinámica evolución de las empresas y los negocios. Ejemplos: se comienza a consignar mercadería, se abre un punto de venta, se vende en el interior, se aplica un nuevo impuesto, se define una nueva política de descuentos. - PERFECTIVO: cuando el sistema está estable y es utilizado por la empresa en su plenitud, pueden surgir requerimientos de perfeccionamiento en algunas de sus funciones, mejorar la performance, reducir los procesos o aumentar su complejidad por razones de seguridad, etc. Ejemplos: envío de respaldos de punto de venta a casa central por mail, agregar seguridad por opciones de menú. El mantenimiento de sistemas siempre tiene un costo, sea el desarrollo interno (empresas con centro de cómputos) o externo (desarrollado por una empresa proveedora). Este costo juega para ambos lados, ya que si el sistema no está bien diseñado, la empresa proveedora puede perder dinero al invertir tiempos no previstos en correcciones importantes, incluso estructurales, que lleven a rediseñar el sistema. PASOS PARA REDUCIR TIEMPOS DE MANTENIMIENTO: Tiempos que cuestan a la empresa y al desarrollista. - Relevamiento correcto de los requerimientos del usuario - Participación de usuarios calificados - Definición clara de objetivos - Utilización de todas las herramientas de análisis disponibles (DFD,MER) - Documentación apropiada del sistema - Pruebas en la etapa de testeo TERMINOS DEL MANTENIMIENTO Una vez que el sistema ha sido entregado, instalado y dictados los cursos de operación, existe un período de garantía durante el cual el proveedor es responsable del mantenimiento. Usualmente dicho período es de 90 días, pasados los cuales la empresa proveedora del software presenta un contrato de mantenimiento. Al formular dicho contrato los términos son tan importantes como el costo. Se fija el tipo de servicio, días que cubre, horarios normales y extendidos, feriados, etc., así como el tipo y tiempo de respuesta (telefónica, en casa del cliente, vía comunicaciones, etc.) dentro de las 24 o 48 horas de efectuado el reclamo, o dentro del día (respuesta inmediata). Asimismo, se fija el alcance de tipo de modificaciones o correcciones que se incluyen dentro del mantenimiento. Usualmente, un nuevo sistema o módulo a desarrollar no está cubierto, se cotiza como corresponde a un sistema nuevo, y por lo general se acuerda que los clientes en régimen de mantenimiento, gozan de precios diferenciales de quienes no participan de dicho régimen. También están excluidas las modificaciones estructurales, que afectan la base de datos de forma muy significativa. Dichas modificaciones así como la salvaguarda de los datos históricos del cliente se cotizan aparte. El costo del mantenimiento (pago mensual, trimestral, semestral) se acuerda en el contrato así como los parámetros de ajuste de dicho costo. La empresa u organización usuaria debe tener especial cuidado en estos términos de reajuste y deben figurar en el contrato. Este tipo de protección asegura que el proveedor de software no pueda aprovecharse del usuario, que depende totalmente de dicho proveedor. La mayoría de las compañías de software tienen buena reputación, pero la práctica dicta que la protección adecuada siempre debe buscarse al contratar servicios. La experiencia generalizada es que no se hacen contratos. En el mejor de los casos, las condiciones en que se brinda el mantenimiento figuran en la cotización de la empresa desarrollista como un ítem más. Otras empresas entregan, al momento de la cotización, un documento aparte donde se fijan las condiciones y precios de mantenimiento. Si esta documentación existe (debiera existir siempre) es un elemento de consulta fundamental al momento de zanjar una situación referente al buen o mal servicio que se está brindando, qué cosas comprende y cuáles no. Pero sin duda, esta documentación no sustituye al contrato, donde se pueden fijar multas o sanciones por incumplimiento de ambas partes.