¿Qué es la modernización de software? ¿Por qué es importante para cualquier software? ¿Cuáles son las herramientas disponibles para la modernización del software?

Durante mi carrera, tuve que trabajar en el desafío de modernizar varios productos de software. Como se explica en mi artículo, “Equilibrio de la deuda técnica”, debemos desarrollar un plan para avanzar. El esfuerzo para elevar el listón debe evaluarse continuamente para estar listo para tomar cualquier decisión de “hacer o morir”.

En nuestro mundo digital en rápida evolución, ¡todas las compañías de software deben enfrentar esta situación!

La modernización del software, también conocida como modernización heredada, se refiere al trabajo de convertir, reescribir o portar un programa heredado para llevarlo a los últimos estándares en informática y software. Esto incluye cosas como lenguaje de programación moderno, bibliotecas de software, protocolos, tecnologías en la nube (arquitectura sin servidor, microservicios, etc.), plataformas de hardware, etc.

Quizás este sea un buen lugar para definir software heredado , para ayudarnos a comprender mejor lo que está en juego cuando hablamos de modernización de software.

El software heredado es cualquier aplicación empresarial basada en tecnología más antigua que todavía se utiliza para admitir las funciones centrales de una empresa u organización. Son monolíticos, no tienen módulos o código reutilizables, y son difíciles de entender o modificar.

El software heredado a menudo está muy parcheado, envuelto y construido encima, lo que significa que cualquier intento de modernizarlos podría tener efectos catastróficos (significa un alto TCO). Además, tales “jeroglíficos” antiguos a menudo requieren hardware antiguo que ya no se fabrica nuevo. El mantenimiento de tales sistemas a menudo requiere horas de búsqueda por parte de TI de hardware obsoleto en subastas y foros en línea, que, francamente, difícilmente puede considerarse profesional, especialmente para las grandes corporaciones.

La modernización del software no es un proyecto para entrar a la ligera o descuidadamente, ni es algo que pueda ignorarse. Hay demasiado en juego en este mundo digital muy volátil y en rápida evolución para ignorar esta área crítica.

Si bien es fácil (y completamente erróneo) pensar que la gran mayoría de los sistemas actuales se basan exclusivamente en Java y en sistemas basados ​​en la web, la realidad es que la mayoría de las grandes organizaciones aún ejecutan sus aplicaciones críticas en entornos heredados.

Mientras se avanza lentamente, a menudo cuando la necesidad finalmente triunfa sobre la terquedad ejecutiva, se han gastado billones en aplicaciones COBOL a principios del siglo XXI, solo, y decenas de miles de millones de transacciones COBOL continúan ocurriendo, todos los días. Según un artículo de febrero de 2017 de Alexander Ziegel sobre el blog de capacitación y uso de IBM, el 80 por ciento de las transacciones comerciales diarias del mundo dependen de COBOL.

Si bien COBOL, originalmente diseñado en 1959, ya no es popular para la creación de nuevo software, debido al menos en parte a la disminución del número de programadores experimentados, sigue siendo la columna vertebral de muchas aplicaciones comerciales. Gran parte del trabajo de programación que se realiza con COBOL en 2017 se centra en la modernización y la migración a nuevos sistemas.

Además, con algunas estimaciones recientes que sugieren que del 60% al 80% del presupuesto de TI de una empresa promedio se gasta solo en el mantenimiento de sistemas y aplicaciones mainframe existentes, se está volviendo demasiado costoso y lento para no considerar la modernización del software.

Al mismo tiempo, debe tenerse en cuenta el hecho de que, si bien una empresa se desarrolla a lo largo de los años, se basa en una gran acumulación de experiencia y estrategia, incluso algo inestimable, en su software heredado existente que no puede descartarse simplemente en aras de la modernización . A menudo, estas son las cosas que le dan a una empresa su ventaja competitiva en su nicho.

Hay una serie de factores que han obstaculizado o ralentizado el progreso de la modernización del software de lo que algunos han calificado con precisión como “bomba de tiempo” de programas muy parcheados. El costo de actualizar estos gigantes a menudo patentados para ejecutarse en la nube y los sistemas SaaS es muy desalentador, sin embargo, el costo de no actualizar ya no se puede ignorar. Muchos de estos sistemas han estado funcionando con soporte vital de TI durante demasiado tiempo y tienen un riesgo inminente de morir en cualquier momento.

Por lo tanto, los pasos que se toman en el proceso de modernización a menudo deben ser incrementales, abordando primero los riesgos más apremiantes.

Algunos de los riesgos que simplemente deben considerarse que existen en prácticamente todos los sistemas heredados son:

  1. El hardware (infraestructura) está obsoleto y las piezas son cada vez más difíciles de encontrar.
  2. Cada vez es más difícil encontrar ingenieros que conozcan el idioma.
  3. La tecnología ya no es respaldada por sus proveedores.
  4. El costo de mantenimiento está aumentando más allá de los niveles aceptables en un mercado cada vez más competitivo

Quizás la razón número uno, hoy, en el siglo XXI, por la cual muchas compañías no han abordado el tema de la modernización del software, o simplemente han “pateado la lata” aún más adelante, es porque no han evaluado adecuadamente su situación. . El hecho es que cualquier compañía con planes para continuar más allá de este año necesita evaluar los riesgos y las recompensas involucradas en mantener el status quo versus la modernización.

En muchos casos, simplemente evaluar y evaluar el sistema existente con todos sus defectos y el potencial de una falla catastrófica debería ser un incentivo suficiente para la modernización del software, independientemente de lo que cueste, ya que el costo de no hacerlo es impensable.

Por lo tanto, el primer paso que debe tomar cualquier empresa que se ejecute en un sistema heredado pero que planee continuar más allá de 2017 es una evaluación completa de sus sistemas. Esto debe incluir tanto las aplicaciones heredadas como la infraestructura, ya que son co-dependientes. El costo de no hacer nada debe compararse cuidadosamente con el costo de hacer algo. Las expectativas futuras para la longevidad de la organización obviamente son un factor muy importante en dicha evaluación. Si se espera que la compañía exista en el futuro, es más importante que nunca asegurarse de que el sistema la lleve allí.

Por lo tanto, cualquier evaluación realista debe incluir:

  1. Una evaluación adecuada y sobria de las aplicaciones basada en los requisitos existentes y futuros.
  2. identificación de costos de operación, mantenimiento y reemplazo existentes, actuales y futuros
  3. los riesgos involucrados con cualquier tipo de falla
  4. Los beneficios potenciales de usar servicios administrados, compartidos o en la nube

Por supuesto, para cualquier tipo de estrategia comercial, el costo de implementar un plan, como la modernización del software, debe compararse con el valor del negocio. ¿El plan aumentará la rentabilidad y reducirá los costos generales?

más…

La modernización del software es cualquier actividad que reemplaza algunas (o todas) partes del software con tecnologías más modernas. Se pueden reemplazar los idiomas de programación, el acceso a la base de datos o el modelo, la administración de pantalla, los controles de seguridad, la arquitectura, … en cualquier combinación.

Cada compañía con un sistema “heredado” tiene algo que han construido durante muchos años con muchas personas. Por lo general, no puede simplemente apagar el software; es * exitoso *. El éxito genera descontento; La gente quiere que sea mejor. Y puede haber algo de tecnología que impide que el software evolucione o se integre con el resto del mundo de manera más efectiva. Reemplace la retención y, presumiblemente, la aplicación se vuelve más maleable y, por lo tanto, satisface mejor las necesidades de la organización.

Mi predicción: todos los sistemas de software comienzan a tener una larga vida útil; la gente se va, el software no. Cada 10 años, un sistema exitoso se someterá a un importante esfuerzo de modernización, por las mismas razones que las personas remodelan sus casas una vez por década.

Las herramientas disponibles para la modernización son en gran parte como compiladoras: “lea el código, analice las oportunidades de modernización, transforme el código”. Algunas de estas herramientas son específicas de un lenguaje de programación (muchos de los llamados traductores COBOL), pero algunas son bastante generales. Echa un vistazo a los sistemas de transformación de programas como la herramienta clave que respalda esta actividad

[Estoy muy involucrado en el espacio de modernización. Mira mi biografía.]

Un paso importante es determinar si necesita reescribir la aplicación o actualizarla. Aquí hay una lista de verificación para ayudar: CÓMO SABER CUANDO ES EL MOMENTO DE ESCRIBIR SU SOLICITUD DE LEGADO

Los servicios de modernización de aplicaciones de software ayudan a las organizaciones a transformar aplicaciones heredadas en tecnologías más nuevas para ofrecer un mayor valor comercial … Los servicios de modernización de software incluyen principalmente

  • Re-arquitectura
  • Reingeniería
  • Migración y Re-hosting

Echa un vistazo a los servicios de modernización de aplicaciones de Nous, Nous avanza en los sistemas heredados para potenciar el valor comercial al aprovechar las últimas tecnologías …