web-dev-qa-db-fra.com

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

Nouveau à Agile et je ne sais pas comment commencer. L'idée est de créer de petites parties du projet dans les sprints. Cependant, le projet dont je travaille nécessite une base de données et que la base de données doit être presque fonctionnelle de faire quoi que ce soit avec le projet.

Alors, comment les projets agiles gèrent-ils cela, commencez-vous en créant la base de données?

Comment le feriez-vous, par exemple si vous utilisez Scrum Comment effectueriez-vous les histoires d'utilisateurs et testez la DB.

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

Dites que vous avez une histoire qui est "en tant qu'utilisateur que vous devez pouvoir enregistrer ..." Vous créeriez la table d'utilisateurs de la base de données dans la partie de cette histoire?

Comment Agile peut-elle vous aider à concevoir la base de données?

12
Ingó Vals

Oui, vous construirez progressivement la base de données en ajoutant des tables et des colonnes requises telles qu'elles sont requises par l'histoire. Vous n'avez généralement pas besoin de toute la base de données lorsque vous démarrez votre première histoire - par exemple "En tant qu'utilisateur, vous devez être capable de vous enregistrer ..." Il faut probablement nécessiter 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 EPIC - elle est simplement trop grande et doit être divisée.

14
Ladislav Mrnka

Nouveau à Agile et je ne sais pas comment commencer.

Après avoir lu votre message, je pense que vous avez mal compris et vous devriez commencer à lire ce que Agile signifie vraiment et essaie d'accomplir.

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

Fermer, mais pas assez proche. L'idée est de livrer un logiciel de travail à la fin de chaque sprint (une partie du système peut s'intégrer dans un sprint ou non). La base de données peut être vue comme un logiciel de travail si et uniquement si la base de données est ce que vous livrez au client.

Cependant, le projet dont je travaille nécessite une base de données et que la base de données doit être presque fonctionnelle de faire quoi que ce soit avec le projet.

Pourquoi doit-il être presque fonctionnel? Chaque caractéristique du système utilise-t-elle l'ensemble ou la majeure partie du contenu de la base de données? Parce que si ce n'est pas le cas, il ne sert à rien de concevoir à l'avance toute la base de données.

Alors, comment les projets agiles gèrent-ils cela, commencez-vous en créant la base de données?

Agile ne gère pas la base de données ou la conception du système. Il vous indique comment gérer votre projet. Avec cela à l'esprit, vous commencez par identifier toutes les caractéristiques du système et les mettre dans l'arriéré du produit. Ensuite, vous avec le propriétaire du produit, attribuez des priorités aux fonctionnalités de l'arriéré. Une fois que vous avez fait que vous commenciez de prendre des fonctionnalités de l'arriéré et de créer des sprints (généralement de 2 à 4 semaines). Lorsqu'un sprint est terminé, vous devez avoir une nouvelle fonctionnalité de travail dans le système pouvant être livrée au client.

Comment le feriez-vous, par exemple si vous utilisez Scrum Comment effectueriez-vous les histoires d'utilisateurs et testez la DB.

Je pourrais avoir tort, mais il 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 qui peut être réalisée en testant le code qui l'appelle.

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

Oui.

Agile n'est en aucun cas une balle d'argent pour la gestion de projet et peut épeler une catastrophe lorsqu'elle n'est pas appliquée correctement. Essayez de passer du temps à lire à ce sujet (vous pouvez trouver de nombreuses ressources ici ou sur Stackoverflow), vous trouverez peut-être une personne qui a déjà fait Agile et peut vous aider à vous mettre à la hauteur.

5
devnull

la base de données doit être presque fonctionnelle pour faire n'importe quoi avec le projet.

Largement faux.

Alors, comment les projets agiles gèrent-ils cela, commencez-vous en créant la base de données?

Une base de données vide, oui. Ajoutez ensuite des tables au besoin pour terminer un sprint.

comment feriez-vous les histoires d'utilisateurs et testez-vous la DB?

Que demandez-vous? Agile n'a rien à voir avec la conception de la base 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 DB dans une histoire qui nécessite également du code?

Quel autre choix est là? Faire tout le dB en premier? C'est impossible.

"En tant qu'utilisateur, vous devez être capable de vous enregistrer ..." Vous créeriez la table utilisateur dans la base de données dans la partie de cette histoire?

Premièrement, c'est une histoire inutile, car il n'y a pas de valeur dans l'inscription. C'est simplement un obstacle technique que les utilisateurs sont obligés de traverser.

Deuxièmement, vous créeriez juste assez de tables pour mettre en œuvre l'histoire.

Comment Agile peut-elle vous aider à concevoir la base de données?

Que demandez-vous?

Agile est la gestion de projet. Cela n'aide pas avec aucun design.

Il vous aide simplement à casser un gros travail en petits morceaux.

4
S.Lott

Votre question crie de la agilefall Développement anti-motif.

Qu'est-ce que c'est? C'est généralement une organisation qui développait traditionnellement des logiciels dans une méthode de la cascade, mais alors parce qu'ils réalisent que cela ne fonctionne pas, ils luttent en interne pour adopter des techniques agiles. Le "FAIL-GASM" résultant se produit généralement car le véritable agile exige une chaîne organisationnelle fondamentale de la manière dont de nombreux magasins de cascade établis sont structurés. Et bien sûr, ils auront tendance à rester structuré de cette manière que de nombreuses personnes puissantes et collectivées ont besoin de s'injecter dans le processus lorsque Agile montre à quel point ces personnes sont inutiles pour le développement de logiciels.

Vous devez échapper à cette notion que vous commencez à partir du bas, de concevoir et de construire votre base de données, puis de passer au niveau du milieu et de ne jamais avoir à toucher votre base de données. C'est la mauvaise façon de le faire dans Agile.

Démarrez sur le modèle de domaine pour une histoire d'utilisateur et travaillez votre chemin vers la base de données et jusqu'au niveau central et à la présentation.

2
maple_shaft