Méthodes agiles et bases de données en début de projet


12

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?


1
re: "En tant qu'utilisateur, vous devez être en mesure de vous inscrire ..." Je suggère de lire le blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first et les articles qu'il mentionne . Il n'y a peut-être pas de «bonne» réponse; il est bon de comprendre les différents raisonnements de la discussion.
StevenV

Si vous démarrez Agile ou toute autre méthodologie, assurez-vous qu'elle convient au style de votre équipe, de votre projet et de votre organisation dans le traitement des projets logiciels (ou de ceux de vos clients). Il n'est pas vrai que chaque méthodologie fonctionne pour chaque projet et chaque organisation.
NoChance

Réponses:


14

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.


5

Nouveau dans l'agilité et je ne sais pas par où commencer.

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.

L'idée est de créer de petites parties du projet en sprints.

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.

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.

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.

Alors, comment les projets Agile gèrent-ils cela, commencez-vous par créer la base de données?

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.

Comment le feriez-vous, par exemple, si vous utilisez Scrum, comment feriez-vous les user stories et tester la base de données?

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.

Préférez-vous faire des parties de la base de données dans une histoire qui nécessite également du code.

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.


4

la base de données doit être presque fonctionnelle pour faire quoi que ce soit avec le projet.

Largement faux.

Alors, comment les projets Agile gèrent-ils cela, commencez-vous par créer la base de données?

Une base de données vide, oui. Ajoutez ensuite des tableaux selon les besoins pour terminer un sprint.

comment feriez-vous les user stories et tester la base de données?

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.

Préférez-vous faire des parties de la base de données dans une histoire qui nécessite également du code?

Quel autre choix y a-t-il? Faites tout le DB d'abord? C'est impossible.

"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?

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.

Comment agile peut-il vous aider à concevoir la base de données?

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.


2

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.


2

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.


Oui, je vois la plupart des réponses à cela et je l'ai même compris en écrivant la question. Pas de soucis pour AgileFall, c'est principalement un projet de test où j'essaie des méthodes et des modèles pour apprendre comment ils fonctionnent, pas un projet sérieux.
Ingó Vals
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.