Il burndown soffre a causa della dipendenza "tecnica" tra le attività: dovremmo concentrarci maggiormente su ogni attività e accettare un sovraccarico aggiuntivo?

0

Abbiamo una nuova funzionalità in arrivo. Comprende 9 storie di utenti diverse, che coprono le funzioni necessarie. Tre di questi sono elencati di seguito:

  • Come utente dovrei essere in grado di aggiungere una persona in modo che ...
  • Come utente dovrei essere in grado di modificare una persona in modo che ...
  • Come utente dovrei essere in grado di eliminare una persona in modo che ...

Questi tre problemi sono di circa 20 sp ciascuno.

La sfida è che questi tre problemi sono in pratica trattati come un problema. Quindi, invece di avere un bel burndown con 20 sp bruciati martedì, 20 sp bruciati giovedì e 20 il lunedì successivo, ho visto 60 sp bruciati l'ultimo giorno (ad esempio lunedì).

In teoria, (credo) questo è sbagliato. Ogni problema implementato dovrebbe essere "atomico" nel modo in cui è possibile distribuirlo in produzione una volta terminato il problema. Questo ha senso, e nel mio scenario sopra, è possibile distribuire "aggiungi" alla produzione senza dover modificare ed eliminare.

Tuttavia, dal punto di vista tecnico, ha senso "combinare" l'implementazione dei tre. O almeno aggiungere e modificare. Condividono molta logica e potresti dover "pagare di più" se completi prima "aggiungi" e poi inizi a "modificare" il giorno dopo.

La domanda è se dovremmo continuare in questo modo e avere un brutto esaurimento in questi casi, o se dovremmo consentire un maggiore overhead e concentrarci sulla parte teorica - ad es. problemi "atomici".

O dovremmo considerare qualcos'altro?

    
posta sonstabo 23.10.2015 - 11:31
fonte

2 risposte

2

La cosa migliore da fare sarebbe attenersi alla natura atomica, cioè lavorare su una sola storia utente al posto di tutto alla fine.

Fare diverse storie correlate ma atomiche contemporaneamente può avere diversi problemi. Rende i test più difficili e richiede più tempo, in quanto possono esserci un tuffo nelle storie da testare, quindi un alluvione improvviso, che porta a carichi di lavoro di test irregolari. Significa anche che trovare la storia a cui si riferisce un bug diventa più difficile.

Nel tuo esempio, tuttavia, questo non è sempre possibile. La storia per aggiungere un utente dovrebbe molto probabilmente essere completata prima delle altre due storie, poiché sarebbe difficile eseguire il debug della modifica / eliminazione di un utente senza poterne aggiungere uno.

    
risposta data 23.10.2015 - 11:52
fonte
2

Il significato delle storie atomiche è che la tua applicazione dovrebbe trovarsi in uno stato che può essere distribuito dopo che una storia è stata completata: la costruzione non è interrotta, tutti i test superano, ecc. Ciò non significa che l'applicazione a quel punto sia < em> funzione completa , significa solo che una singola storia è terminata, ma la funzionalità nel suo insieme non funziona necessariamente ancora. Vorresti davvero implementare l'add senza la modifica o la rimozione? Probabilmente no ... Si schiera quando una FEATURE (che può essere composta da più STORIE) è completata. A volte 1 funzione = 1 trama, a volte 1 funzione = 12 storie.

Le storie atomiche implicano anche la possibilità di lavorare su più storie contemporaneamente, il che è importante nei team più grandi. In questo senso, aggiungi e modifica non possono essere considerate atomiche perché dipendono l'una dall'altra. Niente di male in questo, e anche niente di sbagliato nello scrivere il codice per la tua prima storia "aggiungi" tenendo conto del fatto che devi fare una storia di "modifica" successiva.

Per questo tipo di funzionalità, spesso abbiamo delle stime che sono pesanti nella storia di "aggiungi". In questa storia, creiamo tabelle di database, creiamo nuovi oggetti di dominio, nuove pagine e così via. La storia di 'modifica' è molto meno punti di storia perché abbiamo già tabelle, oggetti, pagine e così via. Consideriamo questo fattore quando valutiamo.

Riguardo al burndown: non si disegna un burndown basato su punti memoria. A meno che tu non stia facendo centinaia di storie in uno sprint, ha più senso bruciare in base a attività . Le storie sono stimate in punti storia per indicare la quantità di lavoro che una squadra pensa che prenderà, che consente una certa pianificazione ("quante storie possiamo inserire in uno sprint"). Le squadre quindi dividono le storie per uno sprint in compiti e il burndown su quelle. Puoi bruciare i punti storia quando fai cose come un rapporto sullo stato annuale.

    
risposta data 23.10.2015 - 12:12
fonte

Leggi altre domande sui tag