Mostrando las entradas con la etiqueta User stories. Mostrar todas las entradas
Mostrando las entradas con la etiqueta User stories. Mostrar todas las entradas

lunes, marzo 17, 2025

Los formatos de las historias de usuario: más allá de los estándares populares

Hola a todos,

En el mundo ágil, a menudo se cree que las historias de usuario deben seguir un formato único y establecido. Sin embargo, la realidad es que no hay un solo formato universalmente correcto. La propuesta inicial era una petición de máximo un renglón (1). Nunca ha habido un formato oficial, lo que si ha existido, son propuestas muy usadas. La forma más clásica y ampliamente adoptada, es la propuesta por Rachel Davies y popularizada por Mike Cohn (2), se centra en quién usa el sistema, qué quiere lograr y por qué es importante:

  • "Como <rol>
  • quiero <acción o funcionalidad>
  • para <beneficio de negocio>".

Ejemplos:

  • Como comprador en línea, quiero poder filtrar productos por precio, para encontrar opciones dentro de mi presupuesto más rápidamente.
  • Como gerente de recursos humanos, quiero recibir notificaciones cuando un nuevo empleado complete su documentación, para agilizar el proceso de incorporación.
  • Como usuario de la aplicación de transporte, quiero poder calificar mi viaje después de llegar a mi destino, para mejorar la calidad del servicio.

¿Cuándo usarlo?

  • Cuando se necesita claridad en el propósito de la historia.
  • Para equipos nuevos en metodologías ágiles que aún están aprendiendo a formular historias de usuario.

Otro muy popular es el propuesto por  Barry O'Reilly y conocido como Hypothesis Driven Development (desarrollo dirigido por hipotesis) (3):

  • "Creemos que <hacer este cambio funcionalidad>
  • resultará en <impacto medible>
  • sabremos que habrá sucedido cuando <observemos este señal medible>",
o una versión mejorada y sugerida, que ayuda a identificar la población con la que se realizará el experimento:

  • "Creemos que <hacer este cambio funcionalidad>
  • para <este grupo de usuarios>,
  • resultará en/no impactará / impactará / aumentará/reducirá <impacto medible>
  • sabremos que habrá sucedido cuando <observemos este señal medible>"
  • en/durante  <una fecha determinada>,

Ejemplos:

  • Creemos que permitir a los usuarios registrarse con su cuenta de Google, para nuevos visitantes del sitio web, resultará en un aumento de la tasa de registros en un 20% en dos semanas. Lo sabremos cuando la métrica de conversión pase de 25% a 45% en un tiempo máximo de 3 meses después de salir a producción.
  • Creemos que ofrecer una opción de “modo oscuro” en nuestra aplicación, para usuarios frecuentes, resultará en una mejora en la retención semanal en un 10%. Lo sabremos cuando la retención W1-W2 pase de 30% a 33% en  dos semanas luego del lanzamiento oficial.
  • Creemos que aumentar el precio mensual de $10 a $12, para usuarios que han estado más de 3 meses suscritos, no impactará negativamente la tasa de renovación. Lo sabremos si la tasa de cancelación se mantiene bajo el 5%, durante el mes próximo del lanzamiento del cambio.
  • Creemos que permitir ordenar los resultados por “más vendidos” para compradores indecisos, aumentará la conversión en un 15%. Lo sabremos si la tasa de clics en productos y las compras en esa categoría aumentan en ese porcentaje, en las próximas 4 semanas después del lanzamiento.

¿Cuándo usarlo?

  • Estás creando un producto nuevo o una funcionalidad no probada.
  • Hay mucha incertidumbre sobre el valor o la necesidad de lo que estás construyendo.
  • Quieres reducir el riesgo de desarrollar algo que nadie usará.
  • Tu organización valora el aprendizaje y la mejora continua.
  • Estás en fases tempranas de descubrimiento o validación de mercado.

Las historias de usuario son un arte tanto como una técnica, y deben adaptarse a las necesidades específicas de cada organización, equipo y contexto. Lo esencial es que cumplan su propósito: capturar la necesidad de negocio desde la perspectiva del usuario, servir como una invitación a la conversación y permitir la colaboración para entregar valor incremental. 

En este artículo exploraré varios formatos alternativos de historias de usuario que pueden resultar útiles en contextos diversos. Si bien en el libro de historias de usuario (4) y en este blog (5) ya habíamos analizado distintos modos de representación según la madurez del equipo, el nivel de regulación o la cultura organizacional en la que operan, en esta ocasión ampliaré la mirada hacia otras plantillas que también pueden ser efectivas y adaptables.

Avancemos entonces, y descubramos juntos estas nuevas propuestas.

Nota importante: las plantillas sugeridas, requieren de seguir cumpliendo la buena práctica de las 3C, cumplir con INVEST, e incluir criterios de aceptación, que se han enumerado bastantes veces en esta blog.


Algunos formatos sugeridos y sus posibles usos

1. El formato centrado en el problema: "Cuando – Entonces - Porque"

Este formato enfatiza el contexto y la causa raíz del problema que la historia intenta resolver.


Estructura:

  • Cuando:[situación]
  • Entonces: [acción]
  • Porque: [motivación]


Ejemplos:

  • Cuando el usuario agregue productos al carrito y cierre sesión sin comprarlos, entonces le enviaremos un recordatorio por correo electrónico, porque queremos aumentar la conversión de ventas.
  • Cuando un usuario ingrese una contraseña incorrecta más de tres veces, entonces bloquearemos su cuenta temporalmente, porque queremos prevenir accesos no autorizados.
  • Cuando el sistema de facturación detecte una inconsistencia en el número de documento del cliente, entonces alertaremos al equipo de soporte, porque queremos reducir los errores en la generación de facturas.

¿Cuándo usarlo?

  • Cuando el equipo esté enfocado en resolver problemas específicos del usuario.
  • En entornos donde se requiere justificar cada funcionalidad con un problema de negocio claro.

2. El formato inspirado en el comportamiento de BDD (Behavior Driven Development) (6): "Dado que – Cuando – Entonces"

Muy útil en historias de usuario que son de eventos o cuando se necesita precisión en cómo se comportará una funcionalidad. Se sugiere que sus criterios de aceptación sean en prosa.

Estructura:

  • Dado que: [contexto], 
  • Cuando: [acción],
  • Entonces: [resultado]

Ejemplos:

  • Dado que un usuario ha ingresado una dirección de correo electrónico no verificada, cuando intente iniciar sesión, entonces se le pedirá que confirme su correo antes de continuar.
  • Dado que un pago con tarjeta puede fallar por diversos motivos, cuando el intento de pago falle, entonces el sistema debe mostrar el mensaje adecuado según el código de error del proveedor de pagos.
  • Dado que el usuario puede realizar múltiples solicitudes de soporte, cuando una solicitud sea resuelta, entonces se enviará una encuesta de satisfacción al usuario.

¿Cuándo usarlo?

  • Para historias con criterios de aceptación claros.
  • En historias de usuario que están indicando eventos en el sistema.
  • En desarrollo de software donde las reglas de negocio son críticas.

3. El formato “Necesidad – Solución – Valor”

Este formato es ideal cuando se quiere conectar claramente el problema, la propuesta y el beneficio entregado.

Estructura:

  • Necesidad: [Qué se necesita].
  • Solución: [Qué se propone].
  • Valor: [Qué se gana].

Ejemplos:

  • Necesidad: Los usuarios necesitan hacer seguimiento de sus gastos mensuales.
    Solución: El sistema ofrece un panel con gráficos de gasto por categoría.
    Valor: Los usuarios pueden tomar decisiones financieras informadas.

  • Necesidad: Los vendedores necesitan saber qué clientes tienen más potencial.
    Solución: Algoritmo de puntuación basado en historial de compras.
    Valor: Mejora la eficiencia comercial y priorización de esfuerzos.

  • Necesidad: El área legal necesita acceder rápidamente a contratos archivados.
    Solución: Búsqueda avanzada con filtros por fecha, cliente y tipo.
    Valor: Ahorro de tiempo y reducción de errores administrativos.

¿Cuándo usarlo?

  • Cuando se busca justificar una funcionalidad ante stakeholders.
  • En roadmaps donde se prioriza por impacto en negocio.


4. El formato “Evento – Respuesta – Valor”

Este formato ayuda a detallar cómo el sistema debe comportarse ante eventos específicos.

Estructura:

  • Evento: [Qué lo desencadena].
  • Respuesta: [Qué hace el sistema].
  • Valor: [Por qué esto es útil].

Ejemplos:

  • Evento: Un usuario introduce credenciales erróneas tres veces.
    Respuesta: El sistema bloquea temporalmente la cuenta y envía una alerta.
    Valor: Protección contra accesos no autorizados.

  • Evento: Se confirma el pago de una factura.
    Respuesta: Se actualiza automáticamente el estado en el ERP.
    Valor: Reducción de tareas manuales y errores contables.

  • Evento: Se detecta una caída en el rendimiento del sistema.
    Respuesta: Se dispara una alerta al equipo de DevOps.
    Valor: Reacción temprana ante posibles incidentes críticos.

¿Cuándo usarlo?

  • En sistemas reactivos o eventos disparadores.
  • En plataformas con necesidad de respuestas automáticas ante condiciones de negocio.

5. Historias de usuario con “Job Stories”

Las Job Stories se centran en la situación, la motivación y el resultado, dejando de lado el “rol”.

Estructura:

  • Cuando [situación], 
  • quiero [motivación], 
  • para que [resultado esperado].

Ejemplos:

  • Cuando estoy fuera de la oficina, quiero aprobar facturas desde el móvil, para que los pagos no se retrasen.
  • Cuando tengo poco tiempo, quiero ver un resumen de métricas clave, para tomar decisiones rápidamente.
  • Cuando recibo muchas notificaciones, quiero filtrarlas por prioridad, para enfocarme en lo más importante.

    ¿Cuándo usarlo?

    • En entornos donde el contexto de uso es más importante que el rol.
    • En descubrimiento de producto centrado en comportamiento del usuario.


      6. El formato “Sentimiento – Necesidad – Solución – Beneficiario

      Este formato incorpora la emoción inicial, que es clave en diseño centrado en el usuario.

      Estructura:

      • Sentimiento: [Cómo se siente el usuario].
      • Necesidad: [Qué requiere].
      • Solución: [Qué se le ofrece]
      • Beneficiario: [Personas que se benifician de la solución, no siempre es el usuario que hace clic, en ocasiones podrá ser alguien del backend, o cliente interno de la solución"

      Ejemplos:

      • Sentimiento: Frustrado por la lentitud del proceso de pago.
      • Necesidad: Un checkout más ágil.
      • Solución: Pago con un solo clic.
      • Beneficiario: usuario comprador
      • Sentimiento: Inseguro sobre la calidad de un producto.
      • Necesidad: Opiniones de otros compradores.
      • Solución: Mostrar reseñas verificadas.
      • Beneficiario: comprador de la tienda

      • Sentimiento: Ansioso por confirmar la reserva de su vuelo.
      • Necesidad: Verificación inmediata.
      • Solución: Correo con QR y confirmación automática.
      • Beneficiario: viajero de la aerolínea

        ¿Cuándo usarlo?

        • En diseño de experiencia de usuario (UX).
        • Cuando se desea empatizar con el dolor del usuario.


          7. El formato “Deseo – Acción – Satisfacción”

          Este formato está inspirado en la motivación humana: qué desea, qué hace, qué obtiene.

          Estructura:

          • Deseo: [Qué quiere].
          • Acción: [Qué hace].
          • Satisfacción: [Qué logra].

          Ejemplos:

          • Deseo: Sentirme seguro al comprar en línea.
            Acción: Uso un método de pago confiable.
            Satisfacción: Compro con tranquilidad.

          • Deseo: Ser productivo durante reuniones.
            Acción: Tomo notas con ayuda de una IA.
            Satisfacción: Puedo revisar y compartir de forma eficiente.

          • Deseo: Encontrar el mejor producto sin perder tiempo.
            Acción: Uso un comparador de productos.
            Satisfacción: Elijo lo mejor según mis necesidades.

          ¿Cuándo usarlo?

          • En productos con fuerte componente emocional.
          • Cuando se quiere visualizar claramente la satisfacción del usuario como resultado.


            8. El formato “Contexto – Sentimiento – Acción – Resultado – Emoción”

            Una evolución del clásico formato de flujo, que introduce las emociones como parte esencial de la historia.

            Estructura:

            • Contexto: [Situación].
            • Sentimiento: [Emoción inicial].
            • Acción: [Qué hace].
            • Resultado: [Qué obtiene].
            • Emoción final: [Qué siente después].

            Ejemplos:

            • Contexto: El usuario está haciendo una compra online.
              Sentimiento: Se siente abrumado por tantas opciones.
              Acción: Usa la función de comparación de productos.
              Resultado: Ve una tabla clara de diferencias.
              Emoción: Se siente aliviado y confiado al elegir.

            • Contexto: El colaborador quiere pedir vacaciones.
              Sentimiento: Está confundido por el proceso.
              Acción: Utiliza un asistente paso a paso.
              Resultado: Solicita fácilmente sus días.
              Emoción: Se siente tranquilo y comprendido.

            • Contexto: El usuario busca soporte técnico.
              Sentimiento: Está frustrado por un error recurrente.
              Acción: Usa el chatbot para resolver el problema.
              Resultado: El problema se soluciona en 2 minutos.
              Emoción: Siente satisfacción y fidelidad con el servicio.

            ¿Cuándo usarlo?

            • En productos orientados a experiencia y emoción del usuario.
            • Para lograr empatía en equipos multidisciplinarios.

            9. El formato “Regla de Negocio – Comportamiento – Resultado Esperado”

            Este formato es útil cuando se requiere modelar decisiones automáticas del sistema basadas en reglas de negocio bien definidas. Aporta precisión y trazabilidad en entornos donde las políticas o condiciones deben cumplirse de manera estricta.**

            Estructura:

            • Regla: [Condición o política de negocio].
            • Comportamiento: [Qué debe hacer el sistema].
            • Resultado esperado: [Qué debe pasar].

            Ejemplos:

            • Regla: Si el cliente tiene más de 3 meses de mora.
            • Comportamiento: Bloquear automáticamente nuevos créditos.
            • Resultado esperado: Se genera una alerta y se deniega la solicitud.
            • Regla: Si la fecha de vencimiento del contrato está próxima a 15 días.
            • Comportamiento: Enviar notificación automática al responsable.
            • Resultado esperado: El contrato es renovado a tiempo o gestionado oportunamente.
            • Regla: Si un pedido contiene productos de más de un proveedor.
            • Comportamiento: Separar el pedido en órdenes independientes por proveedor.
            • Resultado esperado: Cada proveedor recibe la orden correspondiente sin errores de reparto.

            ¿Cuándo usarlo?

            • En funcionalidades que dependen de reglas de negocio bien definidas.
            • En contextos donde se busca automatizar decisiones basadas en políticas.
            • Para equipos que trabajan con lógica condicional, procesos de backoffice o gestión de riesgos.

            Comparativo de formatos de historias de usuario

            Formato Estructura Ventaja principal ¿Cuándo usarlo?
            Formato clásico Como <rol>, quiero <acción>, para <beneficio> Claridad de propósito Para equipos nuevos o cuando se necesita claridad en el valor entregado
            Desarrollo dirigido por hipótesis (HDD) Creemos que <acción>, para <grupo>, resultará en <impacto>. Lo sabremos cuando <métrica> cambie, en <cuándo deberá suceder>     Fomenta validación y aprendizaje Innovaciones, funcionalidades nuevas o inciertas
            Cuando – Entonces – Porque Cuando <situación>, entonces <acción>, porque <motivación> Explora la causa raíz del problema Problemas específicos con justificación de negocio clara
            Dado – Cuando – Entonces (BDD) Dado que <contexto>, cuando <acción>, entonces <resultado> Claridad para escenarios de negocio Eventos del sistema y reglas de negocio críticas
            Necesidad – Solución – Valor Necesidad: <qué se necesita>. Solución: <qué se propone>. Valor: <qué se gana> Conecta problema, solución y beneficio Justificación de funcionalidades ante stakeholders
            Evento – Respuesta – Valor Evento: <detonante>. Respuesta: <comportamiento>. Valor: <impacto> Describe reacciones automáticas Sistemas reactivos, seguridad o monitoreo
            Job Stories Cuando <situación>, quiero <motivación>, para que <resultado> Contextualiza más allá del rol Descubrimiento de producto y uso real
            Sentimiento – Necesidad – Solución – Beneficiario Sentimiento: <emoción>. Necesidad: <problema>. Solución: <respuesta>. Beneficiario: <quién gana> Conecta emoción con impacto Diseño UX, experiencias empáticas
            Deseo – Acción – Satisfacción Deseo: <meta>. Acción: <interacción>. Satisfacción: <resultado> Modelo motivacional claro Funcionalidades que buscan generar confianza y bienestar
            Contexto – Sentimiento – Acción – Resultado – Emoción Contexto > Sentimiento > Acción > Resultado > Emoción Incluye la emoción antes y después Historias centradas en experiencia completa del usuario
            Regla de Negocio – Comportamiento – Resultado Esperado Regla: <condición de negocio>. Comportamiento: <acción del sistema>. Resultado esperado: <efecto> Precisión en decisiones de negocio Funcionalidades que reflejan reglas o políticas específicas


            Evalúa constantemente la utilidad del formato

            No te cases con un solo formato. Si descubres que una plantilla no está funcionando para tu equipo o para un contexto de la funcionalidad del producto, ajusta el enfoque, ¡Simple!.

            Ejemplo de una retro de historias de usuario

            Preguntas a responder:

              •  ¿Las historias son claras y entendibles para todos los miembros del equipo?
              •  ¿Los criterios de aceptación han sido útiles para definir cuándo una historia está completa?
              •  ¿Se ha usado el formato adecuado en cada caso?

            Tip: Ajusta las plantillas basándote en la retroalimentación del equipo.


            Cerrando

            No hay un único formato correcto para escribir historias de usuario. La clave es elegir el formato que mejor se adapte al contexto de la organización y del equipo. Más importante que la estructura es garantizar, la conversación durante el proceso de construcción y que las historias sean pequeñas (menos de 36 horas de trabajo), claras y centradas en generar valor.

            Además, con la llegada de la Inteligencia Artificial Generativa (GenAI), el proceso de creación y refinamiento de historias de usuario está evolucionando, permitiendo que los equipos sean más eficientes sin perder el enfoque en la entrega de valor.

            No se trata de seguir un molde, sino de asegurarnos de que las historias cumplan su propósito: alinear a los equipos, generar conversaciones efectivas y entregar soluciones valiosas.


            ¿Y si tu equipo diseñara su propio formato de historias de usuario? ¿Cómo se vería?


            Saludos ágiles,
            Jorge Abad

            Notas, aclaraciones, referencias y comentarios

            1. La historia de las historias de usuario. Lucho Salazar.
            2. De Colección: Ejemplos de Historias de Usuario de la Fuente: Los Libros de Extreme Programming (XP)
            3. How to Implement Hypothesis-Driven Development. Barry O'Reilly
            4. Historias de usuario: Una visión pragmática (Spanish Edition)
            5. Modos de Representación de las Historias de Usuario - Un Capítulo del Libro Historias de Usuario una Visión Pragmática.
            6. What's in a Story?. Dann North.
            7. Cohn, Mike. User Stories Applied: For Agile Software Development. Addison-Wesley, 2004.
            8. Pichler, Roman. Agile Product Management with Scrum. Addison-Wesley, 2010.
            9. Beck, Kent. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2004.

            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.