¿Resolverá GenAI los problemas de calidad del código?

Si en vez de leer prefieres escuchar, dale al play.

¿Resolverá GenAI los problemas de calidad del código?
5:25

Con todo el reciente revuelo en torno a las herramientas de codificación GenAI y los riesgos y potenciales que estas conllevan para la productividad en el desarrollo de software, Codurance organizó un panel con la participación de su cofundador Sandro Mancuso y representantes de CodeScene, AWS y Trainline. En este evento se discutió la realidad del uso de herramientas GenAI como Amazon Q Developer y el futuro que estas auguran.

A continuación, resumimos la discusión y cómo estos líderes tecnológicos ven la evolución de la calidad del código y las prácticas de ingeniería de software en la era de la inteligencia artificial (IA).

La esencia de la calidad del código

¿Qué define la calidad del código? En su esencia, el código de calidad es fácil de entender y, por lo tanto, fácil de modificar. Es un código "suficientemente bueno" para el propósito que sirve y está diseñado para evolucionar con el tiempo. La calidad del código no es un ideal abstracto, sino una medida práctica alineada con requisitos específicos, incluidas las necesidades empresariales.

El desafío de la IA en la refactorización

La investigación de Adam Tornhill destaca una limitación crucial: la IA tiene dificultades con la refactorización válida. Si bien la IA puede modificar el código, garantizar que los cambios no rompan la funcionalidad existente es otra historia. La prueba de fuego aquí es si las pruebas aún pasan después de la refactorización. Este desafío subraya la necesidad de supervisión humana y pruebas rigurosas al integrar la IA en el proceso de desarrollo.

Habilidades para el desarrollador en la era de la IA

A medida que las herramientas de IA se vuelven más prevalentes, las habilidades requeridas de los desarrolladores también evolucionan. La precisión y el pensamiento metódico son fundamentales. Los equipos de desarrollo deben volverse competentes en la ingeniería de prompts, una habilidad que probablemente será reemplazada eventualmente por la automatización. La revolución de la IA todavía está en sus primeras etapas, y aquellos que se concentren en habilidades fundamentales de ingeniería mientras proceden con cautela prosperarán.

Los desarrolladores del futuro necesitarán ser híbridos, comprendiendo tanto el código tradicional como el generado por IA. Los desarrolladores senior, en particular, se benefician significativamente de la IA, ya que poseen el entendimiento profundo necesario para aprovechar estas herramientas de manera efectiva.

IA y verificación de datos

Combinar IA con la verificación de datos puede conducir a un rendimiento más rápido y preciso. Por ejemplo, integrar grandes modelos de lenguaje (LLMs) para verificar datos puede agilizar muchos procesos. Sin embargo, el desafío clave sigue siendo determinar la exactitud de los resultados generados por IA.

El papel de la IA en industrias reguladas

En industrias altamente reguladas, validar los resultados de la IA es crítico. Por ejemplo, aunque la IA puede lograr una mayor precisión en diagnósticos médicos en comparación con los doctores humanos, los procesos de confianza y verificación deben ser sólidos. Superar la barrera psicológica donde se espera que la IA sea infaliblemente precisa es esencial. Eventualmente, las tasas de precisión comprobadas de la IA—como un 98% de diagnósticos correctos en comparación con el 70% de un médico general—construirán la confianza.

Cómo preparar a tu organización para la integración de IA

Las organizaciones deben prepararse para integrar la IA creando marcos que aprueben las solicitudes del equipo para resolver problemas usando IA. Herramientas como Trainline pueden ayudar a analizar datos a través de LLMs para verificación, asegurando que la IA contribuya efectivamente a los objetivos empresariales.

IA en áreas desarrolladas y escasamente pobladas

El potencial de la IA es especialmente transformador en regiones desarrolladas o escasamente pobladas. Donde los profesionales médicos son escasos, la IA puede proporcionar servicios valiosos, ofreciendo mejoras significativas en la atención médica y fomentando la adopción. Cuando la opción es que las personas sean diagnosticadas por un médico impulsado por IA o no tener médico en absoluto (y los riesgos de no recibir tratamiento), la IA será claramente vista en un contexto diferente en comparación con los países desarrollados.

Para concluir, la IA en el desarrollo de software no se trata de reemplazar a los ingenieros humanos, sino de aumentar sus capacidades. Aunque persisten desafíos, particularmente en áreas como la refactorización de código y la validación en industrias reguladas, los beneficios son claros. Al adoptar la IA, perfeccionar las habilidades fundamentales de ingeniería y desarrollar marcos robustos para la integración de la IA, podemos esperar un futuro donde las empresas logren más y los ingenieros encuentren mayor satisfacción en su trabajo.

Recursos adicionales