Metodi e database agili all'inizio del progetto

11

Nuovo per l'agilità e non sono sicuro di come iniziare. L'idea è di creare piccole parti del progetto in sprint. Tuttavia il progetto su cui sto lavorando richiede un database e il database deve essere quasi funzionale per fare qualsiasi cosa con il progetto.

Quindi come gestiscono i progetti Agile, si inizia creando il database?

Come faresti, ad esempio se usi Scrum, come faresti con le storie degli utenti e testare il db.

Preferiresti fare parti del db in una storia che richiede anche il codice.

Diciamo che hai una storia che è "Come utente devi essere in grado di registrarti ..." dovresti creare la tabella utente nel database come parte di questa storia?

In che modo può aiutarti a progettare il database?

    
posta Ingó Vals 01.09.2011 - 14:04
fonte

5 risposte

14

Sì, si costruisce il database in modo incrementale aggiungendo le tabelle e le colonne necessarie come richiesto dalla storia. Di solito non è necessario l'intero database quando si avvia la prima storia, ad esempio "Come utente è necessario essere in grado di registrarsi ..." molto probabilmente richiede una singola tabella con un insieme di colonne esattamente definito.

Se hai una storia che richiede davvero l'intero database, la storia è Epic - è semplicemente troppo grande e deve essere divisa.

    
risposta data 01.09.2011 - 14:34
fonte
5

New to agile and I'm not sure how to start.

Dopo aver letto il tuo post, penso che tu lo stia fraintendendo e dovresti iniziare a leggere ciò che veramente agile significa e cerca di realizzare.

The idea is to create small parts of the project in sprints.

Chiudi, ma non abbastanza vicino. L'idea è di fornire un software funzionante alla fine di ogni sprint (una parte del sistema può essere inserita in uno sprint o no). Il database può essere visto come un software funzionante se e solo se il database è ciò che si consegna al cliente.

However the project I'm working of requires a database and the database must be almost functional to do anything with the project.

Perché deve essere quasi funzionale? Ogni caratteristica del sistema utilizza l'intero o la maggior parte del contenuto del database? Perché se così non fosse, non ha senso progettare l'intero database in anticipo.

So how do Agile projects handle this, do you start by creating the database?

Agile non gestisce la progettazione del database o del sistema. Ti dice come gestire il tuo progetto. Con questo in mente, si inizia identificando tutte le funzionalità del sistema e inserendole nel backlog del prodotto. Quindi, insieme al proprietario del prodotto, assegna priorità alle funzionalità nel backlog. Dopo averlo fatto, inizi a prendere funzioni dal backlog e crei sprint (di solito da 2 a 4 settimane). Quando lo sprint è finito, dovresti avere una nuova funzione di lavoro nel sistema che può essere consegnata al cliente.

How would you do so, for example if using Scrum how would you do the user stories and test the db.

Potrei sbagliarmi, ma non ha senso testare il database. È possibile verificare il codice che aggiorna il database. Naturalmente, è possibile testare la parte programmabile del database, ma ciò può essere ottenuto testando il codice che lo chiama.

Would you rather do parts of the db in a story that also requires code.

Sì.

Agile non è affatto un proiettile d'argento per la gestione dei progetti e può significare disastro se non applicato correttamente. Prova a passare un po 'di tempo a leggerlo (puoi trovare molte risorse qui o sullo stackoverflow), magari trovare qualcuno che ha già fatto agilità e può aiutarti a migliorare la velocità.

    
risposta data 01.09.2011 - 15:31
fonte
4

the database must be almost functional to do anything with the project.

In gran parte falso.

So how do Agile projects handle this, do you start by creating the database?

Un database vuoto, sì. Quindi aggiungi le tabelle necessarie per completare uno sprint.

how would you do the user stories and test the db?

Che cosa stai chiedendo? Agile non ha nulla a che fare con la progettazione del database.

Scrivi la storia.

Progetta una soluzione.

Crea tabelle e codice.

Test del codice.

Would you rather do parts of the db in a story that also requires code?

Quale altra scelta c'è? Prima fai tutto il DB? È impossibile.

"As a user you must be able to register..." you would create the user table in the database as a part of this story?

In primo luogo, questa è una storia inutile, dal momento che non c'è alcun valore nella registrazione. Questo è semplicemente un ostacolo tecnico che gli utenti sono costretti a passare.

In secondo luogo, dovresti creare solo un numero sufficiente di tabelle per implementare la storia.

How can agile help you design the database?

Che cosa stai chiedendo?

Agile è la gestione dei progetti. Non aiuta in alcun modo.

Ti aiuta semplicemente a trasformare un grande lavoro in piccoli pezzi.

    
risposta data 01.09.2011 - 15:07
fonte
2

In primo luogo, segui un approccio incrementale. Seleziona un modulo definisci i suoi requisiti, estrai la funzionalità, scegli come target un'area funzionale e poi la modellazione, il design db, le alghe, i codici e infine testalo e ripeti il processo.

    
risposta data 01.09.2011 - 15:34
fonte
2

La tua domanda urla del AgileFall anti-pattern di sviluppo.

Che cos'è? Di solito è un'organizzazione che tradizionalmente ha sviluppato un software in un metodo Waterfall, ma poi, poiché si rendono conto che non funziona, lotta internamente per adottare le tecniche Agile. Il "fail-gasm" che ne deriva di solito si verifica perché la vera Agile RICHIEDE uno spostamento organizzativo fondamentale dal modo in cui sono strutturati molti negozi Waterfall. E naturalmente tenderanno a rimanere strutturati in questo modo poiché molte persone potenti e di ruolo sentono di dover iniettarsi nel processo quando Agile mostra quanto inutilmente quelle persone VERAMENTE siano nello sviluppo del software.

Devi sfuggire a questa nozione che in qualche modo inizi dal fondo, progetta e costruisci il tuo database, quindi passa al livello intermedio e non devi mai più toccare il tuo database. Questo è il modo sbagliato di farlo in Agile.

Inizia dal modello di dominio per una user story, e vai verso il database, e DOWN fino al livello intermedio e alla presentazione.

    
risposta data 01.09.2011 - 15:36
fonte

Leggi altre domande sui tag