J'ai eu le luxe de concevoir plusieurs bases de données de complexité moyenne, toutes utilisées dans les entreprises, avec différents frontaux, y compris Web, Access et C #.
D'habitude, je me suis assis et j'ai élaboré le schéma de base de données à l'avance. Cela a toujours eu le plus de sens pour moi. Cependant, il n'y a pas eu un seul cas où je n'ai pas fini par apporter des modifications, ajouter de nouveaux tableaux ou vivre avec des aspects qui me dérangeaient et qui étaient fondamentalement trop tardifs pour être corrigés.
Je ne pense pas que le remède consiste à écrire le code en premier. Et je ne pense pas que le problème soit "des exigences professionnelles insuffisantes" ou du moins, pas une qui aurait pu être entièrement résolue. Les utilisateurs ne savent pas ce dont ils ont besoin et je n'ai pas le pouvoir de leur faire réfléchir plus fort, d'être plus intelligent ou plus conscient ou de mieux répondre à mes questions. Ou ils se disputent et on me commande de faire quelque chose d'une certaine manière.
Les systèmes que je construis se trouvent généralement dans de nouveaux domaines dans lesquels personne ne s’est jamais intéressé. Je n'ai pas l'adhésion de l'organisation, des ressources ou des outils pour faire le genre de travail qu'une équipe de développement composée de professionnels de la conception de premier plan pourrait recevoir et qui serait payée en équipe dix fois plus que ce que je gagne pour intégrer des éléments. deux fois le temps.
Je suis BON dans ce que je fais. Mais il n'y en a qu'un seul qui le fait dans un environnement qui "ne fait pas de développement".
Cela dit, je découvre de mieux en mieux les règles métier. Et je vois une sorte de troisième option:
Avant de concevoir la base de données, et avant d’écrire du code, dessinez des écrans bruts montrant le fonctionnement de l’application. Ils doivent être dessinés à la main pour empêcher quiconque de faire des commentaires sur la police, la taille ou les dimensions - vous souhaitez uniquement fonctionner.
Avec des transparents et des bouts de papier, vous pouvez basculer entre deux objets: une personne pour l'ordinateur, deux utilisateurs non spécialistes du domaine (deux pour qu'ils parlent à voix haute) et une personne pour l'animation qui prend des notes et dessine sur les utilisateurs de leurs processus de pensée et de confusions. Les utilisateurs "cliquent", glissent et écrivent dans des cases, "l'ordinateur" met à jour l'écran et tout le monde peut expérimenter le design. Vous apprendrez des choses que vous n'auriez pas pu apprendre autrement jusqu'à un stade avancé du processus de développement.
Peut-être que je me contredis - c'est peut-être une meilleure découverte des exigences. Mais l’idée est de concevoir l’application d’abord, sans écrire de code. J'ai commencé à le faire à petite échelle et ça marche! Malgré les problèmes de mon environnement, cela m'aide à améliorer la conception de la base de données dès le début. J'apprends qu'une colonne doit être déplacée dans une nouvelle table parent car il existe plusieurs types. J'apprends que la liste de travail doit contenir des ordres permanents qui ne proviennent pas du système de commande intégré. J'apprends toutes sortes de choses!
À mon avis, c'est une victoire énorme.