Clienti reali, disponibili a rispondere alle domande e prendere decisioni in tempo reale.
XP originariamente richiedeva un cliente on-site—un utente reale o il suo rappresentante, fisicamente presente con il team.
Perché così estremo?
Lo sviluppo software è un continuo prendere decisioni:
Se il cliente non è disponibile, gli sviluppatori indovinano. Indovinano male. Costruiscono la cosa sbagliata. Oppure aspettano, bloccando i progressi finché non ottengono una risposta.
Clienti disponibili:
Il costo di una risposta sbagliata colta immediatamente: minuti. Il costo di una risposta sbagliata colta dopo il rilascio: giorni o settimane. La disponibilità del cliente si ripaga da sola.
Il ruolo del cliente XP comporta sia diritti che responsabilità.
Diritti del cliente:
Responsabilità del cliente:
Questa è una partnership. Il cliente non è uno stakeholder distante che lancia requisiti oltre il muro. È un membro del team che prende decisioni quotidianamente.
In pratica, il "cliente reale" è spesso non disponibile. Ha un lavoro. Non può stare con gli sviluppatori tutto il giorno.
Entra in scena il proxy del product owner—qualcuno che rappresenta il cliente:
Il modello proxy funziona quando:
Il modello proxy fallisce quando:
Il product manager siede con il team e risponde alle domande durante la giornata. È nello standup giornaliero. Fa demo agli utenti reali ogni due settimane e riporta il feedback al team.
Il product manager partecipa alle riunioni di pianificazione ma è altrimenti non disponibile. Le domande si accumulano via email. Le decisioni richiedono giorni. Gli sviluppatori costruiscono ciò che pensano sia giusto e spesso indovinano male.
I test di accettazione sono il modo in cui clienti e sviluppatori verificano di comprendersi a vicenda.
Per ogni storia, il cliente definisce i criteri di accettazione:
Questi diventano test eseguibili. Quando i test passano, la storia è completata. Nessun dibattito sul fatto che sia "veramente completata".
Benefici:
Nell'XP moderno, i test di accettazione sono spesso scritti in collaborazione tra cliente e sviluppatori. Il cliente descrive il comportamento; gli sviluppatori aiutano a tradurlo in forma testabile.
I team moderni sono spesso distribuiti. Il cliente "on-site" è un canale Slack, una chiamata Zoom o un messaggio asincrono.
Farlo funzionare da remoto:
Coinvolgimento asincrono del cliente:
Il principio rimane: minimizzare il tempo tra domanda e risposta. Il lavoro remoto rende questo più difficile ma non impossibile.
Se il tuo cliente non può essere disponibile in modo sincrono, costruisci checkpoint asincroni nel tuo flusso di lavoro. Non iniziare una storia senza criteri di accettazione. Non finire senza l'approvazione del cliente.