Come posso specificare le storie degli utenti per i processi con coinvolgimento di terze parti?

2

Supponiamo di avere un processo simile al seguente:

  1. L'utente super riceve una richiesta interna per avviare un processo.
  2. Super utente approva la richiesta.
  3. Viene attivato un processo esterno appartenente a una terza parte.
  4. Una volta completato il processo di terze parti, il superuser riceve il risultato e lo accetta o lo rifiuta.

È facile vedere come formulare le storie degli utenti per 1, 2 e 4, ma 3 è un po 'più complicato. Io:

  • Salta perché è esterno al nostro sistema e considera 3 come un dettaglio di implementazione di 4 (dopotutto, 4 dipende 3 in corso); questo potrebbe richiedere una documentazione esterna del processo effettivo o storie utente / attività potenzialmente gonfie per 4 .
  • Tratta il sistema esterno o uno dei suoi utenti come utente e scrivi la storia dell'utente dal loro punto di vista ("come utente [system x], voglio elaborare ..."); sembra che dovrebbe essere al di fuori dei nostri requisiti funzionali.
  • Tratta come un "compito" contro 2 ; questo non sembra giusto, dato che la funzionalità di approvare qualcosa in realtà non implica l'attivazione di qualche altro processo.
  • Qualcosa di completamente diverso.

Sembra che l'atto dell'utente che approva la richiesta e approva la risposta debba essere visto (funzionalmente) come indipendente dal fatto che il processo è avvenuto nel mezzo ma - senza specificare che da qualche parte - 4 potrebbe essere "implementato", anche se non accadrà mai (cioè se la risposta è disponibile, l'utente la vede ma una risposta non sarà mai effettivamente disponibile perché il processo di terze parti non è mai realmente attivato).

Esiste un modo prescritto o convenzionale per gestire questi tipi di scenari?

    
posta Ant P 13.11.2014 - 14:10
fonte

3 risposte

2

Trovo utile in queste situazioni fare un passo indietro dai "requisiti funzionali" per un secondo e provare a vederlo come il processo aziendale di livello superiore che si sta verificando. Per me, mi sembra che tu abbia solo 3 storie:

Storie primarie

  1. Come iniziatore di processo, devo essere in grado di inviare una richiesta interna al Super User per l'approvazione.
  2. In qualità di Super User, devo essere in grado di approvare le richieste al fine di garantire che solo le richieste qualificate vengano inviate al sistema esterno.
  3. In qualità di Super User, devo essere in grado di accettare o rifiutare i risultati dell'elaborazione del sistema esterno.

Il fatto che i dati vengano trasferiti in qualche modo tra i sistemi è un problema di implementazione e, a mio avviso, non dovrebbe far parte dei criteri di accettazione. Se il Super User può approvare la richiesta e un piccione vola su alcune persone in Elbonia per un'ulteriore elaborazione, questo è altrettanto valido finché i dati arrivano al sistema esterno e un risultato ritorna in qualche modo per accettare / rifiutare .

Tuttavia, la mia analogia con il piccione potrebbe aver innescato un "ma ciò richiederebbe troppo tempo", il che indica che probabilmente hai un criterio di accettazione sulla storia riguardante i tempi di transazione accettabili per inviare e ricevere richieste.

Da una prospettiva di implementazione, questo ti consente di pubblicare storie contro un'API stoppata e completare storie, mantenendole indipendenti l'una dall'altra.

Storie di sistema esterne

Se stavi sviluppando anche il sistema esterno, ti suggerirei una storia aggiuntiva per il team di sviluppo esterno:

  1. In qualità di Super User, ho bisogno che le richieste approvate siano elaborate e che un valore sia restituito per accettazione.

Avrai quindi i criteri di accettazione su come elaborare e restituire valori in quella storia per il team che sviluppa il sistema esterno.

Altri criteri di accettazione nascosti

Le storie sopra sembrano avere un'immagine incompleta. Se i dati non vengono mai elaborati e archiviati, non sarà possibile tornare indietro e visualizzarli in un secondo momento. È importante? Se hai creato uno stub API e non hai eseguito il sistema esterno, perché sarebbe male?

(Sarebbe male, ma la domanda dovrebbe far scattare un pensiero su altre storie di cui probabilmente hai bisogno)

    
risposta data 13.11.2014 - 15:35
fonte
0

Si potrebbe anche sostenere che il caso sopra descritto è una storia per singolo utente se il valore aziendale per il superutente non viene derivato fino al completamento del passaggio 4 nel processo.

Considera una storia utente di livello superiore come:

COME SUPER user VOGLIO eseguire il processo aziendale XYZ COSÌ CHE POSSO accettare / rifiutare i risultati.

1,2,4 diventano criteri di accettazione per convalidare che l'utente super può eseguire questi passaggi nel sistema ... convalidare i super utenti riceve la richiesta, convalidare super utente può approvare / negare la richiesta, convalidare il super utente può , rifiuta / approva il risultato.

3 potrebbe anche essere considerato un criterio di accettazione ... qualcosa del tipo: "Convalida il sistema interno consuma l'output dal sistema esterno"

Se la storia utente di alto livello non è sufficientemente dettagliata per rientrare in un'iterazione, la risposta di Jay S fornisce una grande scomposizione.

    
risposta data 14.11.2014 - 22:36
fonte
-1

Poiché il processo di terze parti non fa parte del sistema che stai sviluppando, ma il tuo sistema deve interagire con esso, il processo di terze parti è un attore per il tuo sistema.
In generale, un attore può essere considerato come una generalizzazione di un utente. Gli attori possono essere utenti umani, ma anche sistemi informatici esterni con cui il sistema comunica.

Potresti scrivere la user story per il passaggio 3 con il sistema esterno come utente:

  1. Come < sistema esterno & gt ;, voglio ricevere una notifica in < in questo modo > quando una richiesta viene approvata, così posso eseguire < processo esterno & gt ;. Indicherò il completamento del < processo esterno > in < in questo modo >.
risposta data 13.11.2014 - 15:24
fonte

Leggi altre domande sui tag