Clientes reais, disponíveis para responder perguntas e tomar decisões em tempo real.
XP originalmente exigia um cliente presente—um usuário real ou seu representante, fisicamente presente com a equipe.
Por que tão extremo?
O desenvolvimento de software é uma tomada de decisão constante:
Se o cliente não está disponível, os desenvolvedores adivinham. Eles adivinham errado. Eles constroem a coisa errada. Ou eles esperam, bloqueando o progresso até conseguirem uma resposta.
Clientes disponíveis:
O custo de uma resposta errada capturada imediatamente: minutos. O custo de uma resposta errada capturada após o lançamento: dias ou semanas. A disponibilidade do cliente se paga.
O papel do cliente em XP vem com direitos e responsabilidades.
Direitos do cliente:
Responsabilidades do cliente:
Isso é uma parceria. O cliente não é um stakeholder distante jogando requisitos por cima do muro. Eles são um membro da equipe tomando decisões diariamente.
Na prática, o "cliente real" geralmente não está disponível. Eles têm empregos. Eles não podem sentar com desenvolvedores o dia todo.
Entre o proxy do product owner—alguém que representa o cliente:
O modelo de proxy funciona quando:
O modelo de proxy falha quando:
O gerente de produto senta com a equipe e responde perguntas ao longo do dia. Eles estão no standup diário. Eles fazem demo para usuários reais a cada duas semanas e trazem feedback de volta para a equipe.
O gerente de produto participa de reuniões de planejamento, mas está indisponível de outra forma. Perguntas se acumulam no email. Decisões levam dias. Desenvolvedores constroem o que acham que está certo e frequentemente adivinham errado.
Testes de aceitação são como clientes e desenvolvedores verificam que se entendem.
Para cada história, o cliente define critérios de aceitação:
Estes se tornam testes executáveis. Quando os testes passam, a história está concluída. Sem debate sobre se está "realmente concluída."
Benefícios:
Em XP moderno, testes de aceitação são frequentemente escritos em colaboração entre o cliente e desenvolvedores. O cliente descreve o comportamento; desenvolvedores ajudam a traduzir para forma testável.
Equipes modernas são frequentemente distribuídas. O cliente "presente" é um canal do Slack, uma chamada no Zoom ou uma mensagem assíncrona.
Fazendo funcionar remotamente:
Envolvimento assíncrono do cliente:
O princípio permanece: minimize o tempo entre pergunta e resposta. Trabalho remoto torna isso mais difícil, mas não impossível.
Se seu cliente não pode estar disponível sincronamente, construa checkpoints assíncronos no seu fluxo de trabalho. Não comece uma história sem critérios de aceitação. Não termine sem aprovação do cliente.