User Stories - Andrea Francia @ WeDev 7 novembre 2018

Andrea Francia
Andrea FranciaFull Stack Something at 7Pixel S.r.l.
Storie
Andrea Francia

WeDev - 7 novembre 2018
1
@andreafrancia
Chi sono
@andreafrancia@andreafrancia
Andrea Francia
• Programmatore full stack (Ruby)
• Automatizzo i browser
• Faccio Test-Driven Development
• Uso quotidianamente XP (da 5 anni)
• Coordino il gruppo Test-Driven Development Milano
Sono un programmatore da
tanto tempo
Occasionalmente sono
coach (di TDD)
Conduco il TDD Milano
User Stories - Andrea Francia @ WeDev 7 novembre 2018
@andreafrancia
User Stories - Andrea Francia @ WeDev 7 novembre 2018
User Stories - Andrea Francia @ WeDev 7 novembre 2018
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Tre cose:
• Shared Understanding (Comprensione/Visione condivisa)

• Un’idea di come funziona lo sviluppo con le storie

• Jukebox
User Stories - Andrea Francia @ WeDev 7 novembre 2018
La storia del telefono
senza fili
The telephone game
https://goo.gl/images/Hu5hSg
Royce 1970
https://goo.gl/images/ftf6Ts
https://goo.gl/images/UC614o
https://goo.gl/images/Ld93xv
https://goo.gl/images/jEEUpv
Mars Climate Orbiter
https://it.wikipedia.org/wiki/Mars_Climate_Orbiter
https://it.wikipedia.org/wiki/Mars_Climate_Orbiter#/
media/File:Mars_Climate_Orbiter_-_mishap_diagram.png
Visione condivisa
User Stories - Andrea Francia @ WeDev 7 novembre 2018
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Come ottenere la visione
condivisa secondo me?
• Lasciare parlare chi deve costruire il prodotto
(sviluppatori) con chi ha bisogno che il prodotto sia
costruito (clienti).

• Il manager dovrebbe facilitare la comunicazione tra
sviluppatori e cliente, non dovrebbe essere il canale.

• In XP è previsto il “cliente il loco” (customer on site) che
è a disposizione del team di sviluppo per rispondere a
qualsiasi domanda e scrive i test di accettazione per
ogni carta.
Le storie in XP
Cos’è una storia?
Cosa sono le storie?
• Sono il modo con cui si organizza lo sviluppo in eXtreme
Programming
USER STORIES
13
https://www.slideshare.net/xpmatteo/agile-fluency-e-che-cosa-significa-per-il-business/13
Ron Jeffries’ 3Cs
Carta -vs- Storia
Non devono essere per
forza scritti come racconti.
Il racconto è utile per
comunicare con gli altri
• Esempio: Quando ho raccolto i requisiti da Carola
Dove sono i dettagli?
Come funziona il
processo?
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Chi scrive le storie?
Come si selezionano le
storie per l’iterazione?
Buone storie
INVEST
https://xp123.com/articles/invest-in-good-stories-and-smart-tasks/
Independent
• Ogni storia dovrebbe essere indipendente dalle altre.

• In questo modo il cliente può scegliere la priorità senza
vincoli

• Sono necessarie degli skill dal punto di vista del design
per farlo.
Negotiable
• Le storie dovrebbero essere negoziabili. 

• Non sono un contratto scritto, ne dei requisiti su cosa il
software deve implementare

• Le carte dovrebbero avere una breve descrizione della
funzionalità

• I dettagli verrano fuori durante la discussione tra il cliente
e i programmatori.
Valuable
• Ogni storia dovrebbe avere un valore per qualcuno, per
l’utente finale, il cliente o qualche altro stakeholder.
Small
• Le storie dovrebbero essere abbastanza piccole da poter
stare dentro un iterazione.

• Una buona dimensione potrebbe essere quella che
permette di mettere da tre a cinque storie nell’iterazione.

• Usare le tecniche di splitting
Testable
• La storia poter essere verificabile

• altrimenti potrebbe essere impossibile dire quando
sono finite.

• I criteri di accettazione si possono mettere per esempio
dietro la carta

• Noi usavamo una wiki
Cosa sono i criteri di
accettazione?
Esempio criteri di
accettazione
• Storia: “A user can pay for the items in her shopping cart with a credit card”

• Criteri di accettazione:

• Test with Visa, MasterCard and American Express (pass).

• Test with Diner's Club (fail).

• Test with a Visa debit card (pass).

• Test with good, bad and missing card ID numbers from the back of the
card.

• Test with expired cards.

• Test with different purchase amounts (including one over the card's limit).
Stime e pianificazione
Planning poker
• 1. Agree on a short size scale

• 2. Team briefly discusses a story

• 3. Everyone silently selects a point card 

• 4. Team reveals all cards in unison

• 5. If outliers exist, discuss and re-vote
Planning Game
• Si misura la velocità del tema nell’iterazione precedente

• Si stima la capacità del team per prossima l’iterazione

• Il cliente da una priorità alle storie

• Gli sviluppatori danno una stima alle storie

• Si scelgono tante storie quante ne servono per riempire
l’iterazione, se necessario si splitta qualche storia
Quanto fare lunga
l’iterazione?
• Più corta è meglio è

• Servono skill sulle pratiche tecniche e design per tenerla
corta

• Cercare di arrivare ad una settimana dovrebbe essere un
obiettivo
Come misurare la
velocità
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Quando finiamo?
User Stories - Andrea Francia @ WeDev 7 novembre 2018
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Il formato connextra
Come ce lo raccontano
• As a ___________________

• I want to ___________________

• So that ___________________
Un esempio
• Come addetto al customer care telefonico

• Vorrei poter filtrare velocemente gli ordini dato il nome di
un cliente

• Così da poter vedere subito i suoi ordini e trovare quello
su cui ha il problema
Permette di chiarire gli aspetti
fondamentali della storia
• As a ___________________ —> Chi ne beneficia?

• I want to ___________________ —> Da che cosa?

• So that ___________________ —> Perché?
Problemi/incomprensioni
• Ci perdiamo il titolo della storia

• Non è un template per scrivere la storia

• È facile dimenticarsi del so-that
Problemi
Esempio non corretto
• Come: utente

• Vorrei: vedere il banner per i cookies

• In modo che:
Si chiamano “storie”
perché vanno raccontate
“Come Tizio vorrei fare X in
modo da” è un modo per
iniziare la conversazione.
I template possono servire solo per
imparare
Rachel Davies holding a story card
https://www.oreilly.com/library/view/user-story-
mapping/9781491904893/ch07.html
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Dove finiscono le
specifiche? Esempi
Dove finiscono le
specifiche?
• Sul cartoncino non c’è spazio per le specifiche

• Non vuol dire che non dobbiamo farle, solo che le
mettiamo sul supporto adeguato => Non tutto è scritto
sul cartoncino
Le storie sono una
promessa per una
conversazione futura
https://www.slideshare.net/jeffpatton/user-story-
mapping-discovery-the-whole-story
https://www.slideshare.net/jeffpatton/user-story-
mapping-discovery-the-whole-story
Code and Tests
• Maintain only the code and the tests as permanent
artifacts. Generate other documents from the code and
tests. Rely on social mechanisms to keep alive important
history of the project. 

• Customers pay for the what the system does today and
what the team can make the system do tomorrow. Any
artifacts contributing to these two sources of value are
themselves valuable. Everything else is waste.
https://www.slideshare.net/giordano/bdd-tdd-and-beyond-
the-infinite/120-Feature_Evolving_a_living_cell/120
Argomenti extra
Fare una demo per il
planning game?
Le storie sono una pratica
dell’eXtreme Programming
User 

Stories
User Stories - Andrea Francia @ WeDev 7 novembre 2018
Come si usano le storie
• Fatto significa fatto tutto: per ogni storia:

• si raccolgono, comprendono e discutono i requisiti

• si decide una soluzione soddisfarli

• si implementa, si integra, si valida e si rilascia
l’incremento
Storie senza le
pratiche tecniche
Le storie “tecniche”
Perché usare la
carta?
Perché usare la carta?
• Lo fanno anche ad Atlassian (gli sviluppatori di Jira)

• Non serve login per vedere le informazioni.

• Le operazioni sono più veloci (CRUD).

• Montare una webcam su una board costa meno di una
licenza di un tool di planning.
Jeff$Pa'on$&$Associates,$jeff@jpa'onassociates.com,$twi'er@jeffpa'on
Shared$Understanding$and$collabora?on$
at$Atlassian
29
https://www.slideshare.net/jeffpatton/user-story-mapping-discovery-the-whole-story
Jeff$Pa'on$&$Associates,$jeff@jpa'onassociates.com,$twi'er@jeffpa'on
Shared$Understanding$and$collabora?on$
at$Atlassian
30
https://www.slideshare.net/jeffpatton/user-story-mapping-discovery-the-whole-story
Jeff$Pa'on$&$Associates,$jeff@jpa'onassociates.com,$twi'er@jeffpa'on
Shared$Understanding$and$collabora?on$
at$Atlassian
31
https://www.slideshare.net/jeffpatton/user-story-mapping-discovery-the-whole-story
User Stories - Andrea Francia @ WeDev 7 novembre 2018
https://www.reddit.com/r/theydidthemath/comments/7cbc5c/
request_what_is_the_carbon_footprint_difference/
https://www.theguardian.com/environment/green-living-blog/2010/jun/04/carbon-
Come splittare una storia
https://agileforall.com/new-story-splitting-resource/
https://devmaheshwari.wordpress.com/2011/11/18/
running-your-cucumber-features-on-different-browsers/
Agile Jira? Ma anche no!
https://it.atlassian.com/software/jira/agile-project-
management
@andreafrancia
Grazie
Andrea Francia
@andreafrancia
1 of 94

More Related Content

Similar to User Stories - Andrea Francia @ WeDev 7 novembre 2018

Introduzione - Web designIntroduzione - Web design
Introduzione - Web designgowow
661 views36 slides

Similar to User Stories - Andrea Francia @ WeDev 7 novembre 2018(20)

Sviluppo Agile secondo l'approccio SCRUMSviluppo Agile secondo l'approccio SCRUM
Sviluppo Agile secondo l'approccio SCRUM
Matteo Papadopoulos4.2K views
Da JavaScript a TypeScriptDa JavaScript a TypeScript
Da JavaScript a TypeScript
Roberto Messora353 views
Presentazione noestimatesPresentazione noestimates
Presentazione noestimates
Tommaso Torti492 views
Introduzione - Web designIntroduzione - Web design
Introduzione - Web design
gowow661 views
Slide Wallabiez Agile Day 2007Slide Wallabiez Agile Day 2007
Slide Wallabiez Agile Day 2007
Manuela Munaretto443 views
C lab pretotypingC lab pretotyping
C lab pretotyping
Giuseppe (Pino) Rossi654 views
Creare un Information Radiator con DelphiCreare un Information Radiator con Delphi
Creare un Information Radiator con Delphi
Marco Breveglieri630 views
WordPress Theme reviewWordPress Theme review
WordPress Theme review
Alessandro Muraro355 views
Symfony va a SkuolaSymfony va a Skuola
Symfony va a Skuola
Fabio Giannese (Diodœ)284 views
Agile Fixed PriceAgile Fixed Price
Agile Fixed Price
Giulio Roggero1.7K views
Agile@scale, second chanceAgile@scale, second chance
Agile@scale, second chance
Felice Pescatore548 views

More from Andrea Francia(20)

User Stories - Andrea Francia @ WeDev 7 novembre 2018