Blog

User Story Mapping: INVEST e come suddividere le storie

Di Serhiy Khvashchuk · · Nessun commento

Un backlog piatto è un elenco ordinato per priorità. Ti dice cosa costruire per primo, ma non come i pezzi si incastrano insieme, e rende facile rilasciare dieci funzionalità rifinite che non compongono nulla che un utente possa completare. Una mappa di storie utente risolve questo problema disponendo le storie lungo il percorso che un utente compie, così puoi vedere l'intero prodotto e tagliare un primo rilascio che funziona dall'inizio alla fine.

Questa guida illustra come creare una story map, come trasformarne la prima porzione in uno scope MVP, come verificare ogni storia con INVEST e i pattern di suddivisione che trasformano le storie grandi in unità di dimensione sprint. Se hai bisogno delle basi, inizia con come scrivere user stories.

Cos'è una user story map

La story mapping è stata introdotta da Jeff Patton, prima in un articolo del 2005, “It's all in how you slice it”, poi nel suo post del 2008 The new user story backlog is a map, e successivamente nel suo libro User Story Mapping (O'Reilly, 2014). Vedi anche le sue risorse sulla story mapping e la voce del glossario dell'Agile Alliance.

Una mappa ha due direzioni:

  • Da sinistra a destra è la narrazione: le grandi attività che l'utente compie, in ordine, e i passaggi all'interno di ciascuna. Questa riga superiore è chiamata backbone.
  • Dall'alto verso il basso è priorità e dettaglio: sotto ogni passaggio si trovano le storie che lo rendono possibile, con le più essenziali in alto e alternative, casi limite e funzionalità ausiliarie in basso.
Il backbone di una user story map: una riga di card di attività lungo una freccia di flusso narrativo
Il backbone: il percorso dell'utente da sinistra a destra. Crediti immagine: Caktus Group

Le linee orizzontali attraverso la mappa la dividono poi in fette di rilascio. Tutto ciò che si trova sopra la prima linea è il primo rilascio; dovrebbe coprire ogni attività del backbone, anche se in modo minimale.

Una user story map con il backbone in alto e attività, sottoattività e alternative dettagliate impilate sotto ogni passaggio
Storie impilate sotto ogni passaggio, con le più importanti in cima. Crediti immagine: Caktus Group

Come creare una story map in 6 passaggi

Puoi farlo su un muro con post-it o su una lavagna digitale. Invita le persone che decideranno lo scope e quelle che lo realizzeranno: product, design, almeno uno sviluppatore e, idealmente, qualcuno che parla con i clienti. Una prima mappa per un piccolo prodotto di solito richiede una sessione di lavoro di alcune ore.

1. Definire il problema

Scrivi per chi è il prodotto, il problema che risolve e l'esito che ti dirà se il primo rilascio ha funzionato. Tienilo a tre frasi in cima alla mappa. Ogni successiva riduzione viene giudicata rispetto a questo esito.

2. Mappare il backbone

Chiediti “cosa fa l'utente per primo, e poi cosa?” e scrivi ogni attività su una card, da sinistra a destra. Usa i verbi: “Trova un dog walker”, non “Cerca”. Poi suddividi ogni attività in passaggi. Racconta la storia ad alta voce mentre procedi; i divari diventano evidenti quando qualcuno dice “aspetta, come sono arrivato qui?”

3. Esplorare i dettagli

Sotto ogni passaggio, aggiungi le storie che lo rendono funzionante: opzioni, alternative, casi di errore, esigenze di amministrazione. Non filtrare ancora. È qui che la mappa si ripaga, perché le persone notano le parti mancanti quando possono vedere l'intero percorso in una volta.

4. Trovare lo scheletro camminante

Lo scheletro camminante (un termine di Alistair Cockburn) è la versione più sottile del prodotto che funziona da capo a fine. Scegli la storia sotto ogni passaggio che un utente non può fare a meno di avere, e spostala in alto. Se un passaggio non ha nulla di essenziale, chiediti se appartiene al backbone.

5. Tagliare i rilasci

Disegna linee orizzontali per raggruppare le storie in rilasci. Dai a ogni fetta un nome che esprima l'esito, come “I proprietari possono prenotare e pagare una passeggiata”, invece di “Rilascio 1”. Ogni fetta dovrebbe essere utilizzabile da sola e rispondere a una domanda che hai sul prodotto.

6. Pianificare la prima fetta e mantenere la mappa viva

Scrivi i criteri di accettazione per le storie nella prima fetta (il nostro modello di user story ha tre formati), verifica ciascuna con INVEST, suddividi quelle troppo grandi e spostale nello sprint backlog. Mantieni la mappa visibile e aggiornala dopo ogni rilascio; è uno strumento di pianificazione, non un output di un workshop una tantum.

Esempio: una story map per un'app di dog walking

Ecco una mappa condensata per un marketplace che collega i proprietari di cani con i dog walker locali. Le colonne sono il backbone; ogni riga è una fetta di rilascio.

FettaIscrizioneTrova un dog walkerPrenota una passeggiataPagaDurante la passeggiataDopo la passeggiata
Walking skeleton (MVP)Registrati con l'email; aggiungi un caneVisualizza un elenco di dog walker approvati vicino a un codice postaleRichiedi un orario; il dog walker accetta via emailPaga con carta al momento della prenotazioneIl dog walker segnala l'inizio e la fine della passeggiataIl proprietario riceve un messaggio di riepilogo
Release 2Accedi con Google o Apple; più caniFiltra per prezzo e disponibilità; profili dei dog walker con fotoAccettazione e rifiuto in-app; promemoriaCarte salvate; rimborso automatico in caso di cancellazionePosizione in tempo reale su una mappaValutazioni e recensioni
In seguitoCodici di referralDog walker preferitiPrenotazioni settimanali ricorrentiAbbonamenti e manceAggiornamenti fotografici durante la passeggiataRiprenota con un tocco
Mappa della storia per un marketplace di passeggiate per cani, per slice di rilascio

Nota ciò che lo scheletro omette: nessun tracciamento in tempo reale, nessuna recensione, nessun messaggistica in-app e l'approvazione dei dog walker è manuale. Ma un proprietario può comunque passare dalla registrazione a una passeggiata completata e pagata, il che è sufficiente per testare se le persone prenoteranno uno sconosciuto per portare a spasso il loro cane.

Come la mappa diventa un ambito MVP

La slice superiore di una buona mappa è il tuo ambito MVP. Usa questi controlli prima di impegnarti:

  • Copre ogni attività nel backbone. Un prodotto che permette alle persone di prenotare ma non di pagare non è un MVP; è metà di una demo.
  • Serve un utente primario e un percorso principale. I ruoli secondari (amministratori, partner) ricevono il minimo necessario per mantenere il percorso in funzione, spesso un foglio di calcolo o un passaggio manuale.
  • Testa un'ipotesi specifica. Scrivi la domanda a cui la slice risponde accanto ad essa, ad esempio “I proprietari pagheranno prima di incontrare il dog walker?”
  • Il lavoro manuale dietro le quinte è consentito. Approvare i dog walker a mano o inviare riepiloghi da soli va bene per i primi utenti, e ti dice cosa vale la pena automatizzare.
  • Si adatta al tuo budget e alla tua tempistica. Se non lo fa, taglia le storie all'interno di ciascuna colonna (dividendole, usando i pattern qui sotto) invece di eliminare intere colonne.

Per i fondatori senza un co-fondatore tecnico, la mappa è anche il documento più utile che puoi consegnare a un team di sviluppo: mostra l'intero prodotto, il primo rilascio e il ragionamento dietro il taglio, in una pagina. La nostra guida a costruire un MVP come fondatore non tecnico copre cosa fare con essa successivamente.

La checklist INVEST

Una volta che le storie sono sulla mappa, verifica ciascuna di esse nella prima slice contro INVEST, l'acronimo proposto da Bill Wake nel 2003 in INVEST in buone storie e task SMART.

LetteraSignificatoDomanda da porreSe non supera il test
IIndipendentePossiamo costruire e rilasciare questo senza aspettare un'altra storia?Combina le storie strettamente accoppiate, o dividile in modo diverso affinché ciascuna si realizzi da sola
NNegozialeLa soluzione è ancora aperta alla discussione?Rimuovi i dettagli di implementazione dalla storia; tienili nelle note
VValoreUn utente o l'azienda noterebbero se questo venisse rilasciato?Unisci i task tecnici alla storia che servono
EStimabileIl team sa abbastanza per stimarla?Esegui uno spike con tempo limitato, o poni le domande che bloccano la stima
SPiccolaSi adatta comodamente in un unico sprint?Dividila con uno dei pattern qui sotto
TTestabilePossiamo scrivere criteri di accettazione che passino o falliscano?Sostituisci le parole vaghe (“veloce”, “facile”) con risultati osservabili
Criteri INVEST per le user story

L'Indipendenza è il criterio più difficile da soddisfare pienamente, ed è accettabile trattarlo come un obiettivo piuttosto che come una regola. Piccola e Testabile sono quelli su cui vale la pena essere rigorosi.

Come dividere le user story

Dividi le storie verticalmente: ogni pezzo dovrebbe comunque fornire qualcosa che l'utente può vedere, attraverso ogni livello del sistema. Dividere per livello (“costruisci il database”, “costruisci l'API”, “costruisci la schermata”) produce pezzi che non forniscono nulla finché tutti e tre non sono completati, il che vanifica lo scopo. Questi pattern, raccolti nel Humanizing Work guide to splitting user stories di Richard Lawrence e Peter Green, coprono la maggior parte dei casi.

Passi del flusso di lavoro

Dividi un processo a più fasi nelle sue fasi, oppure costruisci prima la versione end-to-end semplice e aggiungi le fasi successivamente. “Prenota una passeggiata” diventa: richiedi un orario; il passeggiatore accetta; il proprietario riceve una conferma. Successivamente: il passeggiatore propone un orario diverso.

Variazioni delle regole di business

Se una storia ha diverse regole, rilascia prima quella più comune. “Rimborsi per cancellazione” diventa: rimborso completo se cancellato 24 ore prima; rimborso parziale entro 24 ore; nessun rimborso dopo l'inizio della passeggiata.

Variazioni dei dati

Inizia con un tipo di dati e aggiungi gli altri. “Cerca per posizione” diventa: cerca per codice postale; poi per posizione attuale; poi disegnando un'area su una mappa.

Prima il percorso felice, poi i percorsi di errore

Costruisci il percorso di successo principale, poi gestisci i fallimenti come storie separate, ordinate per frequenza e per il danno che causano. “Paga con carta” diventa: pagamento riuscito; carta rifiutata; provider di pagamento non disponibile.

Operazioni

“Gestisci cani” nasconde crea, visualizza, modifica ed elimina. Spesso per il primo rilascio sono necessari solo crea e visualizza.

Variazioni di interfaccia o piattaforma

Rilascia prima su una piattaforma o con un metodo di input. Web prima di mobile, o inglese prima di altre lingue, se i tuoi primi utenti lo consentono.

Prima la versione semplice, rimanda le prestazioni

Fallo funzionare, poi fallo veloce. Un elenco di passeggiate che si carica in tre secondi per 50 passeggiate va bene per una città pilota; ottimizza quando i numeri lo giustificano, come una storia a sé stante.

Spike

Quando una storia non può essere stimata a causa di un'incognita (“possiamo ottenere la posizione live in background su entrambe le piattaforme telefoniche?”), separa una breve indagine con tempo limitato. L'output dello spike è conoscenza e una storia meglio dimensionata, non funzionalità rilasciate.

SPIDR: una versione breve da ricordare

Mike Cohn raggruppa le principali tecniche di suddivisione sotto l'acronimo SPIDR: Spikes, Paths, Interfaces, Data e Rules (Five simple but powerful ways to split user stories). Se una storia è troppo grande e non sei sicuro da dove iniziare, percorri le cinque in quell'ordine.

TecnicaDividi perEsempio
SpikesRicerca prima l'incognitaSpike di due giorni sulla posizione in background prima di stimare il tracciamento live
PercorsiPercorsi alternativi attraverso la storiaPaga con carta ora; paga con wallet in seguito
InterfacceTipo di dispositivo, browser o interfacciaPrenotazione del proprietario prima su web, poi su app mobile
DatiTipi o intervalli di datiUn cane per prenotazione all'inizio; più cani in seguito
RegoleRegole di business, allentate all'inizioNessuna regola di cancellazione nel pilota; politica di rimborso come storia a sé stante
Tecniche di suddivisione SPIDR con esempi di passeggiate con i cani

Errori comuni nella story mapping

  • Mappare le funzionalità invece delle attività degli utenti. Una spina dorsale di “Login, Dashboard, Settings” descrive schermate, non un percorso.
  • Costruire la prima fetta con una sola colonna di profondità. Perfezionare la registrazione prima che esista la prenotazione ti lascia senza nulla da testare.
  • Lasciare che la mappa diventi troppo dettagliata. Se stai scrivendo i criteri di accettazione sul muro, sei passato dalla mappatura al raffinamento.
  • Mappare senza gli sviluppatori in sala. Le fette tracciate senza di loro spesso nascondono storie costose in cima.
  • Trattare la mappa come finita. Dopo ogni rilascio, trasferisci ciò che hai imparato sulla mappa e ricompila la prossima fetta.

Per storie ben formate che puoi adattare alla tua mappa, consulta il nostro esempi di user story.

Strumenti per la story mapping

Un muro e post-it funzionano ancora meglio per la prima sessione con tutti in una stanza. Per le team remote, lavagne bianche generali come Miro e FigJam hanno template di story map, e strumenti dedicati come StoriesOnBoard sincronizzano le mappe con i tracker di backlog. Jira e tracker simili possono mostrare le storie raggruppate per epica, il che ti dà la spina dorsale, ma di solito hai bisogno di un plugin o di una lavagna per vedere le fette di rilascio. Scegli lo strumento che la tua team manterrà aperto; una mappa che nessuno aggiorna smette di essere utile entro uno o due sprint.

Domande frequenti

Cos'è la user story mapping?

Una tecnica, introdotta da Jeff Patton, per disporre le user story lungo il percorso che un utente compie (la spina dorsale, da sinistra a destra) e per priorità (dall'alto in basso). Le linee orizzontali dividono la mappa in fette di rilascio, in modo che la team possa pianificare rilasci che funzionano da capo a fine.

Qual è la differenza tra una story map e un product backlog?

Un backlog è un elenco singolo ordinato per priorità. Una story map mostra le stesse storie in due dimensioni, per attività utente e per priorità, in modo da poter vedere come si incastrano tra loro e se un rilascio copre l'intero percorso.

Cos'è uno walking skeleton?

La versione più sottile di un prodotto che funziona dall'inizio alla fine, con una storia essenziale sotto ogni passo del percorso. Il termine proviene da Alistair Cockburn; su una story map è di solito la prima fetta di rilascio.

Cosa significa INVEST?

Indipendente, Negoziabile, Valore, Stimabile, Piccolo e Testabile. Bill Wake lo ha proposto nel 2003 come un elenco di controllo per buone user story.

Quanto dovrebbe essere piccola una user story?

Basta piccola perché la team possa completarla, testarla e dimostrarla entro uno sprint, e idealmente entro pochi giorni. Se una storia richiede regolarmente un intero sprint, dividila.

Cos'è SPIDR?

Un insieme di cinque tecniche di suddivisione delle storie descritte da Mike Cohn: Spikes, Paths, Interfaces, Data e Rules.

Chi dovrebbe partecipare a una sessione di story mapping?

Le persone che decidono lo scope e le persone che lo costruiranno: product owner o fondatore, designer, almeno uno sviluppatore e, idealmente, qualcuno che parla con i clienti, come supporto o vendite.

Hai una mappa, o solo un'idea, e hai bisogno di costruire la prima fetta? Possiamo aiutarti a definire lo scope di un MVP che funziona da capo a fine e a rilasciarlo in sprint brevi. Vedi i nostri piani di sviluppo mensili.