Come tenere traccia delle attività tecniche con BDD?

3

Sto lavorando a un team che adotta BDD per la prima volta. Stiamo svolgendo attività di greenfield per creare un sistema di dati di mercato che consenta agli utenti di richiedere dati di mercato da diverse fonti.

Utilizziamo Mingle ( link ) e la gerarchia della BDD card che è stata impostata è: A release consiste di uno o più iterations e un iteration è costituito da uno o più stories .

Un story è espresso nel formato BDD di: As a <type of user>, I want <some goal> so that <some reason>

Come affermato, questo è un progetto greenfield quindi non c'è nulla al momento in atto. Da una prospettiva BDD abbiamo catturato i requisiti di sistema dell'utente finale con storie come:

As a user I want yesterday's end-of-day prices available each morning so that I can use them as inputs to my models .

Poiché si tratta di un progetto completamente nuovo, questa singola storia richiede un sacco di compiti tecnici da completare, ad esempio:

  • Costruisci uno scheduler
  • Crea un gateway per connettersi all'origine dati del mercato esterno
  • Ottieni un database per contenere i risultati
  • ecc ...

Non sono completamente sicuro di come tenere traccia di queste attività tecniche rispetto alla mia storia in un formato BDD. Che cosa sto facendo di sbagliato? Il stories è di alto livello? Esiste un livello in release - > iterations - > stories gerarchia mancante? BDD non è adatto a questo e, se no, cosa stanno facendo gli altri? Qualcos'altro?

    
posta user783836 23.09.2015 - 12:15
fonte

2 risposte

2

È naturale che le tue prime storie abbiano un sacco di spese generali, e all'inizio è anche comune avere storie che non equivalgono a un test BDD. Devi configurare i repository per il tuo codice, configurare i server CI, disporre la struttura di base del progetto, creare file, ecc. Alcune cose richiedono tempo e non forniscono alcun valore commerciale ai tuoi clienti , ma il valore aziendale può essere un valore aggiunto per tu . Puoi riversarli anche in una storia: ricorda che il ruolo in BDD non è limitato agli utenti. Una storia che dice "come sviluppatore, voglio che l'applicazione venga costruita di notte" è una storia valida!

Man mano che il tuo progetto cresce, le storie possono accelerare perché avrai l'infrastruttura. La prima storia potrebbe comprendere la necessità di creare un database sandbox con un singolo file di script che è possibile eseguire, ma tutte le altre storie ne trarranno vantaggio. Questo deve essere preso in considerazione se fai delle stime, ovviamente, ma non c'è bisogno di evitarlo.

Ricorda che puoi anche iniziare con una storia più semplice: potresti semplicemente avere una storia in cui "Come utente, voglio essere in grado di recuperare un elenco di prezzi di fine giornata". Ciò elimina lo scheduler e il gateway. Scorri quella in modo che "Come utente voglio essere in grado di aggiornare i prezzi di fine giornata con quelli nel sistema esterno" e infine "come utente voglio che l'aggiornamento dei prezzi di fine giornata si verifichi automaticamente ogni notte ". La prima storia ti porta il database, il secondo ti prende il gateway e il terzo lo schedulatore.

    
risposta data 23.09.2015 - 14:03
fonte
2

Stai commettendo un errore saltando lo sprint 0.

Nello sprint 0, è necessario preprare tutto (architettura, design, sistema di compilazione, framework, ecc.). Dopo aver terminato lo sprint 0, puoi iniziare a fornire valore commerciale.

Un'altra opzione è aggiungere alcune storie nello sprint 0, ma dedicare tempo sufficiente per preparare tutto ciò che ho elencato. In questo modo, fornisci un valore aziendale.

Giusto per chiarire, sprint 0 dovrebbe consegnare :

  • Il team deve essere assemblato in Sprint Zero
  • Organizzazione e logistica devono essere configurate in Sprint Zero
  • Prendi in considerazione la pianificazione, l'impostazione del backlog del prodotto e la progettazione
risposta data 23.09.2015 - 13:35
fonte

Leggi altre domande sui tag