Nouveau dans l'agilité et je ne sais pas par où commencer. L'idée est de créer de petites parties du projet en sprints. Cependant, le projet sur lequel je travaille nécessite une base de données et la base de données doit être presque fonctionnelle pour faire quoi que ce soit avec le projet.
Alors, comment les projets Agile gèrent-ils cela, commencez-vous par créer la base de données?
Comment le feriez-vous, par exemple, si vous utilisez Scrum, comment feriez-vous les user stories et tester la base de données?
Préférez-vous faire des parties de la base de données dans une histoire qui nécessite également du code.
Disons que vous avez une histoire qui est "En tant qu'utilisateur, vous devez être en mesure de vous inscrire ...", vous souhaitez créer la table des utilisateurs dans la base de données dans le cadre de cette histoire?
Comment agile peut-il vous aider à concevoir la base de données?
la source
Réponses:
Oui, vous créerez la base de données de manière incrémentielle en ajoutant les tables et colonnes requises, comme elles sont requises par l'histoire. Vous n'avez généralement pas besoin de la base de données entière lorsque vous commencez votre première histoire - par exemple "En tant qu'utilisateur, vous devez être en mesure de vous inscrire ..." nécessite très probablement une table unique avec un ensemble de colonnes exactement défini.
Si vous avez une histoire qui nécessite vraiment toute la base de données, l'histoire est épique - elle est tout simplement trop grande et doit être divisée.
la source
Après avoir lu votre message, je pense que vous le comprenez mal et vous devriez commencer par lire ce que signifie vraiment l'agile et essaie d'accomplir.
Fermer, mais pas assez près. L'idée est de livrer un logiciel fonctionnel à la fin de chaque sprint (une partie du système peut ou non s'insérer dans un sprint). La base de données peut être considérée comme un logiciel fonctionnel si et seulement si la base de données est ce que vous livrez au client.
Pourquoi doit-il être presque fonctionnel? Chaque fonctionnalité du système utilise-t-elle la totalité ou la majeure partie du contenu de la base de données? Parce que si ce n'est pas le cas, il est inutile de concevoir la base de données entière au préalable.
Agile ne gère pas la conception de bases de données ou de systèmes. Il vous indique comment gérer votre projet. Dans cet esprit, vous commencez par identifier toutes les fonctionnalités du système et les placez dans le backlog produit. Ensuite, avec le propriétaire du produit, vous attribuez des priorités aux fonctionnalités du backlog. Après avoir fait cela, vous commencez à prendre des fonctionnalités du backlog et à créer des sprints (généralement de 2 à 4 semaines). Lorsqu'un sprint est terminé, vous devriez avoir une nouvelle fonctionnalité de travail dans le système qui peut être livrée au client.
Je me trompe peut-être, mais cela ne sert à rien de tester la base de données. Vous pouvez tester le code qui met à jour la base de données. Bien sûr, vous pouvez tester votre partie programmable de la base de données, mais cela peut être réalisé en testant le code qui l'appelle.
Oui.
Agile n'est en aucun cas une solution miracle pour la gestion de projet et peut entraîner un désastre lorsqu'il n'est pas appliqué correctement. Essayez de passer du temps à lire à ce sujet (vous pouvez trouver de nombreuses ressources ici ou sur stackoverflow), peut-être trouver quelqu'un qui a déjà fait de l'agilité et peut vous aider à vous mettre au courant.
la source
Largement faux.
Une base de données vide, oui. Ajoutez ensuite des tableaux selon les besoins pour terminer un sprint.
Que demandez-vous? Agile n'a rien à voir avec la conception de bases de données.
Vous écrivez l'histoire.
Vous concevez une solution.
Vous créez des tables et du code.
Vous testez le code.
Quel autre choix y a-t-il? Faites tout le DB d'abord? C'est impossible.
Tout d'abord, c'est une histoire inutile, car il n'y a aucune valeur à s'inscrire. Ce n'est qu'un obstacle technique que les utilisateurs sont obligés de franchir.
Deuxièmement, vous créez juste assez de tableaux pour implémenter l'histoire.
Que demandez-vous?
Agile est la gestion de projet. Cela n'aide pas avec n'importe quelle conception.
Il vous aide simplement à diviser un gros travail en petits morceaux.
la source
Eh bien, suivez d'abord une approche incrémentielle: sélectionnez un module, définissez ses exigences, définissez la fonctionnalité, ciblez un domaine fonctionnel, puis la modélisation, la conception de la base de données, les algos, les codes et enfin testez-le et répétez le processus.
la source
Votre question crie de l' anti-modèle de développement AgileFall .
Qu'Est-ce que c'est? Il s'agit généralement d'une organisation qui développait traditionnellement des logiciels selon une méthode Waterfall, mais parce qu'ils réalisent que cela ne fonctionne pas, ils ont du mal à adopter en interne des techniques Agiles. Le "fail-gasm" qui en résulte se produit généralement parce que la vraie Agile DEMANDE un remaniement organisationnel fondamental de la façon dont de nombreux magasins Waterfall établis sont structurés. Et bien sûr, ils auront tendance à rester structurés de cette façon, car de nombreuses personnes puissantes et titulaires ont le sentiment qu'elles doivent s'injecter dans le processus lorsque Agile montre à quel point ces personnes sont VRAIMENT inutiles au développement de logiciels.
Vous devez échapper à cette notion selon laquelle vous commencez par le bas, concevez et créez votre base de données, puis passez au niveau intermédiaire et ne devez plus jamais toucher à votre base de données. C'est la mauvaise façon de le faire dans Agile.
Commencez par le modèle de domaine pour une user story et montez jusqu'à la base de données, puis descendez jusqu'au niveau intermédiaire et à la présentation.
la source