Je pense que vous mettez l'accent sur les mauvaises valeurs. En agile, la valeur commerciale est au centre. Vous créez un produit afin de fournir une valeur commerciale à certains utilisateurs finaux.
Si vous créez la couche de persistance tardivement ou que vous la composez en cours de route, c'est votre stratégie pour offrir une valeur commerciale au client. Je ne crois pas que le terme "agile" lui-même dicte si vous devez faire l'un ou l'autre.
Le point de vue sur le report de la stratégie de stockage des données est défendu dans cette présentation de Robert C. Martin (l'un des auteurs du manifeste agile).
C'est une très bonne présentation, je peux vous recommander de la regarder.
Mais je ne suis pas d'accord avec ça! Au moins dans une certaine mesure.
Je ne pense pas que vous puissiez appeler une user story pour "Done", si la user story implique des données qui doivent être conservées et que vous n'avez en fait aucun type de persistance implémenté.
Si le propriétaire du produit décide que le moment est venu de le mettre en ligne, vous ne pouvez pas le faire. Et si vous n'avez commencé à implémenter la persistance que tard dans le projet, vous ne disposez également d'aucune information sur le temps qu'il faudrait pour implémenter la couche de persistance, ce qui représente un risque majeur pour le projet.
Les projets agiles sur lesquels j'ai travaillé n'ont pas différé la stratégie d'accès aux données. Mais il a été découplé, ce qui nous a permis de le changer en cours de route. Et l'ensemble du schéma de base de données n'est pas conçu à l'avance. Des tables et des colonnes sont créées en cours de route selon les besoins afin de mettre en œuvre l'utilisateur stocké qui, au final, offre une valeur commerciale.