Embora eu use e goste do DVCS para meus projetos pessoais, e possa ver totalmente como isso facilita o gerenciamento de contribuições de outras pessoas (por exemplo, o seu cenário típico do Github), parece que para uma equipe "tradicional" pode haver alguns problemas durante o processo. abordagem centralizada empregada por soluções como TFS, Perforce, etc. (por "tradicional", quero dizer uma equipe de desenvolvedores em um escritório trabalhando em um projeto que nenhuma pessoa "possui", com potencialmente todos tocando o mesmo código.)
Eu já previ alguns desses problemas sozinho, mas por favor, fale com outras considerações.
Em um sistema tradicional, quando você tenta verificar sua alteração no servidor, se alguém já fez check-in em uma alteração conflitante, você é forçado a se unir antes de poder fazer o check-in. No modelo DVCS, cada desenvolvedor faz check-in muda localmente e, em algum momento, empurra para outro repositório. Esse repositório, em seguida, tem um ramo desse arquivo que 2 pessoas mudaram. Parece que agora alguém deve ser encarregado de lidar com essa situação. Uma pessoa designada na equipe pode não ter conhecimento suficiente de toda a base de código para poder lidar com a mesclagem de todos os conflitos. Portanto, agora foi adicionada uma etapa extra em que alguém precisa se aproximar de um desses desenvolvedores, dizer a ele para fazer a fusão e depois pressionar novamente (ou você deve criar uma infraestrutura que automatize essa tarefa).
Além disso, como o DVCS tende a tornar o trabalho local tão conveniente, é provável que os desenvolvedores acumulem algumas alterações em seus repositórios locais antes de enviá-los, tornando esses conflitos mais comuns e mais complicados.
Obviamente, se todos da equipe trabalharem apenas em diferentes áreas do código, isso não é um problema. Mas estou curioso sobre o caso em que todos estão trabalhando no mesmo código. Parece que o modelo centralizado força os conflitos a serem tratados com rapidez e frequência, minimizando a necessidade de fazer fusões grandes e dolorosas ou fazer com que alguém "policie" o principal repositório.
Portanto, para aqueles que usam um DVCS com sua equipe em seu escritório, como você lida com esses casos? Você considera seu fluxo de trabalho diário (ou mais provável, semanalmente) afetado negativamente? Existem outras considerações das quais devo estar ciente antes de recomendar um DVCS no meu local de trabalho?