Desarrollo de software aumentado por IA con agentes (asistentes)

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

Uno de los avances más interesantes en los LLM es el concepto de agentes, también conocidos como asistentes. Se trata de versiones especializadas de modelos de lenguaje grandes (LLM) que se les da una instrucción y se ajustan para admitir roles específicos. Aquí, estamos explorando cómo se pueden utilizar dichos agentes para respaldar roles en el desarrollo de software.

Un agente de IA es esencialmente un asistente virtual dotado de 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 manera natural e intuitiva. Lo que distingue a estos agentes de IA es su especialización. A diferencia de los modelos de IA de uso general, los agentes de IA se entrenan en tareas específicas relevantes para un rol en particular.

Por ejemplo, un agente de IA de propietario de productos estaría capacitado para ayudar con tareas como el análisis de mercado, la priorización de características y la creación de casos de negocio. Por otro lado, un agente de IA de desarrollador estaría equipado para automatizar la generación de código, optimizar el código existente y ayudar a identificar errores.

Esta especialización proviene de las instrucciones previas y el ajuste de los LLM en datos relevantes para el rol para el que están diseñados. Esto podría implicar entrenar al agente de IA en un conjunto de datos de código para un agente de IA desarrollador o en un conjunto de datos de investigación de mercado y características del producto para un agente de IA de propietario de productos.

Los agentes de IA están revolucionando la forma en que operan los equipos de desarrollo de software. Al proporcionar asistencia específica por puesto, 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 crear agentes específicos muy potentes combinando la generación aumentada por recuperación y las técnicas de búsqueda en Internet, códigos y corpus con el ajuste y las instrucciones dinámicas.

Diagrama de flujo del asistente de IA que da soporte a múltiples roles del proceso de desarrollo de software.
Una ilustración de cómo el asistente de IA puede apoyar múltiples roles 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 complementar cada función del equipo con un asistente de IA, podemos mejorar la eficiencia, reducir la probabilidad de errores y liberar el 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 para sustituir, a los ingenieros de software, y que la tecnología de IA generativa tiene sus limitaciones.

En este momento, los modelos de lenguaje grandes tienen dificultades para resolver problemas complejos, depurar y realizar la integración en un código base existente, y carecen de información de las industrias o del ámbito específico, o de datos de entrenamiento actualizados para generar un código perfecto. También carecen de iniciativa y necesitan que se les dé una instrucción para generar resultados.

Propietarios de productos aumentados con IA

Los propietarios de productos desempeñan un papel fundamental en los equipos de desarrollo de software, ya que impulsan la visión y la hoja de ruta del producto. Un asistente de IA puede apoyarlos proporcionando insights basados en datos para ayudar en la toma de decisiones. Por ejemplo, la IA podría analizar los datos de uso de los clientes para identificar características que son populares o que faltan en el mercado.

Esto podría ayudar al propietario de productos a priorizar las características en la cartera de productos. La IA también podría ayudar a crear casos de negocio, realizar análisis de mercado y pronosticar tendencias.

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

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

Los asistentes de IA pueden apoyar a los propietarios de productos en el proceso de ideación. Mediante el análisis de las tendencias del mercado, el feedback de los clientes y el análisis de la competencia, la IA puede proponer nuevas ideas de característica 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 forma eficiente. La IA puede priorizar las características en función de factores como el valor comercial, la demanda de los clientes y el esfuerzo de desarrollo. También podría automatizar la creación de historias de usuarios y criterios de aceptación, ahorrando al propietario de productos un tiempo valioso.

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 insights al propietario de productos.

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. Luego, la IA puede analizar estos datos para proporcionar insights y recomendaciones al propietario de productos.

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

Ejemplo de cómo se podría dar instrucciones previas a un asistente del propietario de productos para producir un caso de negocio

Usted es AI-Pam, una gerente de producto asistida por IA que se enfoca en la industria X. Tomará los requisitos del cliente como entrada y proporcionará un resumen ejecutivo, estimará el valor de negocio e identificará cualquier dependencia y riesgo potencial.

Incluirá requisitos específicos para la industria X y para 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 usuarios, ayudar en la planificación de sprints al predecir posibles obstáculos y rastrear la velocidad del equipo. La IA también podría analizar los datos de rendimiento del equipo para proporcionar insights sobre cómo mejorar la eficiencia y la colaboración dentro del equipo.

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

 

Desarrolladores aumentados con IA

Los desarrolladores están en el centro del proceso de desarrollo de 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 programación.

La IA también podría ayudar en la revisión del 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 destacan en la redacción de documentación o en ayudar a documentar código. Por ejemplo, crear nombres de variables y docstring bien elaborados en Python.

Refactorización de código para generar documentación de docstring

Refactorice el código a continuación para incluir las mejores prácticas de Python, la documentación de docstring y las sugerencias de tipo, incluidas 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

 

Evaluadores aumentados con IA

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

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

 

Ingenieros de confiabilidad del sitio (SRE) aumentados con IA

Los SRE son responsables de la confiabilidad y estabilidad de los sistemas de software. Un asistente de IA podría ayudar a los SRE a gestionar y automatizar los procesos de despliegue.

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

 

Ingenieros aumentados con IA

Los ingenieros, ya sean de backend, frontend o de lote completo, pueden beneficiarse de un asistente de IA. Para los ingenieros de frontend, la IA podría ayudar a crear diseños adaptables, 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 de bases de datos, gestionar los recursos del servidor y garantizar el cumplimiento de las normas de seguridad. Para los ingenieros de lote completo, la IA podría proporcionar soporte de principio a fin, desde la optimización del código hasta la gestión de despliegues.

Siguientes pasos

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

Más formas de explorar IBM Architecture Center Herramientas y plantillas de diagramas IBM Well-Architected Framework
Colaboradores

Mihai Criveti, Al Hamid

Actualizado: 5 de diciembre de 2023