Penso che ti stai concentrando su valori sbagliati. In agile, il valore aziendale è al centro. Si crea un prodotto al fine di offrire valore aziendale ad alcuni utenti finali.
Se crei il livello di persistenza in ritardo o lo fai lungo la strada è la tua strategia per fornire valore aziendale al cliente. Non credo che il termine "agile" stesso determini se dovresti fare l'uno o l'altro.
Il punto di vista sul differimento della strategia di archiviazione dei dati è sostenuto in questa presentazione da Robert C. Martin (uno degli autori del manifesto agile).
È un'ottima presentazione, posso consigliarti di guardarla.
Ma non sono d'accordo! Almeno fino a un certo punto.
Non credo che tu possa chiamare una user story per "Fatto", se la user story include 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 è possibile farlo. E se non hai iniziato a implementare la persistenza fino a tardi nel progetto, non hai anche informazioni su quanto tempo ci vorrebbe per implementare il livello di persistenza, lasciandolo un grave rischio del progetto.
I progetti agili a 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 lungo la strada quando sono necessarie al fine di implementare l'utente memorizzato che, alla fine, fornisce valore aziendale.