sábado, marzo 15, 2025

Escribir Historias de Usuario para GenAI

Hola a todos,

En el desarrollo de aplicaciones basadas en Inteligencia Artificial Generativa (GenAI), la definición de historias de usuario juega un papel crucial para garantizar que los modelos entreguen valor real a los usuarios. A diferencia de las historias tradicionales de software, en GenAI debemos considerar aspectos como el procesamiento de lenguaje natural, la calidad de respuestas generadas y la iteración con datos reales.

Este artículo explora cómo escribir historias de usuario efectivas para proyectos de GenAI, incluyendo criterios de aceptación en prosa y en BDD (Behavior-Driven Development), casos de agentes inteligentes y estrategias para mantener el tiempo de desarrollo hasta preproducción en menos de 36 horas, que es el tiempo aproximado para construir una historia de usuario.


Estructura de una Historia de Usuario para proyectos o funcionalidades con GenAI

Las historias de usuario para GenAI pueden seguir la estructura popular:

Como [rol del usuario],
quiero [acción],
para [objetivo o beneficio].

Sin embargo, es fundamental incluir:

  • Entradas esperadas: tipo de datos que el usuario proporcionará.
  • Salidas esperadas: qué debe generar el modelo en respuesta, incluyendo la descripción y ejemplos de lo que se espera obtener.
  • Criterios de calidad: precisión, relevancia y tiempos de respuesta (1).
  • Limitaciones: alcance de la funcionalidad dentro del ciclo de desarrollo ágil.

Dado que los modelos de IA son probabilísticos, la validación de historias debe centrarse en métricas cuantificables y validaciones iterativas con usuarios.


Ejemplo 1: Generación de Resúmenes Automáticos

Como usuario de un sistema de análisis de documentos,
quiero que la IA genere un resumen preciso de un documento PDF,
para poder extraer información clave rápidamente.

Criterios de Aceptación en Prosa

    • El resumen debe reducir el contenido original en al menos un 70% manteniendo coherencia.
    • Debe extraer y sintetizar los puntos clave sin omitir información esencial.
    • El tiempo de respuesta no debe superar los 5 segundos por página procesada.
    • La salida debe estar estructurada en párrafos y permitir correcciones manuales por parte del usuario.

Criterios de Aceptación en BDD (gherkin)

Escenario: Generación exitosa de un resumen  
    • Dado un documento PDF de más de 10 páginas  
    • Cuando el usuario solicita un resumen  
    • Entonces el sistema genera un texto condensado  
    • Y el contenido preserva los puntos clave  
    • Y el tiempo de procesamiento no supera los 5 segundos por página 


¿Qué es RAG y por qué importa en historias de usuario?

RAG (Retrieval-Augmented Generation) combina recuperación de información con modelos generativos para mejorar la precisión de las respuestas. En lugar de depender solo del conocimiento estático del modelo, RAG consulta una base de datos de documentos relevantes en tiempo real.

Cuando escribimos historias de usuario para sistemas basados en RAG, debemos considerar:

  • Cómo se selecciona la información relevante (método de recuperación).
  • Cómo se combinan los datos recuperados con la generación de respuestas.
  • Qué métricas de calidad asegurarán que la respuesta sea útil y precisa.

Ejemplo 2: Uso de RAG para Respuestas Basadas en Documentos

Como analista de servicio al cliente,
quiero que la IA consulte documentación técnica y genere respuestas a preguntas frecuentes,
para reducir el tiempo de búsqueda de información en manuales.

Criterios de Aceptación en Prosa

    • La IA debe buscar respuestas en documentos actualizados antes de generar una respuesta.
    • Si no encuentra información relevante, debe indicar que no tiene suficiente contexto.
    • La confianza en la respuesta debe ser superior al 85%.
    • El tiempo de respuesta no debe superar los 3 segundos.

Criterios de Aceptación en BDD

Escenario: Generación de respuestas con RAG

    • Given un usuario con una consulta técnica 
    • Cuando la IA recibe la pregunta 
    • Entonces busca la información en la base de documentos 
    • Y combina los datos encontrados con su modelo generativo
    • Y genera una respuesta precisa con referencias And la respuesta tiene una confianza superior al 85%


Ejemplo 3: Uso de Embeddings para Búsqueda Semántica

Como investigador,
quiero encontrar artículos académicos relevantes mediante búsqueda semántica,
para acelerar la revisión de literatura sin depender de coincidencias exactas de palabras clave.

Criterios de Aceptación en Prosa

    • El sistema debe utilizar embeddings para representar documentos en un espacio vectorial.
    • La búsqueda debe devolver documentos semánticamente similares, no solo coincidencias exactas.
    • Los resultados deben estar ordenados por relevancia en función de la consulta.
    • El tiempo de respuesta no debe superar los 2 segundos.

Criterios de Aceptación en BDD

    • Escenario: Búsqueda semántica con embeddings
      • Dada una consulta sobre inteligencia artificial
      • Cuando el usuario realiza una búsqueda
      • Entonces el sistema devuelve artículos relevantes
      • Y la similitud semántica se basa en embeddings
      • Y los resultados se ordenan por relevancia

Ejemplo de Historia de Usuario con Agentes de IA Autónomos

Los agentes de IA pueden realizar tareas complejas en múltiples pasos, como recopilar información, tomar decisiones y ejecutar acciones en nombre del usuario. Al escribir historias de usuario para agentes, es clave definir:

  • Cuándo deben actuar automáticamente y cuándo necesitan intervención humana.
  • Cómo gestionan interacciones multi-turno.
  • Cómo garantizan que sus decisiones sean explicables y verificables.


Ejemplo 4: Agente de Atención al Cliente con IA

Como usuario de una plataforma de servicio al cliente,
quiero que el chatbot GenAI me ayude a solucionar preguntas frecuentes,
para recibir respuestas rápidas sin esperar a un agente humano.

Criterios de Aceptación en Prosa

    • El chatbot debe responder con un nivel de confianza del 85% o superior basado en su entrenamiento.
    • Si la consulta es ambigua, debe solicitar aclaraciones en lugar de dar una respuesta incorrecta.
    • Si la pregunta no está en la base de datos, debe redirigir a un agente humano.
    • El tiempo de respuesta debe ser menor a 2 segundos.

Criterios de Aceptación en BDD (gherkin)

Escenario: Chatbot responde correctamente
    • Dado un usuario con una consulta sobre facturación
    • Cuando el usuario pregunta “¿Cuánto debo pagar este mes?”
    • Entonces el chatbot responde con el monto exacto
    • Y la respuesta tiene una confianza superior al 85%
    • Y el tiempo de respuesta es menor a 2 segundos

Ejemplo 5: Agente de IA para Gestión de Correo Electrónico

Como ejecutivo ocupado,
quiero que un agente de IA clasifique y responda automáticamente correos electrónicos,
para reducir el tiempo dedicado a la gestión del correo y poder dedicarme a otras tareas.

Criterios de Aceptación en Prosa

    • La IA debe clasificar correos en categorías como "Urgente", "Esperando Respuesta" y "Para Leer Luego".
    • Si detecta preguntas frecuentes, debe generar una respuesta basada en plantillas predefinidas.
    • Para correos que requieren atención humana, debe sugerir respuestas sin enviarlas automáticamente.
    • Debe mejorar con el tiempo en función del feedback del usuario.

Criterios de Aceptación en BDD

    • Eecenario: Clasificación automática de correos
      • Dada una bandeja de entrada con correos nuevos
      • Cuando el agente los procesa
      • Entonces clasifica cada correo en una categoría adecuada
      • Y sugiere respuestas para preguntas frecuentes
      • Y envía solo aquellas que el usuario haya autorizado

Ejemplo 6: Agente de IA para Automatización de Tareas Repetitivas

Como gestor de proyectos,
quiero que un agente de IA genere reportes semanales automáticamente,
para reducir el tiempo dedicado a la creación manual de informes.

Criterios de Aceptación en Prosa

    • El agente debe recopilar datos desde múltiples fuentes (JIRA, Notion, Google Sheets).
    • Debe estructurar la información en un formato predefinido y visualmente claro.
    • Si detecta anomalías en los datos, debe alertar al usuario en lugar de generar el informe sin verificación.
    • El tiempo de generación no debe superar los 5 minutos.

Criterios de Aceptación en BDD

  • Escenario: Generación de reportes automatizados
    • Dado un conjunto de datos de proyectos activos
    • Cuando el agente ejecuta su proceso semanal
    • Entonces recopila la información desde las fuentes disponibles
    • Y genera un informe en el formato solicitado
    • Y alerta al usuario si detecta anomalías


Garantizando Historias de Usuario Pequeñas (≤36 horas hasta Preproducción)

Para garantizar que las historias de usuario sean pequeñas y manejables una buena práctica es que tomen menos de 36 horas desde que se realiza su análisis, se realiza su desarrollo, se ejecutan las pruebas y se hasta preproducción o el ambiente definido en la Definition of Done, para esto se sugiere  las siguientes estrategias:

  1. Definir historias con alcance limitado

    • Enfocarse en una funcionalidad específica dentro del sistema.
    • Evitar historias demasiado generales o con dependencias complejas.
  2. Validación rápida

    • Implementar pruebas automáticas con métricas de precisión.
    • Usar entornos de pruebas con datos reales desde el inicio.
  3. Integración sencilla

    • Aprovechar APIs existentes en lugar de construir modelos desde cero.
    • Definir entradas y salidas claras para reducir ajustes manuales.
  4. Despliegue incremental

    • Probar en entornos de staging antes de la implementación en producción.
    • Obtener feedback temprano de usuarios reales para ajustar modelos.

Ejemplo de Historia Pequeña y Ejecutable en ≤36 horas

Como editor de contenido,
quiero que la IA sugiera mejoras gramaticales en mi texto,
para mejorar la claridad sin cambiar el significado.

Criterios de Aceptación en Prosa

    • La IA debe detectar errores gramaticales sin modificar el estilo del usuario.
    • Las sugerencias deben incluir una explicación breve de cada corrección.
    • El tiempo de procesamiento debe ser menor a 2 segundos por párrafo.

Conclusión

Las historias de usuario bien escritas son clave para garantizar el éxito de proyectos de GenAI. Para lograrlo, debemos:

  • Definir claramente las entradas y salidas esperadas.
  • Escribir criterios de aceptación en prosa o en BDD.
  • Los agentes de IA pueden automatizar tareas repetitivas, pero requieren criterios de aceptación claros para garantizar su efectividad.
  • Diseñar historias pequeñas y ejecutables en menos de 36 horas, permitiendo iteraciones rápidas y mejoras continuas.
Siguiendo estos principios, las organizaciones pueden desarrollar soluciones de GenAI más efectivas, ágiles y centradas en el usuario.


Saludos ágiles,

Jorge Abad


Notas:

  1. En el ámbito de la inteligencia artificial y de la Inteligencia Artificial Generativa, existen un sinnumero de métricas para contextos y usos específicos tales como: F1score, Perplejidad (Perplexity - PPL),Exactitud BLEU (Bilingual Evaluation Understudy), ROUGE (Recall-Oriented Understudy for Gisting Evaluation), y un largo etcétera, por lo que se sugiere conocer estás metricas y hacer uso de ellas para garantizar coherencia y confiabilidad en los resultados.


martes, marzo 11, 2025

De lo Complejo a lo Simple: Cómo la IA Está Reinventando el Desarrollo de Software

Marco Cynefin

Hola a todos,

Hace unos días, hablando con mi compañero de trabajo, Roberto Moraga, surgió una reflexión interesante: el desarrollo de software ha pasado de ser un proceso altamente complejo a volverse más simple, en gran parte gracias a la inteligencia artificial. Sin embargo, si bien las herramientas han evolucionado, el mercado (usuarios, consumidores, empresas y negocios) sigue siendo dinámico, incierto y cada vez más complejo. Entender las necesidades y traducirlas en soluciones sigue siendo un desafío estratégico, que marcos como Scrum y metodologías como XP buscan reducir a la interacción con una sola voz.

Después de conversar un rato, llegamos a la misma conclusión: el software ya no se construye de la misma manera que antes. Scrum fue diseñado para gestionar la complejidad del desarrollo de software inicialmente, permitiendo a los equipos adaptarse de manera iterativa y generar soluciones en entornos de incertidumbre y luego su alcance se amplió hacia soliciones en entornos complejos, sin importar si incluían software o no. Sin embargo, hoy en día, el proceso software es mucho más predecible, gracias a la inteligencia artificial, las mejoras en los procesos han aumentado entre un 40% y un 60%, o incluso más, en la generación de código, la validación y la utilización del talento en los equipos.

Esto nos llevó a unas preguntas clave: ¿qué va a pasar con Scrum en el desarrollo de sofware? Si este se ha vuelto más automatizado y eficiente,  ¿Cómo afecta la IA a los marcos ágiles, metodologías ágiles?¿El escalamiento (es decir muchos equipos ágiles) seguirá igual o cambiará al emplear estas nueva tecnología?. Una aproximación para responder a estas preguntas, se plantearán en este artículo.


El desarrollo de software antes de la IA

El desarrollo de software siempre ha sido un ejercicio de lidiar con la complejidad. Antes de la llegada de la Inteligencia Artificial (IA) generativa, la construcción de software requería múltiples iteraciones, idas y venidas con el cliente, reuniones de refinamiento y planificación, pruebas constantes y ajustes sobre la marcha. Era un proceso artesanal en el que cada pieza de código debía encajar perfectamente en un entramado ya existente, con una complejidad que crecía exponencialmente con cada nueva funcionalidad.

Con la llegada de los marcos ágiles, esta complejidad se empezó a gestionar de manera más efectiva. En Scrum y XP por ejemplo, los equipos reducían la incertidumbre fragmentando el trabajo en historias de usuario pequeñas, cada una encapsulada dentro de un timebox de dos semanas (1). Por otro lado, Kanban ofrecía flujos de trabajo más cortos y continuos para optimizar la entrega (2). La clave estaba en la descomposición y la priorización: si algo no llegaba a desarrollarse, al menos lo más valioso ya estaba en producción.


¿Por qué el desarrollo de software es complejo?

El software no es solo líneas de código. Es una red interconectada de dependencias, reglas de negocio, infraestructura, bases de datos y lógica distribuida. Su complejidad crece con cada nueva funcionalidad porque:

  • La cantidad de código crece exponencialmente: Cada nueva línea interactúa con muchas otras, lo que hace que el sistema se vuelva más difícil de comprender y modificar (3).
  • Las dependencias se multiplican: Los sistemas modernos no son aplicaciones monolíticas; dependen de APIs, microservicios y plataformas en la nube (4).
  • Las reglas de negocio son cambiantes: Lo que hoy es válido, mañana puede cambiar por una nueva regulación, requerimiento de usuario o innovación del mercado.
  • Las expectativas de los usuarios evolucionan: Lo que antes tomaba meses ahora se espera en semanas o días.

Dave Snowden, con su marco Cynefin, nos dice que un problema puede estar en distintos dominios: simple, complicado, complejo o caótico (5). Durante décadas, el desarrollo de software ha habitado en la zona de lo complejo, donde la relación causa-efecto solo se entiende en retrospectiva, y donde la experimentación y la iteración eran la única forma de avanzar.


¿Cómo la IA ha simplificado el desarrollo de software?

La IA generativa está moviendo el desarrollo de software del espacio de lo complejo al de lo complicado e incluso a la frontera con lo simple. ¿Cómo?

  • Generación automática de código: Hoy en día, un desarrollador puede describir en lenguaje natural qué necesita y herramientas como Copilot o ChatGPT pueden generar código funcional en segundos (6).
  • Automatización de pruebas: La IA puede crear, ejecutar y ajustar pruebas unitarias y de integración sin intervención humana (7).
  • Refactorización asistida: Lo que antes requería semanas de análisis, hoy se puede hacer en minutos con IA sugiriendo mejoras y optimizando código (8).
  • Mayor velocidad en el desarrollo: Ahora es posible generar prototipos funcionales en horas, lo que antes tomaba semanas.

Esto ha cambiado radicalmente el flujo de trabajo. Antes, un equipo de desarrollo tenía que construir cada pieza de código manualmente y validarla en iteraciones cortas. Hoy, la IA permite automatizar gran parte de ese trabajo, transformando el proceso en algo más cercano a un modelo de entrega continua, donde Kanban empieza a ser una herramienta de gestión más efectiva que Scrum (9).


¿Qué pasa con el escalamiento?

El desarrollo de software no solo se ha vuelto más rápido con la IA, sino que también ha impactado la forma en que las organizaciones gestionan el escalamiento. Antes, uno de los mayores desafíos en la escalabilidad era la gestión de dependencias entre equipos: ¿Quién trabaja en qué? ¿Qué bloquea a quién? ¿Cuándo estará disponible una funcionalidad que otro equipo necesita?

Con ciclos de desarrollo más cortos gracias a la IA, los equipos están generando software a una velocidad nunca antes vista. Esto significa que los cuellos de botella ya no están en la escritura del código, sino en la coordinación entre equipos.

La nueva gestión de dependencias

Cuando la generación de código deja de ser un problema, la conversación cambia:

  • Los equipos hablarán más de dependencias y lo harán más rápido, porque llegarán a ellas en menos tiempo.
  • La gestión proactiva de dependencias es clave, porque ahora los bloqueos pueden detener desarrollos que, de otro modo, habrían estado listos en cuestión de horas.
  • Los gestores de flujo de trabajo (Scrum Masters, Agile Coaches, facilitadores) deberán anticipar y resolver estas dependencias con más rapidez que nunca.

Esto tendrá un impacto directo en los marcos de escalamiento ágiles como SAFe, LeSS, Nexus y Spotify Model. Tradicionalmente, estos marcos han tratado las dependencias con eventos de sincronización como el PI Planning (SAFe) o los eventos de coordinación en LeSS. Pero en un entorno donde los equipos avanzan más rápido, estas cadencias predefinidas pueden volverse insuficientes. Y es allí donde toma valor la gestión impecable de las dependencias, que es la forma como trabaja Amazon, que logra escalar sientos de equipos sin necesidad de eventos de coordinación.


Cerrando: De la complejidad a la simplicidad

El desarrollo de software ya no es un proceso 100% artesanal. Las historias de usuario siguen funcionando como método de comunicación con el cliente, pero la ejecución es más ágil que nunca. Algunas funcionalidades pueden construirse de manera casi instantánea, moviendo el desarrollo del espacio complejo al complicado, o incluso a lo simple, cuando la IA puede resolverlo sin intervención humana.

La IA ha cambiado el juego. Ahora, la clave no es escribir código más rápido, sino enforcarnos en en entender mejor el negocio y remover bloqueos con la misma o más velocidad que con la que producimos software.


Saludos ágiles,

Jorge Abad


Referencias

  1. Schwaber, Ken, and Jeff Sutherland. The Scrum Guide. Scrum.org, 2020.
  2. Anderson, David J. Kanban: Successful Evolutionary Change for Your Technology Business. Blue Hole Press, 2010.
  3. McConnell, Steve. Code Complete: A Practical Handbook of Software Construction. Microsoft Press, 2004.
  4. Lewis, James. Microservices: The Journey to Cloud Native. O'Reilly Media, 2019.
  5. Snowden, Dave. Cynefin: Weaving Sense-Making into the Fabric of Our World. Cognitive Edge, 2020.
  6. GitHub. "Introducing GitHub Copilot." GitHub Blog, 2021.
  7. Agile Alliance. "Dependency Management in Agile Teams." Agile Alliance, 2022.

 

martes, marzo 04, 2025

Las Historias de Usuario en la Era de la GenAI

Hola a todos, 

Las historias de usuario han sido el pilar de la gestión ágil de requisitos desde que fueron propuestas y popularizadas en Extreme Programming (XP) a finales de los noventas y usadas ampliamente con Scrum en las últimas dos décadas. Su sencillez y orientación al usuario las convirtieron en una herramienta fundamental para capturar necesidades y garantizar el alineamiento entre negocio y tecnología.

Sin embargo, la aparición de la inteligencia artificial generativa (GenAI) ha introducido nuevas dinámicas en la forma en que los equipos crean, refinan y priorizan estas historias. ¿Puede la IA escribir historias de usuario de manera efectiva? ¿Qué tan confiables son las historias generadas automáticamente? Y, lo más importante, ¿cómo cambia el papel del Product Owner (PO) en esta nueva realidad?

Este artículo explora cómo la GenAI está transformando la gestión de historias de usuario y qué desafíos y oportunidades representa para los equipos ágiles.


La esencia de las historias de usuario

A pesar de no tener un formato preestablecido(Abad, 2024), las historias de usuario siguen una estructura simple y poderosa:

Como [rol], quiero [acción], para que [beneficio].

Este formato fomenta la empatía con el usuario final y permite que los equipos se enfoquen en la entrega de valor. Sin embargo, escribir buenas historias de usuario que guíen el trabajo del equipo de desarrollo sigue siendo un desafío, ya que requiere claridad, alineación con los objetivos de negocio y criterios de aceptación bien definidos.

Las mejores prácticas en la redacción de historias de usuario incluyen:

  • Mantenerlas independientes y negociables (INVEST) (Cohn, 2004).
  • Garantizar las tres C: Card, Conversation, Confirmation (Jeffries, 2001).
  • Incluir criterios de aceptación claros.(Abad, 2025)
  • Enfocarse en el valor para el usuario, no en soluciones técnicas.

El impacto de la GenAI en las historias de usuario

Generación automática de historias de usuario

Las herramientas de IA generativa han revolucionado la manera en que se redactan historias de usuario en proyectos de desarrollo de software y productos digitales. Modelos avanzados como ChatGPT, GEMINI, Grok, Llama y Copilot tienen la capacidad de procesar grandes volúmenes de información, estructurar requisitos ambiguos y generar historias de usuario de manera rápida y precisa. Esto resulta particularmente útil en entornos ágiles, donde la velocidad y la adaptabilidad son fundamentales para mantener la cadencia de desarrollo y la alineación con las necesidades del negocio.

Los Large Language Models (LLM), entrenados en vastos conjuntos de datos que incluyen documentación técnica, metodologías ágiles y mejores prácticas en ingeniería de software, pueden generar historias de usuario a partir de simples descripciones proporcionadas por los equipos de desarrollo, producto o negocio. Con un solo prompt bien formulado, un LLM es capaz de analizar requerimientos previos, identificar patrones en historias de usuario existentes y producir nuevas historias en segundos, garantizando consistencia en el formato y alineación con los objetivos del proyecto.

Además de la generación rápida, estas herramientas permiten iteraciones y refinamientos en tiempo real, facilitando la incorporación de criterios de aceptación detallados, escenarios de prueba en Behavior-Driven Development (BDD) (North, 2009)e incluso recomendaciones para mejorar la claridad y el alcance de cada historia. Gracias a la integración con sistemas de gestión de productos y herramientas de colaboración como JIRA, Trello y Azure DevOps, las historias generadas pueden ser directamente revisadas, ajustadas y priorizadas dentro del backlog, reduciendo significativamente el tiempo y esfuerzo dedicados a esta tarea (Brown et al., 2020).

Veamos un ejemplo:

Requerimiento inicial:
"El sistema debe permitir a los usuarios descargar reportes en formato PDF y Excel con los datos de sus transacciones de los últimos seis meses."

 

Prompt:
Basado en el requerimiento: """El sistema debe permitir a los usuarios descargar reportes en formato PDF y Excel con los datos de sus transacciones de los últimos seis meses.""".

Elabora la historia de usuario correspondiente con criterios de aceptación en prosa, y luego presenta los criteros de aceptación usando el formato gherkin.


 Respuesta: 

Transformación en Historia de Usuario:

Como usuario del sistema financiero,

quiero descargar reportes de mis transacciones en formatos PDF y Excel,

para analizar mis gastos y movimientos bancarios con facilidad.

Criterios de Aceptación en Prosa:

      • El usuario debe poder seleccionar un rango de fechas dentro de los últimos seis meses.
      • El sistema debe generar el reporte en menos de 5 segundos.
      • Los datos en el reporte deben coincidir con los movimientos visibles en la interfaz.
      • El usuario debe poder elegir entre descargar el reporte en formato PDF o Excel.
      • Si no hay transacciones en el período seleccionado, el sistema debe notificar al usuario sin generar un archivo vacío.

Criterios de Aceptación en BDD:

Escenario 1: Generación exitosa de reporte  

      • Dado un usuario autenticado con transacciones en los últimos seis meses  
      • Cuando selecciona un rango de fechas y el formato de descarga  
      • Entonces el sistema genera un archivo en el formato seleccionado  
      • el contenido del reporte coincide con las transacciones en pantalla  
      • el tiempo de generación no supera los 5 segundos  

Escenario 2: Intento de generación sin transacciones  

      • Dado un usuario autenticado sin transacciones en el período seleccionado  
      • Cuando solicita la descarga del reporte  
      • Entonces el sistema muestra un mensaje indicando que no hay datos disponibles  
      • no genera un archivo vacío  


De historia de usuario a casos de prueba

La IA permite automatizar la conversión de historias de usuario en casos de prueba estructurados, reduciendo errores y mejorando la trazabilidad (Murphy et al., 2022).

Continuando con el ejemplo:

Prompt:

Para lo anterior, genera los casos de prueba

         Respuesta: 

1. Casos de Prueba Funcionales

Caso de Prueba 1: Generación exitosa de reporte en PDF

      • ID: CP_001
      • Descripción: Verificar que el sistema permite generar y descargar un reporte en formato PDF con las transacciones del usuario.
      • Precondiciones:
        • El usuario debe estar autenticado.
        • Debe haber transacciones en el rango de fechas seleccionado.
      • Pasos:
        1. Iniciar sesión en la plataforma.
        2. Ir a la sección de reportes.
        3. Seleccionar un rango de fechas con transacciones.
        4. Elegir formato de descarga PDF.
        5. Hacer clic en el botón "Descargar".
      • Resultado Esperado:
        • El sistema genera y descarga un archivo PDF con los datos de las transacciones seleccionadas en menos de 5 segundos.
        • El contenido del PDF debe coincidir con la información mostrada en la interfaz.

Caso de Prueba 2: Generación exitosa de reporte en Excel

      • ID: CP_002
      • Descripción: Verificar que el sistema permite generar y descargar un reporte en formato Excel con las transacciones del usuario.
      • Precondiciones:
        • El usuario debe estar autenticado.
        • Debe haber transacciones en el rango de fechas seleccionado.
      • Pasos:
        1. Iniciar sesión en la plataforma.
        2. Ir a la sección de reportes.
        3. Seleccionar un rango de fechas con transacciones.
        4. Elegir formato de descarga Excel.
        5. Hacer clic en el botón "Descargar".
      • Resultado Esperado:
        • El sistema genera y descarga un archivo Excel con los datos de las transacciones seleccionadas en menos de 5 segundos.
        • El contenido del archivo debe coincidir con la información mostrada en la interfaz.

Caso de Prueba 3: Intento de descarga sin transacciones disponibles

      • ID: CP_003
      • Descripción: Validar que el sistema no genera un archivo vacío cuando no hay transacciones en el período seleccionado.
      • Precondiciones:
        • El usuario debe estar autenticado.
        • No debe haber transacciones en el rango de fechas seleccionado.
      • Pasos:
        1. Iniciar sesión en la plataforma.
        2. Ir a la sección de reportes.
        3. Seleccionar un rango de fechas sin transacciones.
        4. Elegir cualquier formato de descarga (PDF o Excel).
        5. Hacer clic en el botón "Descargar".
      • Resultado Esperado:
        • El sistema muestra un mensaje: "No hay transacciones en el período seleccionado".
        • No se genera ningún archivo de descarga.

Caso de Prueba 4: Verificación de tiempos de generación

      • ID: CP_004
      • Descripción: Asegurar que la generación del reporte no supere los 5 segundos.
      • Precondiciones:
        • El usuario debe estar autenticado.
        • Debe haber transacciones en el rango de fechas seleccionado.
      • Pasos:
        1. Iniciar sesión en la plataforma.
        2. Ir a la sección de reportes.
        3. Seleccionar un rango de fechas con transacciones.
        4. Elegir cualquier formato de descarga (PDF o Excel).
        5. Iniciar la medición del tiempo.
        6. Hacer clic en el botón "Descargar".
        7. Detener la medición cuando el archivo esté disponible.
      • Resultado Esperado:
        • El tiempo total de generación y descarga no debe superar los 5 segundos.

2. Casos de Prueba de Seguridad

Caso de Prueba 5: Acceso no autorizado a reportes

      • ID: CP_005
      • Descripción: Asegurar que un usuario no autenticado no pueda descargar reportes.
      • Precondiciones:
        • Usuario no autenticado en el sistema.
      • Pasos:
        1. Intentar acceder directamente a la URL de generación de reportes.
        2. Intentar descargar un reporte sin iniciar sesión.
      • Resultado Esperado:
        • El sistema redirige al usuario a la página de inicio de sesión.
        • No permite la descarga del reporte.

Caso de Prueba 6: Descarga de reportes de otro usuario

      • ID: CP_006
      • Descripción: Asegurar que un usuario no pueda descargar reportes de otro usuario.
      • Precondiciones:
        • Usuario autenticado en el sistema con permisos limitados.
      • Pasos:
        1. Intentar modificar la URL de descarga para acceder al reporte de otro usuario.
        2. Intentar forzar la descarga cambiando parámetros en la solicitud.
      • Resultado Esperado:
        • El sistema debe denegar la solicitud con un mensaje de error: "Acceso no autorizado".

3. Casos de Prueba de Integración

Caso de Prueba 7: Integración con sistema de almacenamiento en la nube

      • ID: CP_007
      • Descripción: Validar que los reportes puedan almacenarse automáticamente en la nube si el usuario lo selecciona.
      • Precondiciones:
        • El usuario debe haber activado la opción "Guardar en la nube".
      • Pasos:
        1. Seleccionar rango de fechas y formato de descarga.
        2. Marcar la opción "Guardar en la nube".
        3. Hacer clic en "Descargar".
      • Resultado Esperado:
        • El sistema genera el reporte y lo sube automáticamente al almacenamiento en la nube del usuario.
        • Aparece un mensaje confirmando la acción.

4. Casos de Prueba de Usabilidad

Caso de Prueba 8: Verificación de claridad en los reportes

      • ID: CP_008
      • Descripción: Evaluar la facilidad de lectura y comprensión de los reportes generados.
      • Precondiciones:
        • Usuario autenticado.
        • Transacciones disponibles en el período seleccionado.
      • Pasos:
        1. Descargar el reporte en PDF y en Excel.
        2. Revisar la estructura, organización y claridad del contenido.
      • Resultado Esperado:
        • Los datos están organizados en tablas claras.
        • Los encabezados y etiquetas son descriptivos.


El Papel de los Agentes de IA en la Automatización del Desarrollo de Software

Los agentes de IA están revolucionando la forma en que los equipos de desarrollo y UX trabajan juntos, automatizando tareas clave en la planificación, diseño, implementación y pruebas de software. Estos agentes pueden escribir o recibir historias de usuario y generar bocetos de interfaz, estructurando automáticamente la disposición de los elementos visuales según las mejores prácticas de usabilidad. Gracias a su capacidad para analizar patrones en grandes volúmenes de datos de diseño, pueden sugerir componentes reutilizables, mejorar la accesibilidad y garantizar estructuras coherentes con la identidad visual de la empresa.

Además de la planificación y el diseño, los agentes de IA han comenzado a generar software funcional preliminar, tomando como base historias de usuario bien definidas con criterios de aceptación claros. A partir de una descripción funcional, la IA puede producir código inicial estructurado, con implementación de lógica básica y validaciones esenciales. Si bien este proceso aún está en evolución, ya es posible que un agente de IA genere microservicios, funciones backend, interfaces frontend e integraciones simples con bases de datos en cuestión de minutos.

En la arquitectura de software, estos agentes pueden identificar tecnologías adecuadas según los requisitos funcionales y no funcionales de la aplicación. Sus propuestas incluyen diagramas preliminares de componentes, selección de patrones de diseño y recomendaciones sobre escalabilidad, seguridad y mantenimiento. Al integrarse con herramientas como PlantUML o Draw.io, la IA puede producir esquemas técnicos que sirven como base para la validación por parte del equipo de arquitectura antes de la implementación.

En el ámbito de la planificación funcional, los agentes de IA pueden generar documentos preliminares detallados con flujos de trabajo, validaciones de negocio y escenarios de uso basados en la historia de usuario original. Estos documentos incluyen descripciones de estados, reglas de validación de datos y excepciones que el sistema debe manejar, permitiendo que los equipos de producto visualicen el comportamiento esperado de la funcionalidad antes de escribir una sola línea de código.

Uno de los avances más prometedores es la capacidad de la IA para crear software funcional en tiempo real, complementado con casos de prueba automatizados. A partir de los criterios de aceptación definidos en la historia de usuario, el agente puede generar un conjunto completo de pruebas funcionales, de integración y de regresión. Si el equipo trabaja con frameworks como Selenium, Cypress o JUnit, la IA puede convertir automáticamente estos casos de prueba en scripts ejecutables, garantizando que el código generado cumpla con los requisitos antes de su integración en la solución final.

Hacia un Desarrollo Autónomo con Agentes de IA

El futuro cercano apunta hacia una automatización aún más profunda, donde un agente de IA podrá recibir una historia de usuario y, en cuestión de minutos, entregar un módulo funcional listo para ser validado y ajustado por un desarrollador. Este proceso incluirá no solo el desarrollo del código, sino también:

  1. Pruebas automatizadas generadas y ejecutadas de inmediato.
  2. Validación de calidad basada en métricas predefinidas.
  3. Despliegue en un ambiente seleccionado para pruebas o integración.

Este enfoque permitirá que los desarrolladores pasen de ser constructores manuales de código a supervisores y optimizadores de soluciones generadas por IA. Aunque actualmente estas capacidades están en evolución, ya existen modelos avanzados que generan código funcional con estructuras bien definidas y pruebas incluidas, reduciendo significativamente los tiempos de desarrollo.

Impacto en la Productividad y Colaboración

Al integrar estos agentes de IA en el ciclo de desarrollo, los equipos de UX y desarrollo pueden colaborar de manera más eficiente, reduciendo la ambigüedad en los requerimientos y minimizando el tiempo de iteración en la construcción del producto. Esto permite que los desarrolladores se concentren en optimizar la funcionalidad y corregir detalles específicos en lugar de escribir código desde cero.

En un futuro no muy lejano, podríamos estar ante un modelo de desarrollo donde una simple historia de usuario bien redactada desencadene, de manera automatizada, el diseño, el desarrollo, la generación de pruebas y el despliegue en el ambiente adecuado, acortando drásticamente los tiempos de entrega y permitiendo ciclos de retroalimentación más rápidos.

Entrega de historias a agentes de IA

Los agentes de IA están transformando la forma en que los equipos de desarrollo y UX trabajan juntos, automatizando tareas clave en la planificación, diseño y pruebas de software. Estos agentes pueden escribir o recibir historias de usuario, y generar bocetos de interfaz, estructurando automáticamente la disposición de los elementos visuales según las mejores prácticas de usabilidad. Gracias a su capacidad para analizar patrones en grandes volúmenes de datos de diseño, pueden sugerir componentes reutilizables, accesibilidad optimizada y estructuras coherentes con el branding de la empresa.

Además, los agentes de IA pueden generar propuestas de arquitectura de software, identificando las tecnologías más adecuadas en función de los requisitos funcionales y no funcionales de la aplicación. Estas propuestas incluyen diagramas preliminares de componentes, selección de patrones de diseño y recomendaciones sobre escalabilidad, seguridad y mantenimiento. Al integrarse con herramientas como PlantUML o Draw.io, la IA puede producir diagramas técnicos que sirven como punto de partida para la validación del equipo de arquitectura.

En el ámbito de la planificación funcional, los agentes pueden generar documentos preliminares detallados con flujos de trabajo, validaciones de negocio y escenarios de uso basados en la historia de usuario original. Estos documentos pueden incluir descripciones de estados, reglas de validación de datos y excepciones que el sistema debe manejar. Así, los equipos de producto pueden visualizar el comportamiento esperado de la funcionalidad antes de escribir una sola línea de código.

Otro aspecto clave es la capacidad de la IA para crear y automatizar casos de prueba. A partir de los criterios de aceptación definidos en la historia de usuario, el agente puede generar un conjunto completo de pruebas funcionales, de integración y de regresión. Además, si el equipo trabaja con frameworks como Selenium, Cypress o JUnit, la IA puede convertir automáticamente los casos de prueba manuales en scripts listos para ejecutarse, reduciendo el esfuerzo en la automatización de pruebas. Esto no solo acelera el ciclo de desarrollo, sino que también garantiza una mayor cobertura y calidad del software antes de su despliegue.

Al integrar agentes de IA en estos procesos, los equipos de UX y desarrollo pueden colaborar de manera más eficiente, evitando ambigüedades y reduciendo tiempos de iteración en la construcción del producto. Esto permite que los desarrolladores se concentren en la implementación de funcionalidades mientras la IA se encarga de optimizar el flujo de trabajo, mejorando así la velocidad y calidad del desarrollo.


La IA en la Partición y Priorización de Historias de Usuario

Uno de los mayores retos en la gestión de historias de usuario es dividirlas adecuadamente sin perder valor. Una historia de usuario demasiado grande puede ralentizar el flujo de trabajo y dificultar su entrega en iteraciones cortas, mientras que una historia demasiado pequeña puede generar fragmentación innecesaria. Aquí es donde la IA ofrece ventajas significativas, ayudando a equipos ágiles a optimizar la entrega de valor.


Descomposición Asistida por IA

La inteligencia artificial puede analizar historias de usuario grandes y sugerir particiones lógicas basadas en patrones previos y heurísticas ágiles (Fowler, 2019). Gracias a modelos de procesamiento de lenguaje natural (NLP), la IA puede:

  • Identificar subtareas dentro de una historia grande.
  • Recomendar divisiones siguiendo criterios de INVEST (Independiente, Negociable, Valiosa, Estimable, Pequeña y Testeable).
  • Adaptar la descomposición en función de la capacidad del equipo y las dependencias entre historias.
  • Sugerir fragmentos reutilizables para acelerar el desarrollo de funcionalidades similares en el futuro.

En la práctica, la IA puede recibir una historia de usuario compleja y generar automáticamente versiones más manejables sin perder la coherencia del valor de negocio.


Ejemplo de Partición de Historia de Usuario Usando GenAI

Historia de Usuario Original (Muy Grande)

Como usuario de una plataforma de e-commerce,

quiero realizar pagos con tarjeta de crédito y recibir confirmación automática,

para completar mis compras sin errores y con seguridad.

Sugerencias de Partición Generadas por GenAI

Historia 1: Integración con Pasarela de Pago

Como usuario,

quiero ingresar los datos de mi tarjeta y procesar el pago,

para completar mi compra de manera segura.

Criterios de Aceptación:

    • El sistema debe validar los datos de la tarjeta antes de procesar el pago.
    • El pago debe realizarse en menos de 3 segundos.
    • Se deben manejar errores como tarjeta rechazada o fondos insuficientes.

Historia 2: Confirmación de Pago

Como usuario,

quiero recibir una notificación de confirmación tras completar el pago,

para saber que mi compra se ha realizado correctamente.

Criterios de Aceptación:

    • El sistema debe enviar un correo y una notificación en la app tras la transacción.
    • El mensaje debe incluir detalles como monto, productos comprados y número de orden.
    • En caso de pago rechazado, la notificación debe indicar el motivo y posibles soluciones.

Historia 3: Historial de Pagos

Como usuario,

quiero consultar el historial de mis transacciones dentro de la plataforma,

para tener un registro de mis compras anteriores.

Criterios de Aceptación:

    • El sistema debe mostrar una lista de transacciones con fecha, monto y estado.
    • Debe permitir filtrar por rango de fechas y métodos de pago.
    • La información debe actualizarse en tiempo real tras cada transacción.


Beneficios de Usar IA en la Partición de Historias

  • Se mantienen historias pequeñas y manejables, asegurando su entrega en iteraciones cortas.
  • Se optimiza el flujo de trabajo, evitando bloqueos y dependencias innecesarias.
  • Se asegura que cada historia agregue valor real al usuario, sin fragmentar la experiencia.
  • Se mejora la predicción de tiempos de desarrollo, facilitando la planificación del sprint.

Priorización Inteligente

Los modelos de GenAI pueden analizar datos históricos de velocidad del equipo, dependencias entre historias y métricas de impacto para sugerir un backlog optimizado (Leffingwell, 2020). Algunos de los beneficios de este enfoque incluyen:

  • Predicción de tiempos de entrega basados en historias similares completadas previamente.
  • Priorización según impacto en los objetivos de negocio.
  • Identificación de cuellos de botella y dependencias técnicas antes de iniciar el desarrollo.
  • Sugerencias sobre cuáles historias deberían abordarse primero para reducir riesgos.

Este enfoque permite optimizar la gestión del flujo de trabajo, asegurando que los equipos trabajen en las historias más importantes en el momento adecuado.


El Product Owner Sigue al Mando

A pesar de estos avances, la IA no reemplaza la responsabilidad del Product Owner (PO). Este sigue siendo quien debe:

  • Leer, entender y validar las historias de usuario.
  • Ordenar el backlog en función de la estrategia del negocio.
  • Asegurar que las historias descompuestas mantengan su valor e independencia.
  • Trabajar en conjunto con el equipo para tomar decisiones finales sobre la implementación.

La IA funciona como un asistente inteligente, proporcionando información y recomendaciones, pero la última palabra sigue en manos del PO y el equipo de desarrollo.


Una mejora indiscutible en la eficiencia y unas advertencias

La GenAI puede hacer -actualmente -  a los equipos hasta un 40% más efectivos en la gestión de historias de usuario (McKinsey, 2023). Sin embargo, esto no exime a los equipos de la responsabilidad de comprender qué se está pidiendo ni de evitar la generación de desperdicio.

Para maximizar el valor de la IA en este contexto, los equipos deben:

  • Usar la IA como asistente, pero validar siempre sus resultados.
  • Mantener la creatividad y el pensamiento crítico en la escritura de historias.
  • Evitar la dependencia excesiva de la IA para evitar historias sin contexto o mal estructuradas.

Cerrando

La IA ha llegado para quedarse en la gestión de historias de usuario. Desde la generación automática hasta la conversión en casos de prueba y la priorización basada en datos, la GenAI es una herramienta poderosa. Sin embargo, su éxito depende de cómo los equipos la adopten y combinen sus capacidades con el juicio humano.

El futuro de las historias de usuario en la era de la GenAI es prometedor: una colaboración cada vez más estrecha entre humanos e inteligencia artificial, donde la automatización potencia la creatividad y la eficiencia, sin reemplazar el papel fundamental de los equipos ágiles.


Saludos ágiles,

Jorge Abad.

Referencias

  1. Abad, J (2024) De Colección: Ejemplos de Historias de Usuario de la Fuente: Los Libros de Extreme Programming (XP)
  2. Abad, J (2025). Guía para identificar mejores criterios de aceptación en historias de usuario
  3. Brown, T. et al. (2020). Language Models are Few-Shot Learners. OpenAI.
  4. Cohn, M. (2004). User Stories Applied: For Agile Software Development. Addison-Wesley.
  5. Fowler, M. (2019). Refactoring: Improving the Design of Existing Code. Addison-Wesley.
  6. Jeffries, R (2001). Essential XP: Card, Conversation, Confirmation
  7. Leffingwell, D. (2020). SAFe 5.0 for Lean Enterprises. Scaled Agile Inc.
  8. McKinsey & Company (2023). The State of AI in Agile Development.
  9. Murphy, G. et al. (2022). AI-Driven Software Testing: Trends and Challenges. IEEE Software.
  10. North, D. (2009). Introducing BDD.