Le 3 C delle user stories: carta, conversazione e conferma

Oggi parliamo di storie, un grande classico per i product owner, e andiamo alla base della loro costruzione esplorando insieme le 3 C delle user stories: carta, conversazione e conferma.

Ma cosa sono le user stories? Sono semplici descrizioni, contenute in una frase, di ciò che un determinato utente vuole ottenere raccontate dal suo punto di vista.
Sono nate nell’ambito dell’Extreme Programming prima dell’inizio di questo millennio (la loro origine si fa risalire al 1998) e sono poi diventate popolari in tutti i processi agile.

User story: qualche esempio di scrittura delle card

Facciamo qualche esempio pratico per capirci meglio.
Immaginiamo di stare sviluppando un sito di annunci (i cosiddetti classified) che consente a venditori e acquirenti di scambiarsi beni materiali e servizi accordandosi tra privati.
La nostra piattaforma avrà user stories come queste:

  • come utente di <nome della piattaforma> , posso effettuare ricerche su articoli specifici.
  • come venditore, posso facilmente consultare la lista di tutti i potenziali acquirenti interessati al prodotto che ho messo in vendita.

Come vedete sono frasi brevi che descrivono cosa un utente vuole fare, raccontate secondo il suo punto di vista.
Un’altra cosa che possiamo notare è che abbiamo più tipologie di utenti: nel primo caso parliamo di un utente generico, nel secondo adottiamo il punto di vista di uno dei principali attori della piattaforma (in venditore).

Possiamo fare la stessa cosa mettendoci dal punto di vista dell’acquirente:

  • come potenziale acquirente di una macchina usata, voglio poter vedere delle foto del veicolo.

Cosa manca ancora in questo esempio?
Manca un dettaglio che per me è la parte più importante delle user stories, la cosiddetta clausola so-that.
Ciò che spiega perché un determinato utente vuole una certa cosa, qual è la sua finalità, qual è il risultato finale a cui tende (o outcome).

La storia potrebbe prendere allora questa forma:

“come potenziale acquirente di una macchina usata, voglio poter vedere delle foto del veicolo così da potermi accertare delle sue condizioni”

O dal punto di vista del venditore:

“come proprietario di un auto che desidero vendere, posso creare una pagina in cui descrivere lo stato dei veicolo e mostrarlo al suo meglio”

Notate che stiamo parlando della medesima funzionalità (le foto associate al prodotto) da due punti di vista differenti: quello del venditore e quello dell’acquirente.

User story: l’importanza del punto di vista

Bene, abbiamo introdotto il formato più classico con cui si scrivono le user stories:

Come <tipo di utente>, voglio <funzionalità> così da <obiettivo o valore per l’utente>.

Semplice ed efficace! Chiunque è in grado di esprimere un bisogno, una necessità o un desiderio secondo questo formato.
Ma non è solo la semplicità ad essere la chiave del successo delle user stories, l’elemento essenziale qui è la prospettiva: il punto di vista che adottiamo ci aiuta a relazionarci con specifiche tipologie di utenti, a metterci nei loro panni.

Sembra un dettaglio ma non lo è.
Ditemi se vi fa lo stesso effetto esprimere le medesime funzionalità come si descrivevano una volta nei documenti di requisiti …

  • il sistema consente all’utente di effettuare una ricerca
  • il sistema consente all’utente di pubblicare online un prodotto
  • il sistema consente all’utente di associare una o più foto a un prodotto

Il significato di queste affermazioni è lo stesso ma nel primo caso rispondiamo con più empatia perché stiamo mettendo l’utente – una persona – al centro della scena.

User story: la conversazione a partire dalla carta

Un errore in cui cadono spesso i team che muovono i primi passi con i framework agili è pensare che una volta scritta la user story tutto sia chiaro e definito.
In realtà chi ha un po’ più di esperienza alle spalle sa bene che la scrittura è solo l’inizio del gioco.
Non dobbiamo dimenticare che la user story comprende tre C:

  • una scheda o carta (= card),
  • la conversazione (= conversation)
  • criteri di conferma (= confirmation).

Le 3 C sono un’allitterazione ideata da Ron Jeffries per chiarire che una user story è più di un semplice testo scritto su carta fisica o su strumento software.
Le user stories sono brevi, non sono fatte per contenere molti dettagli bensì per agevolare delle conversazioni (si parla anche delle storie anche come “placeholder per conversazioni con il team”).
La carta è solo una delle tre C, la più visibile, e anche quella meno importante.

Mi è capitato in passato di lavorare con team che pretendevano di avere il massimo livello di dettaglio nelle storie; questo desiderio di chiarezza e completezza per quanto comprensibile dà l’illusione che tutto sia stato definito e compreso ma non aiuta le persone ad uscire dalla propria comfort zone e fare il “viaggio di scoperta” nei bisogni dell’utente.
E’ dall’interazione tra il product owner, il team allargato e gli utenti che nasce la vera comprensione di ciò che c’è da fare, non da una frase scritta su un pezzo di carta.

Non si tratta di un modo alternativo di scrivere requisiti, la card è “una promessa a due vie” come dice Mike Cohn:

  • la promessa del team di porre domande prima di iniziare a lavorare su una storia
  • la promessa del product owner di essere disponibile ad approfondire l’argomento.

Questi due aspetti insieme ci evitano di dover scrivere corposi documenti di specifiche contenenti ogni singola funzionalità.

Se il team si parla prima di iniziare a lavorare, il product owner può specificare solo quanto basta per poter avere quella conversazione.
E’ la conversazione in sé che rende agile un team, non la scrittura delle storie, l’utilizzo di post-it o di tool come Jira.

User story: la C di conferma

Quando Mike Cohn illustra questa parte delle storie dice che non gli piace iniziare qualcosa se non capisce come saprà quando ha terminato. E a chi piace questa incertezza?
I criteri di conferma di una user story servono proprio a questo; sono il modo in cui il product owner definisce insieme al team ciò che deve essere fatto affinché lo sviluppo possa essere considerato completo.

Ricordate quando a scuola per la prima volta un insegnante vi ha assegnato un riassunto di un libro? Alzi la mano chi non si è chiesto quanto dovesse essere lungo lo scritto!
Ecco, questo è un classico esempio di criterio di accettazione. Per alcuni professori una sintesi di una pagina è accettabile, per altri non si parla di sufficienza sotto le 3 pagine (e non pensate di barare con la dimensione del testo e l’interlinea!).

Una parte della conversazione tra il team e il product owner prima di lavorare una storia riguarderà proprio i criteri di conferma, ovvero come ciò che sarà sviluppato verrà valutato per l’accettazione durante la sprint review.
Si tratta delle “condizioni di soddisfazione” della storia. In altre parole, affinché il product owner possa considerare la user story fatta, una determinata cosa deve fare questo, quello e quell’altro.

Torniamo al nostro esempio di prima quando parlavamo della possibilità di associare delle foto all’auto che il nostro utente vuole mettere in vendita.
Per questa user story potremmo definire criteri di accettazione di questo tipo:

  • i formati di immagine accettati dal sistema (es. jpg, png, ecc.)
  • il peso massimo della singola immagine
  • la possibilità di vedere un’anteprima dell’immagine caricata
  • e magari anche la possibilità di poter ruotare eventuali immagini capovolte prima della pubblicazione.

User story: la prima C da sola non basta!

Siamo arrivati alla fine del nostro excursus sulle user stories.
Come abbiamo visto le storie non sono un nuovo modo di scrivere i requisiti, ma molto di più. Hanno come minimo 3 funzioni:

  • sono un placeholder per una conversazione sui bisogni degli utenti
  • sono strumenti per capire cosa vogliono gli utenti e cosa ha senso realizzare
  • sono un modo per programmare il lavoro del team.

Quindi ricordatevi di prestare attenzione a tutti e 3 gli aspetti: non solo al testo che andrete a scrivere su una scheda, ma anche alle conversazioni sulla funzionalità e ai criteri di conferma che utilizzerete per determinare se la storia è completa.

Note

Questo post è liberamente tratto dalle lezioni di Mike Cohn sulle user stories. Se volete approfondire vi consiglio il suo corso – molto valido – “Better User Stories“.

Nel blog trovate anche diversi post dedicati alle storie. Eccone qui una piccola selezione:

Certificarsi Product Owner

Periodicamente ripropongo questo post che suscita sempre un certo interesse vedendo le statistiche. Nell’ormai lontano 2015 scrivevo così…

Di ritorno da una 2 giorni londinese con Roman Pichler ho deciso di scrivere un post per tutti coloro che stanno meditando sul tema certificazione Scrum Product Owner.
A ruota libera seguono alcune informazioni pratiche e qualche consiglio di prima mano.

Quando fare la certificazione

Nel mio caso il corso di certificazione arriva dopo qualche anno che svolgo il ruolo di Product Owner.
Non sarò imparziale ma ritengo che per trarre il massimo da questo corso sia utile affrontarlo dopo aver svolto un po’ di esperienza sul campo ed aver toccato con mano quali possono essere i problemi più comuni nell’adozione di Scrum e nelle transizioni agili.

Durante il corso della durata di 2 giorni vengono trattati tutti gli argomenti relativi alla product ownership:

Oltre ad approfondire la teoria vengono chiariti dubbi tramite esempi ed esercitazioni in aula. E’ un’ottima occasione per mettere alla prova le vostre conoscenze e portare esempi di prima mano. Fate domande e confrontatevi con i vostri colleghi di corso. Solo così sfrutterete al massimo il corso (quando mai vi capita di ritrovarvi con decine di Product Owner a portata di mano?).

Dove trovare un corso valido

Ai tempi della mia certificazione la logistica non arrideva certo a noi italiani.
Sino al 2013 era quasi impossibile trovare un corso da Product Owner nel nostro paese, a differenza di quelli per Scrum Master per i quali c’era già maggiore offerta. Questo è il motivo per cui 5 anni fa ho scelto Londra per ottenere l’attestato di CSPO.

Fortunatamente oggigiorno il panorama è cambiato e la scelta è molto più ampia.
Online trovate pagine e pagine di annunci sui corsi di certificazione; ce ne sono così tanti che è davvero difficile orientarsi per chi è alle prime armi.
Quindi se nel post originario elencavo le poche alternative presenti, adesso mi permetto di suggerirvi le società che conosco personalmente, che hanno maggiore esperienza sul campo e sono veramente attive nella community Agile italiana (aka sanno perfettamente di ciò che parlano).
Ecco qui di seguito in ordine sparso i corsi che offrono.

Certified Scrum Product Owner®Connexxo

C’è un corso online in inglese tenuto da Pierluigi Pugliese verso la fine di gennaio e uno in lingua italiana all’inizio di febbraio. Di fatto trovate un corso di certificazione ogni mese quindi vi consiglio di tenere d’occhio il calendario.
Pierluigi è un trainer di grande esperienza che, oltre alle conoscenze teoriche, può trasmettervi consigli e suggerimenti per il lavoro sul campo.

Certified Scrum Product Owner®Agile42

Anche in questo caso parliamo di un corso remoto che consente di acquisire la certificazione CSPO di Scrum Alliance. I coach di agile42 che lo tengono sono Giuseppe De Simone e Roberto Bettazzoni. Il primo appuntamento è in programma per il 17 febbraio 2021 ma trovate anche date successive.

Professional Scrum Product Owner PSPO IInspearit

Tre date disponibili nel 2021 per la certificazione rilasciata da Scrum.org.
La formazione prevede molti workshop pratici e giochi per facilitare l’apprendimento dei concetti e per stimolare a proseguire con l’allenamento delle abilità dopo il corso.

Agile Reloaded

Agile Reloaded è una realtà tutta italiana che aiuta aziende, enti e organizzazioni ad applicare la metodologia agile per migliorare i processi, la collaborazione e il time to market. E’ un team di coach di tutto rispetto e anche se il sito non riporta in questo momento un elenco di corsi a catalogo vi consiglio di contattarli perché sanno la loro sul tema Product Ownership.

Sembra che nel nuovo anno tutta la formazione rimanga online per ora e – date le difficoltà attuali – va bene così.
Tuttavia quando la situazione tornerà normale considerate la possibilità di optare per i corsi in presenza perché ritengo parte fondamentale di questo tipo di training i role playing che avvengono in aula con il docente e con gli altri partecipanti (si possono fare anche con il supporto di tanti tool online, ma non è la stessa cosa).

Quanto costa certificarsi Product Owner

Una cosa è certa: non è regalato!
Se pianificate il corso con un certo anticipo e non avete particolare fretta di ottenere la certificazione potrete beneficiare di una tariffa scontata (la cosiddetta “early bird”) pari a ca. 1.000- 1.100 euro + IVA.
Il prezzo pieno più basso che ho visto parte dai 1.035 euro + IVA per corsi tenuti in Italia, la media è intorno ai 1.300 euro + IVA; più cari invece i corsi disponibili nel resto d’Europa (si va da 1.500 a oltre 2.300 euro).

In ogni caso non si tratta di una cifra banale, motivo per cui vi consiglio di tenere d’occhio con largo anticipo il calendario dei corsi e – se possibile – provare a proporre in prima persona questo percorso di formazione alle risorse umane. Chissà mai che ve lo accordino o lo prendano in considerazione come parte di un intervento più ampio di digital transformation … ;-)

Se invece dovete risparmiare a tutti i costi ma non volete rinunciare ad un attestato riconosciuto sappiate che i corsi online in modalità self-study hanno prezzi decisamente più contenuti (parliamo di circa 350 euro + IVA). E’ un’opzione anche questa, ma non mi sento di caldeggiarla.

Quale trainer scegliere

In tempi normali alcuni formatori sono inaccessibili per via della logistica ma dovendo andare online in ogni caso se non avete problemi con la lingua inglese scegliete tra i top di gamma.
Tenete presente in ogni caso che i trainer accreditati presso le maggiori organizzazioni che promuovono Scrum nel mondo offrono garanzie di professionalità e grande esperienza.

Se avete possibilità di scelta vi suggerisco di selezionare un  coach che non sia solo un esperto di metodologie agili e Scrum, ma che abbia una specifica esperienza sul campo come Product Owner. Sul sito di Scrum Alliance e Scrum.org, ad esempio, potete scegliere tra un numero elevato di trainer alcuni dei quali sono dei guru indiscussi della product ownership.

I motivi per certificarsi

Ho scelto di certificarmi perché mi piace portare a compimento quello che faccio e allo stesso tempo mettere in discussione le mie conoscenze.
Ho avuto la fortuna di accedere al corso a spese della mia azienda, ma sono stata io stessa a proporlo al mio responsabile come un importante gradino di crescita nel mio percorso professionale.
Ho avuto l’opportunità e l’ho presa, ma avrei sostenuto il corso a mie spese?

Sono realista: quando mi sono certificata in Italia la professione di Product Owner non era ancora così affermata.
Diverse aziende che cominciavano ad avvicinarsi alle metodologie agili decidevano di investire sulla figura dello Scrum Master ma non sentivano l’esigenza di assumere o far crescere un PO.

Dal post originale del 2015…
E’ questione di tempo. Mano a mano che lo sviluppo software adotterà sempre più pratiche agili anche le figure professionali legate a questa metodologia saranno più richieste.
A quel punto avere in mano una certificazione che è una rarità in Italia vi darà il vantaggio dei first mover!

Oggi alla fine del 2020 posso dire che si è davvero realizzato quello scenario; Linkedin indicizza 22.000 Product Owner in Italia.
Le aziende hanno compreso l’importanza di questo ruolo e cercano persone preparate che le aiutino nelle tante sfide digitali presenti e future.
Sono sempre di più le persone che si certificano, in alcuni casi senza neanche avere esperienza sul campo. A tutte loro auguro di incontrare favolosi mentor com’è stato per me e di non smettere mai di crescere nelle competenze della product ownership.

IAD 2019: la mia intervista con AgileForItaly

In occasione degli Italian Agile Days che si sono tenuti a Modena l’8 e il 9 Novembre 2019 ho avuto il piacere di fare quattro chiacchiere sul tema Impact Mapping con gli amici di AgileForItaly.

Li conosco da tempo e ammiro il gran lavoro che Tiziano, Pierpaolo e Davide  stanno facendo per diffondere in modo chiaro e divertente le tematiche Agili in Italia.
Ci accomuna la medesima passione e la voglia di non prenderci troppo sul serio ;)

Nell’intervista parliamo di temi che ho già avuto modo di approfondire in altri post:

Qui in particolare ci siamo soffermati su come applicare l’Impact Map ai progetti growth, come produrla in modo collaborativo all’interno del team di lavoro, come darne visibilità in azienda e ogni quanto aggiornarla. Ho aggiunto anche qualche trucchetto su come partire da 0.

Ecco qui l’audio.
Buon ascolto!

E se ancora non lo conoscete vi consiglio di dare quanto prima un occhio al sito di AgileForItaly. Troverete tante risorse interessanti.