Aunque uso y me gusta DVCS para mis proyectos personales, y puedo ver totalmente cómo facilita la administración de las contribuciones a su proyecto de otros (por ejemplo, su escenario típico de Github), parece que para un equipo "tradicional" podría haber algunos problemas sobre el enfoque centralizado empleado por soluciones como TFS, Perforce, etc. (Por "tradicional" me refiero a un equipo de desarrolladores en una oficina que trabaja en un proyecto que nadie "posee", y potencialmente todos tocan el mismo código).
He previsto un par de estos problemas por mi cuenta, pero por favor interviene con otras consideraciones.
En un sistema tradicional, cuando intenta registrar su cambio en el servidor, si alguien más ha registrado previamente un cambio conflictivo, entonces se ve obligado a fusionarse antes de poder registrar el suyo. En el modelo DVCS, cada desarrollador registra su cambia localmente y en algún momento empuja a otro repositorio. Ese repositorio luego tiene una rama de ese archivo que 2 personas cambiaron. Parece que ahora hay que poner a alguien a cargo de lidiar con esa situación. Una persona designada en el equipo podría no tener suficiente conocimiento de toda la base de código para poder manejar la fusión de todos los conflictos. Por lo tanto, ahora se ha agregado un paso adicional en el que alguien tiene que acercarse a uno de esos desarrolladores, decirle que tire y haga la fusión y luego empuje nuevamente (o debe construir una infraestructura que automatice esa tarea).
Además, dado que DVCS tiende a hacer que trabajar localmente sea tan conveniente, es probable que los desarrolladores puedan acumular algunos cambios en sus repositorios locales antes de presionar, haciendo que tales conflictos sean más comunes y más complicados.
Obviamente, si todos en el equipo solo trabajan en diferentes áreas del código, esto no es un problema. Pero tengo curiosidad sobre el caso en el que todos están trabajando en el mismo código. Parece que el modelo centralizado obliga a resolver los conflictos de manera rápida y frecuente, minimizando la necesidad de realizar grandes y dolorosas fusiones o de que alguien "vigile" el repositorio principal.
Entonces, para aquellos de ustedes que usan un DVCS con su equipo en su oficina, ¿cómo manejan estos casos? ¿Le afecta negativamente su flujo de trabajo diario (o más probable, semanal)? ¿Hay otras consideraciones que debo tener en cuenta antes de recomendar un DVCS en mi lugar de trabajo?