Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

User Stories - Andrea Francia @ WeDev 7 novembre 2018

88 views

Published on

Titolo completo:
User Stories: cosa sono, a cosa servono, come si usano e come no - Andrea Francia @ WeDev 7 novembre 2018

Relatore: Andrea Francia

Abstract:

Come si decide quello che dovrà fare un sistema software? E poi, come comunicare la decisione alle varie persone coinvolte? È una problema difficile perché ognuna delle parti in gioco ha visioni e necessità diverse. Project manager, sviluppatori, utenti, tester e clienti hanno bisogni diversi e punti di vista diversi. Come creare un confronto produttivo tra queste persone arrivando ad una singola decisione condivisa che tutti possono supportare e mantenerne l'equilibrio per mesi o addirittura anni? In eXtreme Programming si usano le storie, un metodo per organizzare lo sviluppo semplice e efficace che però spesso viene spiegato complicato e snaturato delle caratteristiche che lo rendono utile. In questa presentazione riprendiamo la definizione originale e vediamo come usarlo come strumento per la pianificazione del lavoro e di supporto alla comunicazione e condivisione di conoscenza.

Video:
https://www.youtube.com/watch?v=dC9G4o-m5X8

Published in: Software
  • Be the first to comment

User Stories - Andrea Francia @ WeDev 7 novembre 2018

  1. 1. Storie Andrea Francia WeDev - 7 novembre 2018 1
  2. 2. @andreafrancia Chi sono
  3. 3. @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
  4. 4. Sono un programmatore da tanto tempo
  5. 5. Occasionalmente sono coach (di TDD)
  6. 6. Conduco il TDD Milano
  7. 7. @andreafrancia
  8. 8. Tre cose: • Shared Understanding (Comprensione/Visione condivisa) • Un’idea di come funziona lo sviluppo con le storie • Jukebox
  9. 9. La storia del telefono senza fili
  10. 10. The telephone game https://goo.gl/images/Hu5hSg
  11. 11. Royce 1970 https://goo.gl/images/ftf6Ts
  12. 12. https://goo.gl/images/UC614o
  13. 13. https://goo.gl/images/Ld93xv
  14. 14. https://goo.gl/images/jEEUpv
  15. 15. Mars Climate Orbiter
  16. 16. https://it.wikipedia.org/wiki/Mars_Climate_Orbiter
  17. 17. https://it.wikipedia.org/wiki/Mars_Climate_Orbiter#/ media/File:Mars_Climate_Orbiter_-_mishap_diagram.png
  18. 18. Visione condivisa
  19. 19. 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.
  20. 20. Le storie in XP
  21. 21. Cos’è una storia?
  22. 22. 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
  23. 23. Ron Jeffries’ 3Cs
  24. 24. Carta -vs- Storia
  25. 25. Non devono essere per forza scritti come racconti.
  26. 26. Il racconto è utile per comunicare con gli altri • Esempio: Quando ho raccolto i requisiti da Carola
  27. 27. Dove sono i dettagli?
  28. 28. Come funziona il processo?
  29. 29. Chi scrive le storie?
  30. 30. Come si selezionano le storie per l’iterazione?
  31. 31. Buone storie
  32. 32. INVEST https://xp123.com/articles/invest-in-good-stories-and-smart-tasks/
  33. 33. 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.
  34. 34. 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.
  35. 35. Valuable • Ogni storia dovrebbe avere un valore per qualcuno, per l’utente finale, il cliente o qualche altro stakeholder.
  36. 36. 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
  37. 37. 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
  38. 38. Cosa sono i criteri di accettazione?
  39. 39. 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).
  40. 40. Stime e pianificazione
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. Come misurare la velocità
  45. 45. Quando finiamo?
  46. 46. Il formato connextra
  47. 47. Come ce lo raccontano • As a ___________________ • I want to ___________________ • So that ___________________
  48. 48. 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
  49. 49. Permette di chiarire gli aspetti fondamentali della storia • As a ___________________ —> Chi ne beneficia? • I want to ___________________ —> Da che cosa? • So that ___________________ —> Perché?
  50. 50. Problemi/incomprensioni • Ci perdiamo il titolo della storia • Non è un template per scrivere la storia • È facile dimenticarsi del so-that
  51. 51. Problemi
  52. 52. Esempio non corretto • Come: utente • Vorrei: vedere il banner per i cookies • In modo che:
  53. 53. Si chiamano “storie” perché vanno raccontate
  54. 54. “Come Tizio vorrei fare X in modo da” è un modo per iniziare la conversazione.
  55. 55. I template possono servire solo per imparare
  56. 56. Rachel Davies holding a story card https://www.oreilly.com/library/view/user-story- mapping/9781491904893/ch07.html
  57. 57. Dove finiscono le specifiche? Esempi
  58. 58. 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
  59. 59. Le storie sono una promessa per una conversazione futura
  60. 60. https://www.slideshare.net/jeffpatton/user-story- mapping-discovery-the-whole-story
  61. 61. https://www.slideshare.net/jeffpatton/user-story- mapping-discovery-the-whole-story
  62. 62. 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.
  63. 63. https://www.slideshare.net/giordano/bdd-tdd-and-beyond- the-infinite/120-Feature_Evolving_a_living_cell/120
  64. 64. Argomenti extra
  65. 65. Fare una demo per il planning game?
  66. 66. Le storie sono una pratica dell’eXtreme Programming User 
 Stories
  67. 67. 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
  68. 68. Storie senza le pratiche tecniche
  69. 69. Le storie “tecniche”
  70. 70. Perché usare la carta?
  71. 71. 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.
  72. 72. 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
  73. 73. 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
  74. 74. 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
  75. 75. https://www.reddit.com/r/theydidthemath/comments/7cbc5c/ request_what_is_the_carbon_footprint_difference/
  76. 76. https://www.theguardian.com/environment/green-living-blog/2010/jun/04/carbon-
  77. 77. Come splittare una storia https://agileforall.com/new-story-splitting-resource/
  78. 78. https://devmaheshwari.wordpress.com/2011/11/18/ running-your-cucumber-features-on-different-browsers/
  79. 79. Agile Jira? Ma anche no! https://it.atlassian.com/software/jira/agile-project- management
  80. 80. @andreafrancia Grazie Andrea Francia @andreafrancia

×