Mantener, modernizar o reemplazar un sistema de software

Mantener, modernizar o reemplazar un sistema es un dilema que aqueja a muchas empresas hoy en día.

Sobre todo a los directores o gerentes de las áreas de tecnología, pues ellos toman la decisión y asumen las consecuencias.

Para una situación de este tipo te recomendamos revises el siguiente Curso para la gestión de proyectos en TICS con un contenido muy provechoso y seguramente más a fondo con una propuesta de solución que te llevará después a la Certificación PMP, que es la certificación en gestión de proyectos más valiosa a nivel internacional.

Desde el momento que un sistema es liberado comienza su carrera contra el tiempo, al paso que la tecnología avanza este estará más próximo a su obsolescencia.

Tomar la mejor decisión dependerá de los criterios que utilicemos y sobre todo aquellos que al final contarán más para obtener los mejores beneficios.

Estos beneficios se traducirán en ahorro de costos, reducir problemas en la operación, una mejor atención a usuarios y al cliente.

Empecemos por identificar primero, cuáles son las situaciones que dan origen a este dilema desde el punto de vista de negocio.

Si sospechas que tu sistema de software puede estar en riesgo por una mala calidad. Te invitamos a que bajes el siguiente test de evaluación.

Qué origina el mantener, modernizar o reemplazar un sistema

Los escenarios típicos incluyen:

  • Se requieren pequeños ajustes sobre las funcionalidades actuales que están operando
  • El negocio demanda nuevas características y funcionalidades para el sistema tan rápido como sea posible
  • Se necesita que el sistema soporte la carga que en el negocio requiere, dado el crecimiento acelerado que ha tenido
  • Es necesario reducir los costos de mantenimiento y operación tan rápido como sea posible
  • Se requiere actualizar el sistema a las nuevas versiones del ambiente de desarrollo, sistema operativo o motor de base de datos
  • Hay usuarios que requieren poder acceder al sistema desde nuevas plataformas o dispositivos
  • El sistema no cumple con normativas o reglamentaciones legales o de la compañía
  • Una parte o todo el sistema es obsoleto, construido desde más de 10 años no cumple con las necesidades que demanda hoy la organización
  • Los fabricantes de las plataformas de desarrollo o infraestructura han descontinuado el soporte que ofrecían sobre dichos productos
  • Es difícil encontrar desarrolladores o ingenieros que puedan mantener o dar soporte al sistema

El siguiente diagrama considera las tres etapas en las que podemos encontrar la aparición de cualquiera de estos puntos.

Gráfica para Mantener, modernizar o reemplazar un sistema

 

De presentarse alguna de estas situaciones, establecemos a continuación algunos criterios que nos permitirán definir qué alternativa conviene más para nuestro sistema legado.

Solo mantenimiento

El mantenimiento es un proceso iterativo incremental en el cual se aplican pequeños cambios al sistema.

Un sistema que ofrece gran valor a la organización y no requiere mayores cambios es considerado que debe mantenerse.

Los cambios son frecuentemente ajustes a fallos o errores menores, así como mejoras que requieren las funcionalidades existentes sin implicar mayores cambios estructurales.

El mantenimiento se requiere para soportar la evolución del sistema pero tiene limitantes.

Algunas de las limitantes incluyen lo siguiente:

  • Implementar nueva tecnología como arquitecturas distribuidas o una nueva interfaz gráfica de usuario, esto no es considerado un mantenimiento típico
  • Invertir en capacitación o entrenamiento para ingenieros en plataformas antiguas que se han dejado de utilizar
  • Cuando los ajustes tienen un mayor impacto sobre todo el sistema

¿Cuándo modernizar?

Existen razones convincentes por las cuales modernizar un sistema legado.

Dentro de ellas se encuentra el costo, la competencia, el cumplimiento regulatorio y consolidación.

Analicemos a continuación cada una de ellas.

Costo.

Cuando los costos de mantener el sistema se comen gran parte del presupuesto de TI, esto es un indicador importante.

Esto puede ocurrir comúnmente cuando los diseñadores originales, los programadores y los usuarios han dejado la organización; los niveles de habilidades y conocimientos especializados han disminuido a medida que los sistemas mismos han envejecido.

Competencia.

La agilidad es esencial en un mundo competitivo. Los sistemas de TI deben ser capaces de responder rápidamente a cambios mediante el soporte de nuevas características y funcionalidades.

Sin embargo, las aplicaciones legadas son notoriamente difíciles de escalar o adaptarse; dando como resultado que los sistemas pueden carecer de la capacidad o poder de cómputo para acomodar sus necesidades de negocio.

Cumplimiento regulatorio.

El cumplimiento a regulaciones pueden forzar la introducción de nuevas capacidades de TI, como la automatización de punto de control o la gestión de registros.

Una demanda legal que requiera contar con una evidencia, puede justificar la implementación de un sistema de gestión de documentos que implementemos.

Consolidación

En los últimos años, un gran número de fusiones, adquisiciones y reorganizaciones se han combinado para crear infraestructuras de TI que consisten en configuraciones sueltas de hardware y software dispares.

Nuevas iniciativas (como ERP, CRM y ECM) significan que la funcionalidad y la capacidad deben añadirse o restarse de esta mezcolanza de envejecimiento.

Los altos costos involucrados en la integración o consolidación de estos diversos sistemas a menudo desencadenan un legado de modernización.

En resumen los puntos principales que justifican la modernización de un sistema son:

  • Reducir los costes de gestión y soporte técnico mediante la estandarización de las plataformas de TI
  • Adoptar cambios al alinear mejor los procesos de TI y de negocio
  • Mejorar y aprovechar procesos y tecnologías en toda la empresa
  • Aprovechar las capacidades y la funcionalidad proporcionadas por las nuevas tecnologías

Reemplazar

El dar mantenimiento o modernizar un sistema pueden no resultar una opción viable, si es que el tiempo y el esfuerzo para modificar el sistema son más grandes que reemplazarlo.

Existen un número de razones de peso por las cuales se justifique el reemplazar nuestro sistema.

Algunas de las razones de peso que definitivamente nos dicen que tenemos que reemplazar el sistema son:

  • Cambios frecuentes que hacen que los costos en el sistema sean un problema
  • Cambios significativos en el código para abordar las limitaciones actuales
  • La empresa demanda mucha presión y la respuesta que puede dar el equipo de desarrollo es inferior a lo que se demanda
  • El sistema no soporta los requisitos comerciales o regulatorios
  • La plataforma y/o herramientas para su operación o mantenimiento han sido descontinuadas por el fabricante

Conclusiones

Muchas organizaciones tratan de preservar sus sistemas legados el mayor tiempo posible. Aunque prevalece el pensamiento, “si no está descompuesto aún puede seguir funcionando”, esto puede representar un riesgo en su ambiente actual.

Al enfrentarse al dilema si debemos continuar dando mantenimiento, modernizar o reemplazar un sistema, algo que nos puede dar claridad para poder tomar una mejor decisión, es conducir un diagnóstico o assessment del sistema.

Este diagnóstico nos permitirá tener los insumos de información para describir la situación actual del sistema y con base en los criterios vistos saber si debemos mantener, modernizar o reemplazar un sistema.

En Softgrade ofrecemos el servicio de diagnóstico a sistemas de software, donde podemos ayudarte de una forma simple a tomar de manera informada la decisión sobre qué hacer con tus sistemas legados.

Con el diagnóstico obtendrás insumos como:

  • Análisis del backlog de incidencias (requerimientos, ajustes, errores o fallas), con indicadores como:
    • Tasa de respuesta de resolución de incidencias
    • Módulos o aplicaciones que presentan más incidencias
    • Categorías de incidencias
    • Frecuencia de aparición de incidencias
  • Indicadores de:
    • Complejidad de mantenimiento del sistema
    • Desempeño
    • Seguridad
    • Integración con otros sistemas
    • Entre otros
  • Evaluación de la plataforma tecnológica actual (lenguaje, base de datos, entornos de desarrollo, sistema operativo, servidores, red de comunicaciones, entre otros)