Actualidad

¿Puede la IA salvar la modernización de las aplicaciones? Cientos de miles de millones de dólares en juego

Ikea y Nike son las dos caras de la moneda: la multinacional sueca aumentó un 300% las ventas de comercio electrónico, mientras que la marca deportiva perdió más de cien millones de dólares.

En el acelerado y cambiante panorama tecnológico actual, las organizaciones deben modernizar las aplicaciones de software y construir una base flexible para la innovación futura con el fin de seguir siendo competitivas.

El icónico fabricante de muebles de bricolaje Ikea lo hizo bien. Primero compró el servicio en línea TaskRabbit para ayudar a los clientes a los que no les gusta montar sus propios muebles, una incursión en el software (sobre todo móvil). A continuación, modernizaron su procesamiento de pagos. En junio de 2021, habían experimentado un aumento del 300% en las ventas de comercio electrónico como resultado directo de sus esfuerzos de transformación.

Pero Nike no solo lo hizo. La han fastidiado. Gastaron 400 millones de dólares en actualizar sus sistemas ERP y la pérdida comercial final ascendió a más de cien millones. La empresa tuvo que invertir otros cinco años y otros 400 millones de dólares para encarrilar el proyecto con éxito.

Estos ejemplos muestran lo que está en juego al modernizar las aplicaciones de la forma correcta. El alcance potencial del trabajo es enorme, al igual que la inversión necesaria. Pero los recientes y asombrosos avances en inteligencia artificial (IA) están ayudando. Las últimas herramientas de automatización basadas en IA permiten a las empresas modernizar las aplicaciones mucho más rápido y con mucho menos esfuerzo humano.

Es mucho lo que está en juego; estimaciones recientes de analistas proporcionan cierto contexto para la inversión potencial necesaria. La empresa de investigación Gartner predice que el gasto mundial en software en 2023 superará los 850.000 millones de dólares, y que la inversión en servicios de TI relacionados superará los 1,3 billones de dólares. Las organizaciones deben ser inteligentes con ese gasto.

Muchas de las aplicaciones críticas para el negocio (sobre todo en las grandes empresas) que necesitan modernizarse se basan en el lenguaje de programación Java, que –a pesar de haber sido introducido hace casi treinta años– sigue siendo un incondicional de los sistemas informáticos empresariales. Esta longevidad ha dado lugar a una asombrosa cantidad de código Java que se ejecuta hoy en día en entornos de producción, con la correspondiente necesidad de modernización.

Una encuesta reciente de Diffblue, especialistas en Generative AI for Code (realizada por la empresa independiente de estudios de mercado Vanson Bourne), reveló que el 96% de las empresas consideran que estas aplicaciones Java son extremadamente o muy importantes para su negocio y que el 87% de ellas consideran que la modernización es más prioritaria que otros proyectos.

Como resultado, las organizaciones esperan modernizar más del 80% de sus aplicaciones Java existentes durante la próxima media década. Está claro que una empresa de tal envergadura tendrá un impacto significativo tanto en los equipos de desarrollo como en las organizaciones: los encuestados estimaron que el trabajo que implica la modernización de Java puede requerir hasta el 45% de los recursos de desarrollo disponibles.

Varios factores parecen estar detrás de esta voluntad de invertir en modernización. Por ejemplo, la encuesta reveló que los responsables de ingeniería consideran que sus aplicaciones Java actuales no son lo suficientemente seguras, y el 56% citó «mejorar la seguridad de las aplicaciones» como un factor clave.

Independientemente del motivo comercial subyacente, la mayoría de los proyectos de modernización requieren una cantidad significativa de cambios en el código de software existente. Pero todos –incluso la migración más sencilla de sistemas a la nube– conllevan una complicación adicional: la experiencia del cliente debe mejorar, no empeorar, con el cambio.

Según la encuesta de Diffblue, los equipos de Java consideran que mantener la calidad del código es su principal reto de modernización. Y los cambios en el código aumentan drásticamente las probabilidades de regresiones involuntarias que eliminan funcionalidades o degradan el rendimiento. El 97% cree que las pruebas unitarias son esenciales para evitarlas.

Pero hace tiempo que se sabe que no hay suficientes desarrolladores en el mundo para escribir todo el software que necesitan las empresas para seguir siendo competitivas, por lo que la automatización se considera un factor clave del éxito en la mayoría de los proyectos de modernización.

Si las organizaciones pueden automatizar incluso una cuarta parte de la carga de trabajo más tediosa de los desarrolladores (como las pruebas unitarias), liberan a los equipos para que puedan centrarse en ofrecer un valor empresarial más directo, como una mejor experiencia del cliente, un mayor rendimiento de las aplicaciones, desarrolladores más satisfechos y una menor necesidad de contratar a ingenieros más caros.

En el mundo empresarial actual, la automatización implica cada vez más herramientas basadas en IA. De hecho, la IA avanza tan rápido que puede ser difícil seguirle el ritmo. ChatGPT, de OpenAI, acaparó titulares en todo el mundo a finales de 2022 (y sigue haciéndolo) por su asombrosa capacidad para escribir, codificar, dibujar y crear con resultados creíbles, y a veces increíbles.

Esta nueva clase de herramientas de IA, basadas en «grandes modelos lingüísticos» (LLM) y entrenadas en enormes conjuntos de datos, ya se han puesto al servicio de una amplia gama de usos, incluida la escritura de código. Otras herramientas similares, como GitHub Copilot y TabNine, se han diseñado específicamente para ese fin.

La plausibilidad de los resultados que ofrecen estas herramientas basadas en LLM, por extraño y maravilloso que sea el punto de partida, es innegablemente impresionante. Pero su capacidad de alucinar –de «equivocarse con seguridad»– también subraya la necesidad de mantener a los humanos informados y limita su beneficio en algunos escenarios, como la modernización de aplicaciones, donde la escala es un factor.

Sin embargo, los LLM no son la única forma de aplicar la IA generativa al código: el aprendizaje por refuerzo es otro enfoque de la IA que hace posible la escritura de código totalmente autónoma, sobre todo para tareas específicas y orientadas a objetivos. Las pruebas unitarias, tan importantes para la modernización de Java, son un ejemplo.

El motor de IA basado en el aprendizaje por refuerzo de Diffblue escribe de forma autónoma código de prueba unitario que se garantiza que compila, ejecuta y es correcto sin revisión humana; un proyecto de investigación de código abierto, Evosuite, sigue un planteamiento similar.

Escribir código no es la única área en la que la automatización, con o sin IA, puede acelerar la modernización de las aplicaciones. Otras herramientas de automatización también pueden ayudar con aspectos específicos de su viaje. vFunction, por ejemplo, ofrece un conjunto completo de herramientas para las almas informáticas que se enfrentan a los peligrosos mares de la modernización.

La plataforma de refactorización de código abierto Moderne puede automatizar tareas de codificación complicadas pero tediosas, como las actualizaciones del marco Java. Y, por supuesto, la consultoría y los servicios globales de TI de proveedores como CapGemini e IBM también están disponibles. Pero a un precio.

Ahora una nota de precaución. No piense que, una vez iniciado su viaje de modernización de aplicaciones, todo será coser y cantar gracias simplemente al uso de una mayor automatización. La encuesta de Diffblue pone de relieve otros baches en el camino.

Por ejemplo, con sólo el 22% de las aplicaciones Java creadas por desarrolladores internos, el simple hecho de comprender el funcionamiento actual de aplicaciones grandes y complejas puede ser una tarea desalentadora. Y aunque mantener la calidad del código es el reto más destacado (46%), otros son las estrategias tecnológicas cambiantes (43%), la falta de conocimientos técnicos (34%) y los procesos ineficaces (32%).

A pesar de estos retos, el ritmo de modernización de Java se está acelerando: el 65% de las organizaciones tiene previsto modernizar entre cien y mil aplicaciones Java, aunque puede tardar más de cinco años en completar el 80% de su alcance. De hecho, la modernización puede acabar siendo un proceso continuo, ya que la tecnología sigue evolucionando a mayor velocidad.

Cada vez se adoptan más herramientas de codificación impulsadas por IA –basadas en LLM y otros enfoques– para acelerar este proceso, pero no preocupa mucho que se sustituya a los ingenieros de software. Más bien, las herramientas que existen hoy en día ahorran horas de trabajo a los desarrolladores, aumentan la productividad y ayudan a las organizaciones a desarrollar y mantener un código de mayor calidad, todos ellos resultados especialmente valiosos en proyectos de transformación a gran escala como la modernización de aplicaciones.

Artículos relacionados