Inmersas en sus respectivos procesos de transformación digital, las organizaciones son cada día más conscientes de que muchas aplicaciones TI con las que operan son antiguas y necesitan modernizarse. Aunque la modernización de las aplicaciones no representa un concepto nuevo, para la mayoría de las empresas dar el paso en esta dirección suele coincidir con el proceso TI que se deja para última instancia. Y es que existe una falsa creencia más o menos generalizada que señala que migrar aplicaciones es sinónimo de paralizar la empresa.
La migración técnica no aporta valor añadido para el negocio ya que no significa nuevas funcionalidades. Además, existe el mito de que la migración automática deja el código en mal estado y difícil de mantener (gran deuda técnica). Pero no hay nada más alejado de la realidad. Ha habido grandes avances en esta materia.
Junto con el falso mito de la desconexión de una compañía de su mercado, muchas empresas suelen aparcar el tema de la migración de sus aplicaciones esperando agotar el ciclo de sus legacy, por temor a que sus sistemas vayan a dejar de funcionar, por la necesidad de querer hacer uso de la web y operar en entornos cloud, o con el fin de explotar las ventajas que plantea la movilidad; innovaciones tecnológicas todas ellas que proyectan importantes limitaciones con los programas antiguos.
Esta situación de necesidad de dar el paso hacia la modernización del legacy de las organizaciones se ve reflejada en estudios de analistas y opinión de expertos, como el llevado a cabo por Cloud Industry Forum, en el que pone de manifiesto que nueve de cada diez empresas consideran que los sistemas heredados constituyen un freno en los procesos relacionados con la transformación digital; una coyuntura a la que hace frente la compañía que represento a través de herramientas propias, con la finalidad de que las empresas ganen en eficiencia, competitividad y productividad.
Afrontar la modernización de las aplicaciones con la ayuda de la automatización que proporciona la inteligencia artificial
Dado que llevar a cabo una puesta al día del legacy tirándolo todo y comenzando de cero resulta una alternativa sumamente costosa, las organizaciones terminan abrazando una modernización de software agnóstica del código fuente y algoritmos ya existentes con la ayuda de herramientas automatizadas que son capaces de analizar ese código y adaptarlo, sin intervención humana, a las nuevas tendencias en movilidad y cloud. Contando con los CIO como los interlocutores principales que han de llevar adelante los proyectos de modernización de las aplicaciones, éstos son perfectamente conscientes de que los procesos que implican la migración de las aplicaciones procedentes de sistemas legacy suelen conllevar ciclos de decisión de largo recorrido, puesto que ninguna compañía se decide a migrar de un día para otro. En estos casos, siempre resulta necesario un proceso de estudio que suele prolongarse durante unos dos años y aborda los proyectos siguiendo una serie de fases.
Tras realizar un análisis exhaustivo y correcto de la situación actual de un sistema legacy, las herramientas de análisis automático establecen las condiciones técnicas en la que se encuentra la aplicación antigua teniendo en cuenta su calidad, el coste y riesgo que se le asocia, y el valor que ésta tiene para el negocio. Con ellas podremos evaluar también hasta cuándo habremos de seguir manteniendo la aplicación actual, o tomar decisiones más drásticas como la sustitución o reescritura total del código. Digamos, de un modo sencillo y breve, que aquí se identificaría la primera fase de la transición del legacy.
Iniciada la segunda fase del proceso, una empresa que se decante por la transformación de sus aplicaciones a los entornos de uso actuales ha de tener presente que los programas TI contemplan un sinfín de particularidades que resulta necesario identificar. Así, las organizaciones podrán identificar los componentes que se pueden migrar recorriendo a componente de mercado o código abierto; otros que, por su complejidad, requieren de una transformación semiautomática o manual. Incluso, es posible encontrar código que no tiene sentido que se ejecute por su inoperancia en el contexto de una aplicación que funciona sobre una web o sobre un entorno de nube.
Llegada la tercera fase en la que la empresa se prepara para migrar –y con la finalidad de que la plataforma TI de la empresa siga funcionando en el momento de la migración -, se habrá de planificar todo el proceso hasta el día que se pone el sistema migrado en explotación (que puede coincidir con el de la desconexión del antiguo sistema), o determinar una fase de transición en la que se van añadiendo aplicaciones migradas para asegurar la convivencia entre el sistema anterior y el nuevo.
Las ‘deuda técnica’ que acumulan todas las aplicaciones
En los procesos de modernización de aplicaciones y de pruebas de calidad del software se menciona constantemente el concepto relacionado con la “deuda técnica”, una particularidad que suele tener lugar en los procesos de desarrollo de software, y que comprende líneas de código que, por una u otra razón: errores de programación o algoritmos necesarios para que una aplicación funcione, terminan quedándose obsoletos para su uso futuro. Puede darse el caso de que, en el momento de ser implantada, la deuda técnica no se considere como tal, pero sí ocurre con el simple paso del tiempo al irse incorporando nuevas tecnologías de programación o nuevos lenguajes.
De manera que todas las aplicaciones van acumulando deuda técnica como consecuencia de errores de programación de código o debido a la antigüedad de la aplicación, y una de las funciones que tienen las herramientas de control de calidad es, precisamente, identificar en el código fuente qué secuencias precisan de más atención para su puesta al día.
Empresas españolas con necesidades esenciales de modernización de aplicaciones
Cuando nos centramos en la mediana y gran empresa, el mercado español nos ha permitido identificar diversas áreas en las que las necesidades de modernización resultan extremadamente urgentes a día de hoy. Son empresas y organizaciones del sector público donde se realiza un uso intensivo de tecnologías en vías de desaparecer como Oracle Forms, Visual Basic, Delphi e Informix 4GL. Junto con un buen número de otras instituciones que han de sustituir sus anticuados sistemas por otras tecnologías, sectores tradicionales como el financiero, las telco y muchas organizaciones con ERP desarrollados con tecnologías obsoletas tienen la necesidad urgente de modernizarse.
Como colofón final decir que, en este recorrido de transformar el legacy en aplicaciones modernas capaces de entrar de lleno en la era de la transformación digital, las organizaciones cuentan con la inteligencia artificial como la gran apuesta y elemento dinamizador que va a permitir efectuar un análisis pormenorizado y profundo por su elevado nivel de automatismo, y también porque supone la mejor opción para llevar a cabo una estrategia de transformación progresiva que varía en función de cada tipo de aplicación.
Detallando un poco más, la transformación automática de código consiste básicamente en tres fase. Una primera fase de recuperación de la información a partir de los fuentes a donde se emplean compiladores (las gramáticas generativas) para construir las estructuras abstractas base de entrada para la segunda fase, la fase del reconocimiento de padrones y es hay a donde tiene lugar la IA con las redes neuronales multicapas con sus mecanismos de aprendizaje profundo (machine learning, Deep learning). Por ultimo la transformación de los padrones identificados en los lenguajes y nuevas tecnologías finales.
Carlos Machado
Carlos Machado, director general de Morphis Tech España