Tag Archives: User Story

Anatomia di una User Story card – Retro

Continuo la saga sul tema delle user stories.

Dopo i due post:

vediamo adesso cosa contiene il retro di una user story card.

User-story-back

Ricordo che la User Story parte da una frase che descrive ciò che un utente fa o vorrebbe fare su un sistema o comunque nel suo lavoro quotidiano ed è scritta nel linguaggio dell’utente.

A questo punto le informazioni necessarie e che richiedono un alto livello di visibilità per tutti sono:

  • quali task e attività servono per completare concretamente la storia?
  • quali test devono essere scritti o implementati per garantire il livello di qualità richiesto e soprattutto per verificare con il cliente che la user story è effettivamente completa?
  • quanto manca per finire?

Le risposte a queste tre domande si trovano sul retro della user story card.

I test di accettazione (UAT)

In fase di planning è necessario elencare quali saranno gli User Acceptance Tests (UAT) che dovranno essere implementati per soddisfare questi requisiti:

  • servono in fase di analisi per chiarire ulteriormente le idee al cliente
  • servono a chi sviluppa per poter dire “ho fatto” e spostare quindi la user story card in “Done”
  • servono in fase di Demo Meeting per dimostrare e verificare che la user story è stata correttamente implementata e che l’implementazione fa ciò che ci si aspettava.

L’elenco dei task

Quando la scheda entra in una sprint deve essere già stato analizzato quali sono i passi da compiere per completare la User Story.

Elencando i task si ottengono questi vantaggi:

  • di nuovo viene stimolata la scomposizione della User Story in attività più piccole (ed in questo contesto in attività concrete quali sviluppo di righe di codice, attività di infrastruttura, realizzazione di DB ecc ecc)
  • viene data una stima dei task in ore. Dato che la User Story è già temporalmente limitata, la stima dei task che sono attività dettagliate e ancora più piccole dovrebbe essere più realistica
  • i task possono essere eseguiti in parallelo da sviluppatori (o pair programmer) diversi

Nota bene: è solo in questo contesto che compare per la prima volta il tempo, tipicamente in ore, come unità di misura. Ricordo che fino ad ora la User Story è stata stimata in Story Point e quindi svincolata dal fattore temporale.

La scomposizione in task ed ore e la relativa somma consentono di fare un controllo incrociato con gli Story Point per avere un ulteriore conferma della stima della User Story.

Ricordo sempre che lo spazio sulla scheda è limitato e quindi sia i test di accettazione sia i task non devono necessariamente essere esaustivi ma devono essere un promemoria per stimolare la comunicazione.

Il tempo residuo

Infine la domanda più importante, più frequente e con il maggiore grado di incertezza nella risposta: quanto ci vuole per terminare?

Tutto il lavoro di scomposizione, analisi e stima fatto fino ad ora sulla User Story Card viene riassunto nella somma delle ore residue che viene mostrata nella User Story Card e che deve essere aggiornato ogni giorno (normalmente dopo lo stand-up meeting e può essere fatto dallo Scrum Master).

E’ importante notare che in questa fase non è di alcun interesse parlare di ore lavorate ma di ore residue.

Le ore residue infatti vengono tracciate sul burndown chart e danno un’indicazione quotidiana dello scostamento dalla situazione ideale in modo da poter intraprendere ogni giorno le necessarie azioni correttive.

Ovviamente le ore lavorate sono un’informazione importantissima che deve essere tracciata su sistemi elettronici di Issue Tracking, ma che non incide sulla sprint e deve essere oggetto di analisi in fase di Retrospettiva.

FacebookTwitterGoogle+Share

Anatomia di una User Story card – Fronte

Nel post precedente abbiamo visto cos’è una User Story e quali sono le motivazioni che la rendono uno strumento di analisi, di condivisione delle informazioni chiave e di stimolo al confronto all’interno di un team.

Adesso voglio scendere nel dettaglio della struttura di una User Story card.

Innanzitutto un primo nota bene: una User Story raccoglie in maniera discorsiva ciò che un utente fa o vorrebbe fare nel suo lavoro quotidiano.

Una User Story Card è la rappresentazione cartacea (tipicamente in formato A6) della storia ma non solo. Raccoglie altre informazioni quali la “dimensione” della storia, i task per completarla, i test di accettazione e così via.

Ha un visibilità enorme, la si può spostare, ci si scrive sopra velocemente, sono facilmente riordinabili e confrontabili e soprattutto lo possono fare tutti. Compreso il cliente.

Non esiste LA user story card che va bene per tutti, questa è il punto di partenza che utilizzo io (fronte e retro):

User-story-frontUser-story-back

Innanzitutto una nota sulla dimensione della scheda: non deve essere troppo grande in quanto non è richiesta l’esaustività delle informazioni (per quella si va su un sistema elettronico) ma il riassunto delle informazioni fondamentali.

Partiamo dal fronte.

Titolo della User Story

Il titolo della user story serve per identificare sinteticamente e univocamente la storia.

Per esempio in un sistema di commercio elettronico può essere una frase del tipo:

  • Mario Rossi può inserire il prodotto nel carrello
  • Mario Rossi può rimuovere un prodotto dal carrello
  • Mario Rossi può svuotare completamente il carrello

Tipicamente il titolo è la descrizione sintetica con cui viene caricata nel sistema elettronico di gestione del progetto (Microsoft Team Foundation Server, Jira, OnTime, RedMine, AtTask per citarne alcuni).

Descrizione della User Story

Ricordo che la user story è un frase con questa struttura:

As Who, I want What so that Why

Continuando le storie precedenti potrebbe essere:

SONO “Mario Rossi”

e dalla pagina di dettaglio del prodotto VOGLIO inserire il prodotto nel carrello

PERCHE’ potrò avere in unico punto tutti i prodotti che vorrei acquistare

Ricordo l’aspetto essenziale: la user story deve essere scritta dal punto di vista dell’utente e utilizzando il suo linguaggio. Non c’è nulla di tecnico qui, non ci sono database, C#, o pezzi di interfaccia ma solo quello che un utente vuole fare interagendo con il sistema.

Anzi la situazione ideale è che la storia venga scritta dal cliente.

Un altro aspetto da notare è che non si parla di generico utente o cliente ma si utilizza uno specifico utente che appartiene ad una categoria che scaturisce dalla fase di user role modeling (anche di questo ne parlerò in un altro post).

In questo caso Mario Rossi è stato individuato come l’utente tipico B2C ed è chiaro a tutti quali sono le sue aspettative, le sue competenze tecniche, la sua conoscenza del dominio.

Dimensione e scadenza

La domanda scontata di fronte ad un requisito o, in questo caso, ad una User Story è: quanto ci vuole per implementarla?

Giorni? Ore? Giorni ideali? Giorni uomo? E le ferie? E i 2 membri del team che la prossima settimana devono lavorare su un altro progetto?

Il riassunto di questa e di altre informazioni “temporali” è racchiuso nel concetto di Story Point.

Genericamente si può dire che lo Story Point è una unità di misura delle User Story (al pari delle ore o dei metri) ed una misura sintetica della “dimensione della storia”.

Riesce ad essere indipendente dal tempo, non risente delle ferie o dei giorni di malattia, consente una stima molto veloce e il confronto tra le schede.

Una User Story da 8 SP è sicuramente più grande di una User Story da 5 SP. Facile, immediato e comprensibile da tutti, tecnici, commerciali, cliente.

Diventa anche il miglior metodo per fare un planning, per seguire l’andamento del progetto e per stimare e migliorare la velocità del team.

Ecco perchè DEVE essere in bella vista sul fronte della User Story Card.

Un’ultima informazione che, se presente, deve essere in primo piano è un’eventuale scadenza. Le storie entrano in una sprint in base alla priorità decisa dal Product Owner ma se c’è una scadenza ovviamente questo fa si che la storia venga selezionata per entrare in una sprint in base alla data di consegna.

Le user story sono il miglior strumento di analisi che conosca

Innazitutto cos’è una User Story?

Ovviamente partiamo dalla definizione di Wikipedia che cerco di riassumere:

“una User Story raccoglie in maniera discorsiva ciò che un utente fa o vorrebbe fare nel suo lavoro quotidiano”

E’ un insieme di frasi espresse in termini usati quotidianamente o termini di business e risponde a tre domande:

  • Who: chi fa o vorrebbe quella specifica cosa
  • What: cosa fa o cosa vorrebbe o si aspetta dal sistema
  • Why: perchè fa quella cosa o perchè la vorrebbe e quali vantaggi otterrebbe
Fisicamente la User Story è una scheda cartacea in formato A6 che riassume queste e altre informazioni fondamentali.User-Story
Il primo vantaggio che si ottiene dall’approccio tramite User Story è che obbliga i tecnici e gli sviluppatori a ragionare come l’utente finale e non immediatamente in termini di righe di codice, righe di tabelle, tecnologie, ecc ecc.
Inoltre facilita enormemente il dialogo e la comprensione con il cliente. Il cliente usa il linguaggio del dominio e siamo noi che dobbiamo adattarci al suo modo di pensare e parlare. E’ il nostro sistema che deve risolvere il suo problema ed è più facile se parliamo tutti da subito la stessa lingua (Ubiquitous Language).
Il cliente tocca la user story, la vede, la modifica e SOPRATTUTTO lo aiuta a chiarire nella sua testa che cosa vuole esattamente.
Il cliente può e deve ordinare le user story in base a ciò che per lui è prioritario (in termini economici ma non solo) e lo fa semplicemente spostando le schede.
E’ fondamentale ricordarsi che una User Story non vuole e non deve essere una analisi dettagliata di una funzionalità ma piuttosto un reminder di alcune cose che ci siamo detti e di altre che invece devono essere chiarite: la User Story stimola ed enfatizza la comunicazione verbale rispetto quello scritta.

Il fatto che venga scritta su delle schede serve anche per ottenere questo risultato in quanto le informazioni che possono essere scritte sono forzatamente limitate dallo spazio fisico della scheda.

Ovviamente maggiori informazioni possono essere raccolte in un sistema di tracking elettronico, ma ultimo ma non meno importante la user story DEVE essere cartacea perchè il suo punto di forza è l’estrema visibilità che dà alle informazioni in essa contenute.

In un altro post scenderò nei dettagli di altre informazioni più o meno tecniche che fornisce una User Story:

  • consente un confronto immediato e visivo tra le dimensioni delle storie
  • facilità la suddisivisione in storie più piccole
  • contiene la definizione dei task che servono per completare la storia
  • contiene l’elenco dei test di accettazione che servono per dire “ho finito” e dimostrano al cliente che il software fa esattamente quello che si aspetta
  • facilita il planning della release e delle sprint
  • consente di rimandare ad un momento successivo la definizione di dettagli che probabilmente oggi non abbiamo
A questo punto penso di poter dire: “Please, more user stories, less Word documents, less Power Point”