Clientes reales, disponibles para responder preguntas y tomar decisiones en tiempo real.
XP originalmente pedía un cliente en sitio—un usuario real o su representante, físicamente presente con el equipo.
¿Por qué tan extremo?
El desarrollo de software es toma de decisiones constante:
Si el cliente no está disponible, los desarrolladores adivinan. Adivinan mal. Construyen lo incorrecto. O esperan, bloqueando el progreso hasta que puedan obtener una respuesta.
Clientes disponibles:
El costo de una respuesta incorrecta detectada inmediatamente: minutos. El costo de una respuesta incorrecta detectada después del lanzamiento: días o semanas. La disponibilidad del cliente se paga sola.
El rol de cliente en XP viene con derechos y responsabilidades.
Derechos del cliente:
Responsabilidades del cliente:
Esto es una asociación. El cliente no es un stakeholder distante lanzando requisitos por encima del muro. Es un miembro del equipo tomando decisiones diariamente.
En la práctica, el "cliente real" a menudo no está disponible. Tienen trabajos. No pueden sentarse con los desarrolladores todo el día.
Entra el proxy del product owner—alguien que representa al cliente:
El modelo de proxy funciona cuando:
El modelo de proxy falla cuando:
El product manager se sienta con el equipo y responde preguntas durante todo el día. Está en el standup diario. Hace demos a usuarios reales cada dos semanas y trae retroalimentación de vuelta al equipo.
El product manager asiste a reuniones de planificación pero por lo demás no está disponible. Las preguntas se acumulan en el correo. Las decisiones toman días. Los desarrolladores construyen lo que creen que es correcto y a menudo adivinan mal.
Las pruebas de aceptación son cómo los clientes y desarrolladores verifican que se entienden mutuamente.
Para cada historia, el cliente define criterios de aceptación:
Estos se convierten en pruebas ejecutables. Cuando las pruebas pasan, la historia está terminada. No hay debate sobre si está "realmente terminada".
Beneficios:
En XP moderno, las pruebas de aceptación a menudo se escriben en colaboración entre el cliente y los desarrolladores. El cliente describe el comportamiento; los desarrolladores ayudan a traducir a forma comprobable.
Los equipos modernos a menudo están distribuidos. El cliente "en sitio" es un canal de Slack, una llamada de Zoom o un mensaje asíncrono.
Hacerlo funcionar remotamente:
Participación asíncrona del cliente:
El principio permanece: minimizar el tiempo entre pregunta y respuesta. El trabajo remoto hace esto más difícil pero no imposible.
Si tu cliente no puede estar disponible de forma sincrónica, construye puntos de control asincrónicos en tu flujo de trabajo. No inicies una historia sin criterios de aceptación. No termines sin la aprobación del cliente.