De vrais clients, disponibles pour répondre aux questions et prendre des décisions en temps réel.
XP préconisait à l'origine un client sur place — un véritable utilisateur ou son représentant, physiquement présent avec l'équipe.
Pourquoi une telle exigence?
Le développement logiciel est une prise de décision constante :
Si le client n'est pas disponible, les développeurs devinent. Ils devinent mal. Ils construisent la mauvaise chose. Ou ils attendent, bloquant les progrès jusqu'à ce qu'ils puissent obtenir une réponse.
Des clients disponibles :
Le coût d'une mauvaise réponse détectée immédiatement : quelques minutes. Le coût d'une mauvaise réponse détectée après la livraison : des jours ou des semaines. La disponibilité du client est rentable.
Le rôle de client XP comporte à la fois des droits et des responsabilités.
Droits du client :
Responsabilités du client :
C'est un partenariat. Le client n'est pas un intervenant distant qui lance des exigences par-dessus le mur. C'est un membre de l'équipe qui prend des décisions quotidiennement.
En pratique, le « vrai client » est souvent indisponible. Il a un emploi. Il ne peut pas rester assis avec les développeurs toute la journée.
Voici le représentant du propriétaire de produit — quelqu'un qui représente le client :
Le modèle de représentant fonctionne lorsque :
Le modèle de représentant échoue lorsque :
Le gestionnaire de produit est assis avec l'équipe et répond aux questions tout au long de la journée. Il participe à la mêlée quotidienne. Il fait des démos aux vrais utilisateurs toutes les deux semaines et rapporte les commentaires à l'équipe.
Le gestionnaire de produit assiste aux réunions de planification mais est autrement indisponible. Les questions s'accumulent dans les courriels. Les décisions prennent des jours. Les développeurs construisent ce qu'ils pensent être correct et devinent souvent mal.
Les tests d'acceptation sont la façon dont les clients et les développeurs vérifient qu'ils se comprennent mutuellement.
Pour chaque story, le client définit des critères d'acceptation :
Ceux-ci deviennent des tests exécutables. Lorsque les tests réussissent, la story est terminée. Aucun débat sur le fait qu'elle soit « vraiment terminée ».
Avantages :
Dans XP moderne, les tests d'acceptation sont souvent écrits en collaboration entre le client et les développeurs. Le client décrit le comportement; les développeurs aident à traduire sous forme testable.
Les équipes modernes sont souvent distribuées. Le client « sur place » est un canal Slack, un appel Zoom ou un message asynchrone.
Pour que ça fonctionne à distance :
Implication asynchrone du client :
Le principe demeure : minimiser le temps entre la question et la réponse. Le travail à distance rend cela plus difficile mais pas impossible.
Si votre client ne peut pas être disponible de façon synchrone, intégrez des points de contrôle asynchrones dans votre flux de travail. Ne commencez pas une story sans critères d'acceptation. Ne terminez pas sans l'approbation du client.