Come faccio a creare storie utente come sviluppatore?

9

Sto scrivendo un sistema in cui sia io che il proprietario del sistema siamo sviluppatori, e al momento siamo l'unica fonte di "richieste" o requisiti per il sistema, che vorrei catturare nelle storie degli utenti legate alle funzionalità {1} . La mia priorità urgente ora è quella di ottenere un backlog managialo catturato. Come dovrei andare a cogliere il livello di specifiche tecniche con cui sono abituato a lavorare nelle storie degli utenti, che non dovrebbero essere troppo tecniche.

{1} Sto valutando il servizio di gestione dei progetti agile TargetProcess e ogni storia utente deve essere associata a una funzione principale. Il sistema sembra un buon compromesso, quindi questo piccolo vincolo è qualcosa con cui preferirei lavorare piuttosto che aggirare.

    
posta ProfK 16.07.2012 - 19:07
fonte

2 risposte

14

Il tipico modello di storia è molto facile da visualizzare:

As a [ROLE] I need to [WHAT] so that/because [WHY].

La cosa interessante è che l'importanza dei componenti è invertita.

WHY è più importante di WHAT e questo è più importante di RUOLO

Esempio usando questa domanda

As a Software Developer I need to learn how to write User Stories so that I can populate the backlog with drafts to get discussions of the features started and get points assigned to them.

Qualcosa di più è finito complicando l'intento e l'implementazione delle User Story.

Strumenti aggiuntivi (l'integrazione è la migliore)

Gli strumenti possono essere utilizzati per acquisire informazioni aggiuntive dettagli sulle storie che vengono catturate quando le discutono per assegnare punti / stima, ma quei dettagli dovrebbero non essere parte del storia stessa. Qualcosa di semplice come un Wiki con 1 pagina per storia per mettere dettagli / trascrizioni delle discussioni è una soluzione abbastanza buona. Foglio di calcolo di Excel è una soluzione terribile.

    
risposta data 16.07.2012 - 21:22
fonte
5

Concentrati su cosa c'è e perché ed evita come quando scrivi le storie degli utenti.

Quello che stai affrontando è in realtà un ottimo esercizio per tutti gli sviluppatori. Essere in grado di esprimere il requisito in termini di business semplici è una competenza importante.

Dovresti concentrarti sui requisiti generali come "devi essere in grado di fare una singola selezione da un elenco a discesa di oggetti in modo che l'utente possa abilitare l'azione Foo" invece di specificare usando una casella combinata o una casella di riepilogo o qualsiasi altra cosa che innesca una routine specifica.

Un altro modo di avvicinarsi a questo è fingere che il codice base / framework sottostante sia quasi una scatola nera completa. Ogni volta che ti ritrovi a dire "usa l'oggetto XYZ", puoi controllare da solo chiedendoti se lo sapresti in un sistema di scatole nere.

Aggiornamento:
IMO, va bene inserire i dettagli in un caso d'uso che indichi il livello di dettaglio richiesto per le informazioni. Ad esempio, con un sistema di iscrizione è equo il gioco per specificare - cognome; campo obbligatorio
- nome di battesimo; campo obbligatorio
- Account ID; sistema generato nessun input necessario
- segno zodiacale; campo facoltativo - (suggerimento) fornire la ricerca dall'inserimento della data di nascita?
- ecc ....

La chiave è che non stai specificando il come tecnico per quella informazione. Se ti ritrovi a dire "usa una stringa di classe / carattere array / o campo varchar" per cognome, allora sai che stai esagerando.

Se sei multilingue, usa due lingue diverse come cartina del tornasole. Ad esempio, le stringhe in C sono generalmente matrici di char (acter) mentre C ++, Java e C # (ok, e quasi tutti gli altri ...) hanno un oggetto simile a String reale. Se trovi che la tua specifica è invalidata utilizzando una di queste lingue, saprai che hai specificato troppo.

Vale la pena notare che sto specificatamente utilizzando il termine Use Case anziché Strumento utente , sebbene la variante che utilizzo sia un ibrido di entrambi. Il mio obiettivo di un caso d'uso è quello di dare una panoramica di ciò che sta accadendo (una User Story nel senso più stretto), ma poi lavorare attraverso gli attori, i sistemi e le funzionalità generali che è necessario. Il mio approccio è più vicino a quello che Fowler sta suggerendo in quell'articolo di wikipedia in contrasto con l'approccio di Cockburn.

Quindi avrò un caso singolo (o così) per lo scenario di registrazione o l'elemento di lavoro. Se è davvero complesso, lo spezzerei in multipli, ma non è un grosso problema. Il caso d'uso può quindi essere suddiviso in singoli compiti, se necessario. Ciò che viene gettato in una mischia particolare dipende da molte variabili, ma non c'è nulla in questo approccio che ti impedisca di avere un componente dimostrabile alla fine della mischia.

    
risposta data 16.07.2012 - 20:11
fonte

Leggi altre domande sui tag