Los retos en la modernización de aplicaciones
En el mundo actual, la modernización de aplicaciones es fundamental para mantenerse competitivo. Para lograr una modernización exitosa, se necesita una combinación de conocimientos expertos, herramientas avanzadas y una metodología altamente probada que guíe y asegure el éxito de estas iniciativas.
La modernización de las aplicaciones puede ser un proceso complejo y difícil, con obstáculos que pueden dificultar el objetivo final. Uno de los retos más importantes en la modernización de aplicaciones es la falta de conocimientos y documentación sobre el sistema heredado. Muchos sistemas heredados se desarrollaron hace décadas y, con el tiempo, los desarrolladores que los crearon y mantuvieron pueden haber abandonado la organización o haberse dedicado a otros proyectos. Esto puede dar lugar a una falta de comprensión de cómo funciona el sistema, lo que dificulta la identificación de lo que hay que modernizar.
Además, modernizar un sistema informático completo puede llevar meses o incluso años, dependiendo de la complejidad de la aplicación, el tamaño de la organización y los recursos disponibles. Esto puede suponer un reto importante para las empresas que necesitan seguir siendo competitivas y ágiles en el actual entorno digital.
Otro reto importante en la modernización de aplicaciones es la falta de expertos y perfiles técnicos disponibles para llevar a cabo el proyecto. La modernización de los sistemas heredados requiere competencias y conocimientos especializados, como experiencia en tecnologías modernas, migración de datos e integración de aplicaciones. Encontrar expertos con estas habilidades puede ser un reto importante, sobre todo en áreas donde hay una gran demanda de talento técnico.
Inteligencia artificial como acelerador de la modernización de aplicaciones
Los últimos avances en inteligencia artificial en modelos de lenguaje aplicados a la generación de código nos permiten hacer una serie de tareas que antes eran difíciles o incluso imposibles de realizar. Algunas de las posibilidades que se abren gracias a estos avances son:
- Generación de código automatizada: los modelos de lenguaje basados en IA pueden generar código automáticamente, lo que puede ahorrar una cantidad significativa de tiempo y esfuerzo.
- Descripción de código: proporcionar una descripción funcional del código existente y cómo funciona, lo que resulta especialmente útil y relevante en aplicaciones legadas con falta de documentación, ausencia de comentarios en el código o desconocimiento por parte de los equipos de desarrollo y mantenimiento.
- Identificación de errores de código: los modelos de lenguaje pueden analizar y detectar patrones de errores comunes en el código, lo que puede ser muy útil para mejorar la calidad del código generado.
- Refactorización del código: sugerencias de refactorización, optimización del código existente o adaptación a nuevas arquitecturas o frameworks.
- Reducción de tareas repetitivas: los modelos de lenguaje basados en IA pueden ayudar a automatizar muchas tareas que antes requerían habilidades de programación avanzadas.
- Performance: los modelos de lenguaje pueden ayudar a optimizar el código para una mejor eficiencia y rendimiento.
En general, los avances en la inteligencia artificial en modelos de lenguaje están transformando la forma en que se crea, se modifica y se gestiona el código, abriendo un mundo de posibilidades y oportunidades para la innovación en este ámbito.
Azure OpenAI Services
Uno de los modelos de lenguaje más avanzados orientado a aplicaciones comerciales es GPT-3, disponible en los servicios Azure Open AI de Microsoft.
Azure OpenAI Services es una plataforma de inteligencia artificial que permite a los desarrolladores generar código de manera automatizada, mejorando la eficiencia y efectividad en el desarrollo de aplicaciones. Lo que diferencia a Azure OpenAI de otras soluciones similares es su capacidad para generar código de forma supervisada por los desarrolladores, lo que les brinda un mayor control sobre el código generado. Además, al estar alojada en una infraestructura de Microsoft Azure, se garantizan los aspectos de privacidad de datos, seguridad y compliance.
Estas capacidades avanzadas tendrán mayor impacto si se integran en un enfoque con visión completa del proceso de modernización de aplicaciones donde se combinen todos estos aspectos:
- Combinación de equipo experto, metodología y plataformas de automatización: El uso de un equipo experto, metodología y plataformas de automatización puede ser una herramienta muy poderosa para lograr objetivos específicos.
- Visión end-to-end del proceso a la hora de combinar estos elementos: De esta manera, se puede asegurar que todos los elementos se ajusten y trabajen juntos para lograr los objetivos deseados.
- Capacidad de customización del resultado generado a las arquitecturas y frameworks específicos de cada organización: Cada organización tiene su propio conjunto de arquitecturas y frameworks específicos, y es importante que los resultados generados puedan ser personalizados para adaptarse a estas necesidades únicas.
- Incluir tareas como mejora de calidad, mejora seguridad y refactorización: Además de desarrollar soluciones eficientes y personalizadas, es importante incluir tareas adicionales para garantizar la calidad y seguridad del proceso.
Plataforma de automatización: NTT DATA Coding.
NTT DATA dispone de una estrategia de modernización de aplicaciones que incorpora todas las ventajas de las soluciones más avanzadas de inteligencia artificial.
Para ello disponemos de la plataforma de automatización NTT DATA Coding, para la que hemos trabajado durante más de 1 año en integrar en ella las capacidades de Azure OpenAI Services, combinando la inteligencia artificial con el conocimiento experto de NTT DATA en la modernización y mantenimiento de aplicaciones.
NTT DATA Coding es uno de los activos más disruptivos y de mayor potencial del toolkit de modernización de nuestro Modernization Studio.
Aunque los modelos de lenguaje ofrecen funcionalidades de mucho valor out of the box, su aplicación en procesos de modernización de aplicaciones legadas complejas no es inmediato. Es necesario proporcionar capas adicionales de valor que permitan a los equipos de modernización preprocesar el código origen, entendiendo tanto la estructura técnica como funcional del mismo, realizar entrenamientos específicos de la IA para que resuelva de manera eficiente la transformación del código, siguiendo las arquitecturas y frameworks de desarrollo específicos de la organización. Es fundamental que se facilite la tarea de los equipos de modernización en aspectos como la limitación del tamaño del input que puedes proporcionar a la IA o el promp engineering (petición en lenguaje natural al modelo de lenguaje), para conseguir altos niveles de productividad que aseguren el ROI del proyecto.
NTT DATA Coding dispone de todas estas funcionalidades, además de una base de conocimiento de casos de uso específicos que ya han sido implementados con éxito en proyectos de modernización para clientes tier 1 pertenecientes a diferentes sectores de actividad y con un portfolio de aplicaciones diverso en su stack tecnológico y en su nivel de obsolescencia previo a la adopción del entorno cloud.
En las modernizaciones de aplicaciones, NTT DATA Coding permite obtener unas eficiencias potenciales en una ratio del 20-40% en la comparación con una transformación 100% manual.
Un ejemplo de estos casos de uso, muy común en sectores como Banca y Seguros, es la actualización de los motores de bases de datos para aprovechar las capacidades de la nube disponibles en la actualidad. La modernización de estos motores de bases de datos puede ser un proceso complejo que requiere tiempo, esfuerzo y experiencia, pero con NTT DATA Coding se consiguen generar eficiencias muy significativas gracias a los entrenamientos específicos para estos casos de uso ya disponibles en la plataforma.