Estou procurando "Boas Práticas" em relação a funções e responsabilidades, especificamente quem é responsável pelas fusões dos ramos de desenvolvimento ao tronco (ou principal). Basicamente, estou procurando munição para ajudar minha causa.
Deixe-me descrever o que estou enfrentando. Sou o desenvolvedor líder (proprietário) de um aplicativo específico. Nossa empresa mudou recentemente do VSS (onde eu era o administrador do banco de dados VSS no qual meu aplicativo estava armazenado) para o TFS (onde eu só tenho permissões nos ramos de desenvolvimento criados por nossa equipe de "operações"). Em trabalhos anteriores, eu era um administrador do TFS, por isso conheço o TFS e o MSBuild.
Não tenho problema com a estratégia de ramificação e mesclagem sendo usada (ramificação principal, com ramificações de desenvolvimento de bug / projeto criadas conforme necessário, mescladas de volta à main e depois promovidas a uma ramificação de lançamento). Os problemas que tenho são:
Não consigo criar meus próprios galhos. Preciso criar uma tarefa TFS para que um membro da equipe "operações" crie a ramificação para mim.
Não consigo mesclar do Main ao meu ramo de desenvolvimento. Preciso criar uma tarefa TFS para que um membro da equipe de "operações" realize a mesclagem e espero que ele não "pise" em nenhuma das minhas equipes, pois o "ops guy" pode ou não ser um desenvolvedor e certamente tem pouco ou nenhum conhecimento do código que ele está mesclando.
Não consigo mesclar do desenvolvimento para o Main. Novamente, preciso criar uma tarefa TFS para que o "ops guy" execute a mesclagem, esperando que ele faça isso corretamente. Em seguida, tenho que criar outra tarefa TFS para mesclar de volta para minha ramificação, para que eu possa resolver qualquer problema que tenha ocorrido ao mesclar um não desenvolvedor ao Main.
Não consigo criar ou editar scripts do MSBuild. Novamente, tenho que trabalhar com a equipe "ops", que é nova no MSBuild, para que apenas as tarefas mais básicas de compilação possam ser executadas. (Esqueça qualquer coisa complexa ou proíba uma tarefa personalizada).
Não consigo executar um script MSBuild. Novamente, apenas a equipe "ops" pode fazer isso.
Além disso, normalmente é um recurso "offshore" que executa as tarefas solicitadas, portanto, mesmo se eu criar a tarefa para (ramificação / mesclagem / construção) no início da manhã, provavelmente não será concluída até aquela noite.
Agora não tenho problemas com a equipe de "operações" mantendo as ramificações de liberação. Como tudo o que eles estão fazendo é (basicamente) pegar a versão mais recente do Main e promovê-la para o ramo de lançamento; enquanto "Main" estiver estável e pronto, o ramo de lançamento será bom.
Minha opinião é que os líderes técnicos (como eu) devem ser responsáveis por manter o tronco ("Principal") e qualquer fusão de / para os ramos de desenvolvimento. O líder da equipe também deve ter a capacidade de gerar scripts do MS Build para criar e implantar no ambiente de teste de integração.
Alguém pode me direcionar para um documento de práticas recomendadas que me ajudará a provar meu caso? Toda a minha pesquisa revelou apenas as Melhores Práticas relativas às técnicas de ramificação e fusão, e nenhuma menção à OMS deveria estar realizando a ramificação / fusão.
WHO should be performing said branching/merging.
é uma decisão organizacional interna. Não é realmente algo que poderia ajudá-lo com ...