Metodi e database agili all'inizio del progetto


12

Nuovo da agile e non sono sicuro di come iniziare. L'idea è quella di creare piccole parti del progetto negli sprint. Tuttavia, il progetto di 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, inizi creando il database?

Come faresti, ad esempio se usi Scrum come faresti le storie utente e testerai il db.

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

Supponiamo che tu abbia una storia "Come utente devi essere in grado di registrarti ..." creeresti la tabella utente nel database come parte di questa storia?

In che modo agile può aiutarti a progettare il database?


1
ri: "Come utente devi essere in grado di registrarti ..." Suggerirei di leggere blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first e i post che menziona . Potrebbe non esserci una risposta "giusta"; è bene capire i vari ragionamenti nella discussione.
StevenV,

Se stai avviando Agile o qualsiasi altra metodologia in tal senso, assicurati che sia adatta al tuo team, al progetto e allo stile dell'organizzazione nella gestione di progetti software (o del cliente). Non è vero che ogni metodologia funziona per ogni progetto e ogni organizzazione.
NoChance,

Risposte:


14

Sì, costruirai il database in modo incrementale aggiungendo le tabelle e le colonne richieste come richiesto dalla trama. 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 set di colonne esattamente definito.

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


5

Nuovo da agile e non sono sicuro di come iniziare.

Dopo aver letto il tuo post, penso che tu lo abbia frainteso e dovresti iniziare con la lettura di ciò che realmente significa agile e cerca di realizzare.

L'idea è quella di creare piccole parti del progetto negli sprint.

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

Tuttavia, il progetto di cui sto lavorando richiede un database e il database deve essere quasi funzionale per fare qualsiasi cosa con il progetto.

Perché deve essere quasi funzionale? Ogni funzionalità del sistema utilizza l'intero o la maggior parte del contenuto del database? Perché in caso contrario, non ha senso progettare in anticipo l'intero database.

Quindi, come gestiscono i progetti Agile, inizi creando il database?

Agile non gestisce la progettazione di database o sistemi. Ti dice come gestire il tuo progetto. Tenendo presente ciò, si inizia identificando tutte le funzionalità del sistema e inserendole nel backlog del prodotto. Quindi tu, insieme al proprietario del prodotto, assegni le priorità alle funzionalità nel backlog. Dopo averlo fatto, inizi a prendere le funzionalità dal backlog e crei gli sprint (in genere da 2 a 4 settimane). Al termine di uno sprint, nel sistema dovrebbe essere disponibile una nuova funzionalità che può essere consegnata al cliente.

Come faresti, ad esempio se usi Scrum come faresti le storie utente e testerai il db.

Potrei sbagliarmi, ma non ha senso testare il database. È possibile testare 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.

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

Sì.

Agile non è affatto un proiettile d'argento per la gestione dei progetti e può sillabare disastri se non applicato correttamente. Prova a dedicare un po 'di tempo a leggerlo (puoi trovare molte risorse qui o su StackOverflow), magari trovare qualcuno che ha già fatto agilità e può aiutarti ad aggiornarti.


4

il database deve essere quasi funzionale per fare qualsiasi cosa con il progetto.

In gran parte falso.

Quindi, come gestiscono i progetti Agile, inizi creando il database?

Un database vuoto, sì. Quindi aggiungere le tabelle necessarie per terminare uno sprint.

come faresti le storie utente e testerai il db?

Cosa stai chiedendo? Agile non ha nulla a che fare con la progettazione di database.

Scrivi la storia.

Progetti una soluzione.

Si creano tabelle e codice.

Si verifica il codice.

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

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

"Come utente devi essere in grado di registrarti ..." creeresti la tabella utente nel database come parte di questa storia?

Innanzitutto, questa è una storia inutile, dal momento che non c'è valore nella registrazione. Questo è solo un ostacolo tecnico che gli utenti sono costretti a superare.

In secondo luogo, creeresti tabelle sufficienti per implementare la storia.

In che modo agile può aiutarti a progettare il database?

Cosa stai chiedendo?

Agile è la gestione dei progetti. Non aiuta con nessun disegno.

Ti aiuta semplicemente a spezzare un grosso lavoro in piccoli pezzi.


2

Bene, innanzitutto segui un approccio incrementale: seleziona un modulo definisci i suoi requisiti, calcola la funzionalità, scegli come target un'area funzionale e poi arriva la modellazione, la progettazione di db, gli algoritmi, i codici e infine testalo e ripeti il ​​processo.


2

La tua domanda grida dell'anti-pattern di sviluppo AgileFall .

Che cos'è? Di solito è un'organizzazione che tradizionalmente ha sviluppato software in un metodo Waterfall, ma poi, poiché si rendono conto che non funziona, lottano internamente per adottare tecniche Agili. Il risultante "fail-gasm" di solito si verifica perché la vera Agile RICHIEDE un fondamentale scostamento organizzativo dal modo in cui sono strutturati molti negozi Waterfall affermati. E, naturalmente, tenderanno a rimanere strutturati in quel modo poiché molte persone potenti e di ruolo sentono di aver bisogno di inserirsi nel processo quando Agile mostra quanto siano inutili quelle persone per lo sviluppo del software.

È necessario sfuggire a questa idea che in qualche modo si parte dal basso, si progetta e si costruisce il database, quindi si passa al livello intermedio e non si deve più toccare il database. Questo è il modo sbagliato di farlo in Agile.

Inizia dal modello di dominio per una user story e procedi fino al database e poi GIÙ al livello intermedio e alla presentazione.


Sì, vedo la maggior parte dei suggerimenti di risposta a questo e ho persino immaginato che stavo scrivendo la domanda. Non preoccuparti per AgileFall, questo è principalmente un progetto di test in cui sto provando metodi e schemi per imparare come funzionano, non un progetto serio.
Ingó Vals,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.