Requisiti come spunti di conversazione, non specifiche complete.
Le user story non sono documenti di requisiti. Sono segnaposto per conversazioni.
Ron Jeffries ha sintetizzato questo concetto nelle "3 C":
Card: Una breve descrizione che sta su una scheda. "Come utente, voglio reimpostare la mia password per poter riottenere l'accesso al mio account."
Conversazione: Il dialogo tra sviluppatori e clienti che definisce i dettagli. Cosa significa "reimpostare"? Link via email? Codice SMS? Domande di sicurezza?
Conferma: I criteri di accettazione che indicano quando la story è completata. "Dato un'email valida, quando clicco su 'reimposta password', allora ricevo un'email con un link di reimpostazione entro 1 minuto."
La card non è il requisito. La conversazione è il requisito. La card è solo un promemoria per avere la conversazione.
Perché le Schede?
Le schede impongono brevità. Non puoi inserire un documento di requisiti su una scheda. Questo è intenzionale: i dettagli devono emergere attraverso la conversazione, non la documentazione.
Il formato classico della story è:
Come [tipo di utente] Voglio [una certa capacità] In modo da [valore di business]
Ad esempio:
La clausola "in modo da" è cruciale. Spiega perché la funzionalità è importante. Questo aiuta gli sviluppatori a prendere buone decisioni sull'implementazione e aiuta i product owner a dare priorità.
Story sbagliate omettono il perché:
Story corrette collegano le funzionalità al valore:
L'acronimo INVEST descrive le qualità delle buone story:
Independent (Indipendente): Le story possono essere sviluppate in qualsiasi ordine. Nessuna dipendenza tra story.
Negotiable (Negoziabile): L'ambito è flessibile. I dettagli vengono negoziati attraverso la conversazione.
Valuable (Di valore): Ogni story fornisce valore agli utenti. Nessuna "story tecnica" senza beneficio per l'utente.
Estimable (Stimabile): Il team può stimare quanto è grande. Se no, la story necessita chiarimenti o suddivisione.
Small (Piccola): Una story dovrebbe richiedere meno di una settimana di lavoro. Idealmente pochi giorni.
Testable (Testabile): Ci sono criteri di accettazione chiari. Puoi verificare quando è completata.
Quando una story viola INVEST, correggila:
Come cliente, voglio ricevere un'email di conferma dopo l'ordine in modo da avere una registrazione del mio acquisto. Accettazione: l'email arriva entro 5 minuti, include numero d'ordine e articoli, ha link di disiscrizione.
Implementare il sistema di gestione utenti. (Non indipendente—troppo grande. Non testabile—nessun criterio chiaro. Non piccola—potrebbe richiedere mesi.)
Le story grandi devono essere suddivise. Ma come?
Suddividi per fase del flusso di lavoro: "L'utente può completare il checkout" →
Suddividi per variazione di dati: "L'utente può pagare l'ordine" →
Suddividi per operazione: "L'utente può gestire il proprio profilo" →
Suddividi per prestazioni: "La ricerca restituisce risultati rapidamente" →
Ogni story suddivisa dovrebbe essere rilasciabile in modo indipendente. Se non puoi rilasciare il supporto parziale per carte di credito (solo Visa, non Mastercard), è comunque una suddivisione—consegni valore in modo incrementale.
Quando suddividi, continua a chiederti: "Qual è la cosa più piccola che fornisce valore all'utente?" Suddividi finché ogni pezzo è piccolo e di valore.
Vale la pena ripeterlo: le story non sono specifiche.
I documenti di requisiti tradizionali cercano di specificare ogni dettaglio in anticipo. Questo fallisce perché:
Le story abbracciano l'incertezza. La card cattura l'intento. La conversazione riempie i dettagli al momento giusto. La conferma verifica la comprensione.
Il cliente rimane coinvolto per tutto il tempo. Quando gli sviluppatori hanno domande, chiedono al cliente—non al documento. Questo mantiene il team allineato e si adatta all'apprendimento.
Le story incoraggiano anche a rimandare le decisioni. Non devi decidere ogni caso limite in anticipo. Gestisci prima il percorso principale. Quando incontri un caso limite, fai una conversazione in quel momento.
Questo è l'approccio XP ai requisiti: quanto basta, al momento giusto, attraverso la conversazione.