Situation: le dba est un entrepreneur hors site qui conserve l'intégralité du code DAL dans TFS. Ce serait bien en tant que développeur frontal de pouvoir ajouter des colonnes et de modifier les procs et ainsi de suite, sans avoir à attendre que ce mec réponde à vos e-mails pour faire le travail.
Question: Quelle serait la solution / le processus recommandé qui permettrait un développement plus rapide / agile, tout en maintenant l'intégrité des données ainsi que l'amour de la paix et le bonheur au sein de l'équipe?
asp.net
teamwork
team-foundation-server
team-building
configuration
spaghetticowboy
la source
la source
Réponses:
Martin Fowler et Pramod Sadalage ont écrit un excellent article sur ce sujet.
Chaque développeur a sa propre base de données dans laquelle des modifications peuvent être apportées. Ces modifications sont ensuite communiquées (sous la forme d'un ensemble de modifications) au DBA qui les implémente dans la base de données master, il est donc toujours impliqué dans le processus, il est probablement le mieux informé des structures et des besoins de la base de données. Je pense que c'est la meilleure approche car elle est satisfaisante pour toutes les personnes impliquées dans le processus et elle est également très agile.
Vous pouvez modifier le DAL d'une manière similaire. Apportez simplement vos modifications et fournissez un ensemble de modifications pour le DBA lorsque vous pensez que vous avez terminé, afin qu'il puisse l'examiner et le fusionner dans son maître.
la source
Eh bien, quand je fais le DBA, on sait que tout est verrouillé pour que les foutus programmeurs sales ne puissent pas mettre la main dessus. Tout le monde pense qu'ils savent comment faire mieux, et ils "peaufinent" les choses pour les rendre plus faciles pour eux-mêmes, et cela provoque un gâchis impie.
L'autre alternative est de le jeter grand ouvert, et de laisser les programmeurs se mêler dessus pendant un moment, puis d'intervenir et d'imposer de l'ordre alors que les choses commencent à se terminer ... C'est certainement plus "agile", mais cela peut être un vrai cauchemar en fonction de ce qui doit être supprimé ou modifié ... Les administrateurs de bases de données ont souvent une meilleure compréhension du projet dans son ensemble, et certains changements qui semblent anodins peuvent être problématiques.
S'il va être le seul gardien, il doit soit avoir une spécification fixe, soit être capable de "vendre" sa vision au reste des développeurs.
la source
Il y a un problème majeur qui remplace tout autre problème:
Pourquoi est-il autorisé à faire cela? Personne ne devrait faire extraire un fichier à moins qu'il n'effectue activement des modifications. Il devrait y avoir une politique d'équipe concernant les paiements.
L'entrepreneur (qu'il le veuille ou non) travaille au sein d'une équipe, et parfois d'autres membres de l'équipe peuvent avoir besoin d'apporter des modifications. Il s'agit d'un problème de communication. Malheureusement, il n'existe aucun moyen automatisé de résoudre ce problème de communication.
la source
Au lieu de couches horizontales, je préfère travailler en silo à travers les couches.
De cette façon, aucune personne / équipe ne peut bloquer de cette façon.
Cela signifie également que vous êtes des développeurs polyvalents et capables de déplacer les fonctionnalités beaucoup plus facilement.
Bien sûr, il y a des sections (conception d'interface utilisateur et conception de base de données) qui peuvent nécessiter plus de travail spécialisé, mais vous avez l'idée.
la source
Simple, si vous ne l'avez pas déjà fait, vous devriez avoir 3 environnements:
L'environnement de développement doit être administré par vos développeurs.
Vous pouvez également ajouter un environnement RC.
Une autre réponse, si plusieurs environnements ne sont pas possibles, vous pouvez développer contre un référentiel simulé ... De cette façon, vous construisez vos modèles, puis votre entrepreneur est responsable de faire correspondre vos modèles à la base de données. D'une certaine manière, c'est mieux car cela libère vos développeurs de se soucier de la base de données.
la source
Votre problème me semble être lié à la main-d'œuvre. Il est approprié et nécessaire que tous les changements potentiels de base de données soient approuvés par un spécialiste de la base de données. Si la personne actuelle ne peut pas suivre le travail en temps opportun, vous avez besoin de plus de spécialistes de base de données.
la source
Il s'agit d'un problème de gestion autant que technique.
Il existe certainement des raisons valables pour un administrateur de base de données (qu'il soit sur site ou non, sous-traitant ou employé) d'empêcher les développeurs de modifier tout type de base de données.
Cependant, le principal problème que vous avez défini est celui de la disponibilité. Votre manager sait-il que du temps / de l'argent est perdu à attendre cette personne? Sinon, vous voudrez peut-être expliquer comment tout le monde est assis.
la source