Penso che stai concentrando l'attenzione sui valori sbagliati. In agile, il valore aziendale è a fuoco. Crei un prodotto per fornire valore aziendale ad alcuni utenti finali.
Se crei il livello di persistenza in ritardo o lo sviluppi lungo la strada è la strategia per fornire valore aziendale al cliente. Non credo che il termine "agile" stesso imponga se si dovrebbe fare l'uno o l'altro.
Il punto di vista sul differimento della strategia di archiviazione dei dati è caldeggiato in questa presentazione di Robert C. Martin (una degli autori del manifesto agile).
È un'ottima presentazione, posso consigliarti di guardarlo.
Ma non sono d'accordo! Almeno fino a un certo punto.
Non credo che tu possa chiamare una user story per "Fatto", se la storia dell'utente coinvolge dati che dovrebbero essere persistenti e in realtà non hai implementato alcun tipo di persistenza.
Se il proprietario del prodotto decide che ora è il momento di andare in diretta, non sei in grado di farlo. E se non hai iniziato a implementare la persistenza fino a tardi nel progetto, non disponi di informazioni su quanto tempo occorrerebbe per implementare il livello di persistenza, lasciandolo un grosso rischio per il progetto.
I progetti agili su cui ho lavorato non hanno rinviato la strategia di accesso ai dati. Ma è stato disaccoppiato, permettendoci di cambiarlo lungo la strada. E l'intero schema del database non è progettato in anticipo. Le tabelle e le colonne vengono create nel modo in cui sono necessarie per implementare l'utente memorizzato che, alla fine, fornisce valore aziendale.