Come gestire storie che condividono funzionalità


27

Ho due storie (so che manca la parte di beneficio)

  1. In qualità di utente di gestione del credito, posso visualizzare le differenze salariali attuali e precedenti per gli uffici.
  2. In qualità di utente di gestione del credito, posso ricevere un'email contenente un PDF delle differenze salariali attuali e precedenti per gli uffici.

I due sono correlati in quanto avrebbero gli stessi criteri Query / Filter. L'unica differenza è che nella storia "Visualizza", i risultati sono mostrati all'utente e nella storia "Email", i risultati sono scritti in un PDF che viene inviato via email all'utente.

Sto lottando con la separazione degli aspetti comuni di queste due storie o se dovrei anche farlo.

Ad esempio, entrambi avranno la stessa query, ciò che fanno con i risultati è diverso.

Devo separare la query in un'altra storia puramente tecnica?

La creazione del PDF e l'invio dell'e-mail dovrebbero avvenire offline, dovrebbe diventare una storia tecnica?

Potevo vedere suddividere queste due storie in 2 storie funzionali e 2 storie tecniche.

  1. Come sistema, posso calcolare le differenze nella gestione stipendi corrente e precedente per gli uffici.

  2. Come utente di gestione del credito, posso visualizzare le differenze nella gestione stipendi corrente e precedente per gli uffici.

  3. Come sistema, posso creare un documento PDF delle differenze nella contabilità salariale attuale e precedente per gli uffici.

  4. Come utente della gestione del credito, posso richiedere di ricevere un'e-mail contenente un PDF delle differenze nella gestione stipendi corrente e precedente per gli uffici.

Il problema a cui continuo a tornare è che le 4 storie non sono indipendenti e non "tagliano la torta".

Quindi non sono del tutto sicuro di come gestire questi due.


4
se hai intenzione di utilizzare "user story tecniche", tieni presente che qui non ci sono 3 cose, non 4. Le differenze che calcoli dal tuo modello e due tipi di viste, una vista PDF e una vista GUI. Stai solo presentando il rapporto in modo diverso.
candied_orange,

1
Affronta uno di loro. Quindi affronta l'altro. È così semplice
Formica P

Perché sono due storie?
JeffO

Risposte:


55

Le User Story non sono specifiche di sistema o requisiti funzionali. Piuttosto, sono l'inizio di una conversazione che può portare a tali specifiche o requisiti.

Di conseguenza, mi aspetto che si verifichino sovrapposizioni nell'implementazione del sistema. Le User Story non intendono descrivere tale sovrapposizione funzionale o eliminarla. Lo scopo di User Stories è catturare le aspettative funzionali dal punto di vista dell'utente, non descrivere i dettagli dell'implementazione.


3
In realtà stava iniziando a scrivere qualcosa di molto simile, ma questa risposta copre già tutti i miei aspetti, quindi +1.
Doc Brown,

Lo stesso qui, mantieni l'implementazione.
candied_orange,

1
@JoeYoung: i dettagli dell'implementazione vanno - nell'implementazione, dove altro? E come lo dici a un altro sviluppatore dipende dalla struttura di comunicazione del tuo team. Naturalmente, potrebbero esserci requisiti funzionali qui, come "quando si visualizzano le differenze salariali online o quando si recuperano come PDF, è importante ottenere esattamente lo stesso contenuto in entrambi i casi" . In tal caso, aggiungilo come nota ad almeno una (meglio entrambe) storie utente. Tuttavia, non inserire alcuna descrizione di come questo requisito verrà implementato nella storia.
Doc Brown,

3
Il design non significa dire a uno sviluppatore come risolvere i problemi. Sta dicendo a uno sviluppatore quali problemi risolvere.
candied_orange,

1
Quando valuti il ​​costo del tempo di queste storie, come le valuti? Supponiamo che la parte di query comune richieda 5 ore, la parte di visualizzazione Web richieda 6 ore e la parte di visualizzazione PDF richieda 7 ore. Stimate il tempo, dite arbitrariamente uno costa 11 ore (5 + 6) e l'altro 7 (o viceversa: 12 e 6), oppure li stimate a 6 e 7, ma notate altrove in alcuni in che modo il sovraccarico di 5 ore per entrambi combinato? 11 e 12 (i 5 aggiunti ad entrambi)? Se dici "Questo modello non è destinato a gestire questi casi. Basta parlarne." potrebbe ancora essere registrato su uno storyboard, ma come?
Aaron,

15

No: prova a dividere le storie, fai una storia e poi l'altra.

Fare: assicurarsi che il team di sviluppo sia a conoscenza della seconda storia.

Il problema con il tentativo di pianificare i compiti dettagliati e inventare un modello generico in grado di gestire entrambi in modo elegante è che è difficile.

Lo scopo delle storie degli utenti è di fare cose. L'eleganza è un obiettivo secondario e dovrebbe essere lasciato al refactoring.

Ovviamente è super fastidioso se si prende questo al massimo e non si parla a nessuno degli altri dieci compiti simili che devono essere svolti, ma è anche del tutto immaginabile che il secondo o il terzo compito non siano pensati fino a quando il primo non viene completato. Se vuoi pianificare tutto, vai con la cascata.


4

In violento accordo con Robert Harvey, lo scopo di una user story è capire cosa l'utente deve essere in grado di fare. Mentre esegui la toelettatura, il cliente comprende e si preoccupa della storia dell'utente, ma gli sviluppatori si preoccupano un po 'di più. Dopo aver posto abbastanza domande per comprendere e stimare il lavoro, è possibile creare attività per supportarle.

In questo caso particolare, è possibile creare attività che consentano il nucleo di entrambe le storie utente che verrebbero condotte insieme a qualunque cosa si affronti per prima.

Le cose importanti da aggiungere alla user story sono:

  • Criteri di accettazione
  • ipotesi

Vale la pena notare che non è necessariamente bisogno di documentare non più di quanto la storia. La storia ti offre il contesto di livello aziendale. Quale tracciamento granulare di cui hai bisogno dipende da te (e dipende in gran parte dai vincoli organizzativi). Dovresti mirare a minimizzarlo però (persone sopra processo e tutto il resto).
Formica P

@AntP, d'accordo, ma questo va verso la Definizione del Fatto (DoD) e dovrebbe adattarsi sul retro della tua carta 3x5 che ha la storia dell'utente.
Berin Loritsch,

2

A rigor di termini, le User Story sono la promessa di una conversazione per comprendere il risultato richiesto.

Ad esempio, prendendo la tua seconda storia utente

In qualità di utente di gestione del credito, posso ricevere un'email contenente un PDF delle differenze salariali attuali e precedenti per gli uffici.

Pensa a quanto segue:

  • Qual è l '"esigenza" dell'utente che guida questo requisito? (Il PDF in una e-mail come soluzione viene da loro? Questo potrebbe non rispondere alle necessità e il tuo team potrebbe trovare una soluzione migliore)
  • Qual è la sezione minima che può rispondere a questo "bisogno" dell'utente e convalidare la tua soluzione? I cicli di feedback brevi sono preziosi.

Quando ti avvicini alla suddivisione della storia, ricorda i tuoi criteri INVEST, ove possibile.

  1. Sono indipendente
  2. N egotiable
  3. V aluable
  4. E stimolante
  5. Centro commerciale S.
  6. T estable

Va bene avere storie che hanno un ordinamento naturale. Prendilo in considerazione: di solito la prima storia è più grande in quanto introduce le funzionalità richieste e la seconda storia si basa su di essa.

Sfiderei le storie "tecniche", poiché in genere sono più probabilmente compiti che aiutano a supportare l'implementazione delle storie incentrate sui risultati degli utenti.


2

TL; DR

Supponendo che entrambe le storie utente vengano incluse nell'ambito della stessa iterazione, è compito del team scomporre le storie in un piano di implementazione e nelle relative attività. Le storie degli utenti forniscono contesto e portata; non sono implementazioni, specifiche o voci dell'elenco di punzonatura.

Le storie dovrebbero essere scomposte in Attività di iterazione

Sia che tu stia seguendo Scrum o qualche altra metodologia agile, è un errore comune saltare la fase di pianificazione di un'iterazione. In Scrum, quando un Product Backlog Item (non deve essere una user story, a rigor di termini) viene inserito nello Sprint corrente, il team dovrebbe quindi utilizzare una parte di Sprint Planning per fattorizzare i punti in comune tra gli oggetti di lavoro, identificare le dipendenze e quindi sviluppare uno Sprint Backlog per acquisire il lavoro a livello di attività.

Come hai sottolineato nel tuo post, non è raro (ed è in effetti desiderabile) che una iterazione agile contenga storie utente strettamente correlate. In Scrum, questo è emerso dall'uso dello Sprint Goal. Al di fuori del framework Scrum, spesso ha ancora senso inserire storie correlate a causa dei loro obiettivi condivisi o dipendenze condivise. Estraendo e quindi lavorando sulle dipendenze condivise all'interno di una singola iterazione, i team possono spesso evitare la necessità di refactoring o iterare il codice per funzioni simili ma non identiche in futuro.

Compiti Implementare storie

Ecco un altro modo di pensare alla pianificazione delle dipendenze per le storie degli utenti. In generale:

  1. Un epico / tema viene utilizzato per la pianificazione o il raggruppamento a lungo termine su un backlog.
  2. Una user story viene utilizzata per comunicare obiettivi, contesto e ambito.
  3. La pianificazione just-in-time viene utilizzata per sviluppare un'implementazione che rientri in una singola iterazione.
  4. Le attività implementano il piano just-in-time che soddisfa la Definizione di Fine per una o più storie utente.

Trattare le storie degli utenti come un piano di implementazione o un elenco di attività è considerato dalla maggior parte dei professionisti come un anti-modello agile. Qualunque cosa tu scelga di chiamarlo, non saltare la fase di pianificazione just-in-time del tuo framework agile e assicurati di tenere traccia delle dipendenze e dei dettagli di implementazione condivisi da qualche parte all'interno del processo del tuo team.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.