Je suis à la recherche de "meilleures pratiques" concernant les rôles et les responsabilités, en particulier qui est responsable des fusions des branches de développement vers le tronc (ou principal). Fondamentalement, je cherche des munitions pour aider ma cause.
Permettez-moi de décrire à quoi je fais face. Je suis le développeur principal (propriétaire) d'une application particulière. Notre entreprise est récemment passée de VSS (où j'étais l'administrateur de la base de données VSS dans laquelle mon application était stockée) à TFS (où je n'ai que des autorisations sur les branches de développement créées par notre équipe "opérations"). Dans les emplois précédents, j'étais administrateur TFS, donc je connais bien TFS et MSBuild.
Je n'ai pas de problème avec la stratégie de branchement et de fusion utilisée (branche principale, avec des branches de développement de bogues / projets créées au besoin, fusionnées de nouveau à main puis promues en branche de publication). Les problèmes que j'ai sont:
Je ne peux pas créer mes propres succursales. Je dois créer une tâche TFS pour qu'un membre de l'équipe «opérations» crée la branche pour moi.
Je ne peux pas fusionner de Main vers ma branche de développement. Je dois créer une tâche TFS pour qu'un membre de l'équipe «opérations» effectue la fusion, puis j'espère qu'il n'effectuera aucun changement dans mes équipes, car le «gars des opérations» peut ou non être un développeur et a certainement peu ou pas de connaissance du code qu'il fusionne.
Je ne peux pas fusionner du développement au Main. Encore une fois, je dois créer une tâche TFS pour que le "gars des opérations" effectue la fusion, en espérant qu'il le fasse correctement. Ensuite, je dois créer une autre tâche TFS pour la fusionner avec ma branche afin de pouvoir résoudre tous les problèmes qui se sont produits en faisant fusionner un non-développeur avec Main.
Je ne peux pas créer ou modifier des scripts MSBuild. Encore une fois, je dois travailler avec l'équipe "ops" qui est nouvelle dans MSBuild afin que seules les tâches de construction les plus élémentaires puissent être effectuées. (Oubliez tout ce qui est complexe, ou interdisez une tâche personnalisée).
Je ne peux pas exécuter de script MSBuild. Encore une fois, seule l'équipe "ops" peut le faire.
Pour couronner le tout, il s'agit généralement d'une ressource "off-shore" qui exécute les tâches demandées, donc même si je crée la tâche vers (branche / fusion / build) tôt le matin, elle ne sera probablement pas terminée jusqu'à ce soir.
Maintenant, je n'ai plus de problème avec l'équipe "opérations" qui gère les branches de publication. Comme tout ce qu'ils font, c'est (essentiellement) prendre la dernière version de Main et la promouvoir dans la branche de publication; aussi longtemps que "Main" est stable et prêt, la branche de publication sera bonne.
Mon opinion est que les responsables techniques (comme I) devraient être responsables de la maintenance du tronc ("Main") et de toute fusion vers / depuis les branches de développement. Le chef d'équipe doit également avoir la capacité de générer des scripts MS Build à construire et à déployer dans l'environnement de test d'intégration.
Quelqu'un peut-il me diriger vers un document sur les meilleures pratiques qui m'aidera à prouver mon cas? Toutes mes recherches n'ont révélé que les meilleures pratiques concernant les techniques de ramification et de fusion, et aucune mention de l'OMS ne devrait effectuer cette ramification / fusion.
WHO should be performing said branching/merging.
est une décision organisationnelle interne. Pas vraiment quelque chose que nous pourrions vous aider ...