Desarrollo de software aumentado por IA con agentes (asistentes)

Ilustración de diagrama de flujo que incluye un globo de diálogo azul, un signo de interrogación y una marca de verificación
Visión general

Uno de los avances más interesantes de los LLM es el concepto de agentes, también conocidos como asistentes. Se trata de versiones especializadas de modelos de lenguaje de gran tamaño (LLM) que están preconfigurados y ajustados para desempeñar funciones específicas. Aquí, exploramos cómo estos agentes pueden usarse para apoyar roles en el desarrollo de software.

Un agente de IA es básicamente un asistente virtual con capacidades de IA. Estos agentes están diseñados para comprender y procesar el lenguaje natural, lo que les permite interactuar con los humanos de forma natural e intuitiva. Lo que diferencia a estos agentes de IA es su especialización. A diferencia de los modelos de IA de uso general, los agentes de IA están entrenados para realizar tareas específicas relacionadas con una función en particular.

Por ejemplo, un Product Owner AI Agent se formaría para ayudar en tareas como el análisis de mercado, la priorización de características y la creación de casos de negocio. Un Developer AI Agent, por otro lado, estaría equipado para automatizar la generación de código, optimizar el código existente y ayudar a identificar los errores.

Esta especialización proviene de la preparación previa y el ajuste de los LLM con datos relevantes para la función para la que están diseñados. Esto podría implicar entrenar al agente de IA en un conjunto de datos de código para un Developer AI Agent o en un conjunto de datos de investigación de mercado y características del producto para un Product Owner AI Agent.

Los agentes de IA están revolucionando la forma de trabajar de los equipos de desarrollo de software. Al ofrecer asistencia específica para cada función, pueden aumentar la productividad, reducir la probabilidad de errores y permitir que los miembros del equipo se centren en tareas más complejas y creativas. A medida que estos agentes de IA continúan evolucionando, prometen un futuro en el que cada miembro de un equipo de desarrollo de software contará con un asistente de IA personalizado, lo que hará que el proceso de desarrollo sea más eficiente y eficaz.

Se pueden producir agentes específicos de roles muy potentes combinando técnicas de generación aumentada por recuperación e Internet/código/búsqueda de corpus con fine tuning y prompting dinámico.

Diagrama de flujo del asistente de IA que da soporte a múltiples funciones del proceso de desarrollo de software
Un ejemplo de cómo un asistente de IA puede desempeñar múltiples funciones en el proceso de desarrollo de software.
Humanos

La incorporación de asistentes de IA en el proceso de desarrollo de software puede ser transformadora. Al aumentar cada función del equipo con un asistente de IA, podemos mejorar la eficacia, reducir la probabilidad de errores y liberar talento humano para que se centre en tareas más complejas y creativas.

Sin embargo, es fundamental recordar que estos asistentes de IA son herramientas diseñadas para apoyar, no reemplazar, a los ingenieros de software, y la tecnología de IA generativa tiene limitaciones.

En la actualidad, los modelos de lenguaje de gran tamaño tienen dificultades para resolver problemas complejos, depurar e integrarse en un código base existente, y carecen de información específica del sector o del ámbito, o de datos de entrenamiento actualizados para generar un código perfecto. También carecen de iniciativa y necesitan que se les impulse para generar cualquier tipo de resultado.

Propietarios de productos aumentados con IA

Los propietarios de productos desempeñan un papel integral en un equipo de desarrollo de software, impulsando la visión y la hoja de ruta del producto. Un asistente de IA puede apoyarlos proporcionándoles perspectivas basadas en datos para ayudar a la toma de decisiones. Por ejemplo, la IA podría analizar los datos de uso de los clientes para identificar las características que son populares o que faltan en el mercado.

Esto podría ayudar a los propietarios de productos a priorizar las características en el backlog del producto. La IA también podría ayudar a crear casos de negocio, realizar análisis de mercado y prever tendencias.

Un asistente de IA para un propietario de producto puede proporcionar un soporte multifacético, mejorando el papel de varias maneras:

Un asistente de IA para el propietario del producto podría ayudar a crear casos de negocio sólidos. Puede ayudar a recopilar y analizar datos relevantes, identificar propuestas clave de valor y redactar el documento de caso de negocio. La IA podría proporcionar plantillas para estructurar el caso de negocio, garantizando que cubra aspectos esenciales como el análisis de mercado, el análisis de coste-beneficio, la evaluación de riesgos y la alineación estratégica

Los asistentes de IA pueden ayudar a los propietarios de productos en el proceso de ideación. Al analizar las tendencias del mercado, los comentarios de los clientes y el análisis de la competencia, la IA puede proponer nuevas ideas de características o mejoras de productos. También puede facilitar las sesiones de lluvia de ideas al proporcionar instrucciones y estimular el pensamiento creativo.

Los asistentes de IA pueden ayudar a gestionar el backlog de productos de manera eficiente. La IA puede priorizar las características en función de factores como el valor empresarial, la demanda de los clientes y el esfuerzo de desarrollo. También podría automatizar la creación de historias de usuario y criterios de aceptación, ahorrando un tiempo valioso al propietario del producto.

Los asistentes de IA pueden ayudar a comunicarse con los stakeholders. Pueden ayudar a preparar actualizaciones de estado, redactar correos electrónicos y crear diapositivas de presentación. También pueden analizar el feedback de los stakeholders y proporcionar perspectivas al propietario del producto.

Los asistentes de IA pueden realizar análisis de mercado exhaustivos. Pueden recopilar datos sobre las tendencias del mercado, los productos de la competencia y las necesidades de los clientes. La IA puede entonces analizar estos datos para proporcionar perspectivas y recomendaciones al propietario del producto.

Los asistentes de IA pueden apoyar la gestión de riesgos identificando riesgos potenciales y proponiendo estrategias de mitigación. Pueden monitorizar el progreso del proyecto y señalar cualquier desviación del plan, lo que permite al propietario del producto tomar medidas correctivas oportunas.

Ejemplo de cómo se le podría dar una instrucción al asistente del propietario del producto para que produjera un caso de negocios

Usted es AI-Pam, una gestora de productos asistida por IA que se centra en el sector X. Tomará como entrada cualquier requisito del cliente y proporcionará un resumen ejecutivo, estimará el valor empresarial e identificará las posibles dependencias y riesgos.

Incluirá los requisitos específicos del sector X y de la empresa Y.

Ejemplo de entrada: .. Ejemplo de salida: ..

Scrum Masters aumentados con IA

Los Scrum Masters garantizan el buen funcionamiento del proceso ágil. Un asistente de IA podría ayudar a los Scrum Masters a organizar y gestionar sprints. Podría automatizar la creación de historias de usuario, ayudar en la planificación de sprints mediante la predicción de posibles obstáculos y realizar un seguimiento de la velocidad del equipo. La IA también podría analizar datos de rendimiento del equipo para proporcionar perspectivas sobre cómo mejorar la eficiencia y la colaboración dentro del equipo.

La integración con tableros Kanban y herramientas a menudo puede facilitar su trabajo.

 

Desarrolladores aumentados con IA

Los desarrolladores están en el centro del proceso de desarrollo del software. Un asistente de IA podría ayudar a los desarrolladores de varias maneras. Podría automatizar la generación de código, optimizar el código existente y aplicar estándares de codificación.

La IA también podría ayudar en la revisión de código identificando errores o vulnerabilidades de seguridad. Además, podría ayudar a los desarrolladores a elegir las API y bibliotecas adecuadas para sus aplicaciones.

Los LLM también son excelentes para escribir documentación o ayudar a documentar el código. Por ejemplo, crear nombres de variables y cadenas de documentación bien redactados en Python.

Refactorización del código para generar documentación de cadenas de documentación

Refactorice el código a continuación para incluir buenas prácticas en Python, documentación de cadenas de documentación y sugerencias de tipos, incluyendo todas las mejores prácticas recientes.

def add(a, b):
    return a + b


Resultados:

def add_numbers(num1: int, num2: int) -> int:
    “””
    This function adds two numbers and returns the result.
    
    Args:
        num1 (int): The first number to add.
        num2 (int): The second number to add.
        
    Returns:
        int: The sum of num1 and num2.
    “””
    return num1 + num2

 

Testers aumentados con IA

Los testers garantizan la calidad del producto de software. Un asistente de IA podría automatizar la generación de casos de prueba basados en los requisitos del producto.

También podría ayudar a realizar pruebas de regresión, pruebas de carga y pruebas de rendimiento. Gracias a la capacidad de la IA para aprender de los datos, el asistente podría predecir posibles áreas de fallo en el software, lo que permitiría corregir errores de forma proactiva.

 

Ingenieros de fiabilidad del emplazamiento (SRE) aumentados con IA

Los SRE son responsables de la fiabilidad y estabilidad de los sistemas de software. Un asistente de IA podría ayudar a los SRE en la gestión y la automatización de los procesos de implementación.

También podría ayudar a monitorizar el rendimiento del sistema y a predecir posibles fallos del sistema. Para los SRE que trabajan con herramientas de infraestructura como código (IaC) como Ansible, la IA podría automatizar la creación de guías de estrategias y optimizar los scripts existentes.

 

Ingenieros aumentados con IA

Los ingenieros, ya sean backend, frontend o full-stack, pueden beneficiarse de un asistente de IA. Para los ingenieros de frontend, la IA podría ayudar a crear diseños receptivos, optimizar las interfaces de usuario y garantizar los estándares de accesibilidad.

Para los ingenieros de backend, la IA podría ayudar a optimizar las consultas a las bases de datos, gestionar los recursos del servidor y garantizar el cumplimiento de las normas de seguridad. Para los ingenieros full-stack, la IA podría proporcionar soporte integral, desde la optimización del código hasta la gestión de implementaciones.

Próximos pasos

Hable con nuestros expertos sobre la implementación de un patrón de implementación de nube híbrida.

Colaboradores

Mihai Criveti, Al Hamid

Actualizado: 5 de diciembre de 2023