Está na hora de migrar para o controle de versão distribuído?

Continuando a série de artigos sobre controle de versão distribuído (Distributed Version Control Systems – DVCS) que começou com a atualização dos conceitos básicos sobre controle de versão e depois para o artigo sobre vantagens e desvantagens do controle de versão distribuído, esse artigo agora analisa a viabilidade ou não da mudança do controle de versão centralizado para o distribuído.

Antes de mais nada, é importante relembrar que controle de versão de software é uma técnica comprovada de engenharia de software. Independente da escolha entre o modelo centralizado ou distribuído, é fundamental que algum controle de versão seja usado.

Para ajudar na escolha, siga o fluxograma a seguir:

  1. Já usa algum controle de versão? Se ainda não, a decisão é simples: melhor já começar com o controle de versão distribuído de uma vez, com uma boa capacitação da equipe e do processo para que tudo corra bem.
  2. Planejar | Executar adoção | migração para DVCS.  Pavimentar o caminho para uma transição suave e bem-sucedida. Cronogramas, projeto-piloto, migração,  capacitação da equipe, elaboração do processo de desenvolvimento, suporte técnico, acompanhamento, avaliações  etc..
  3. Funciona bem? Não há motivo para trocar uma solução que já funciona por outra. Como diz o ditado, em time que está ganhando, não se mexe. Ainda mais em um projeto em andamento, trocar de modelo de controle de versão só adicionaria riscos desnecessários.
  4. Experimentar DVCS? O controle de versão distribuído traz alguns benefícios interessantes e mesmo a estrutura atual funcionando bem, talvez seja possível melhorar ainda mais. A experimentação de uma nova tecnologia geralmente segue um arranjo comum: projeto-piloto simples, escopo bem definido e equipe formada por pessoas pré-dispostas a novas experimentações.
  5. Falta capacitação? Alguma coisa está errada na solução atual. Antes de trocar seis por meia dúzia, é melhor analisar qual a causa: se é por falta de capacitação da equipe, inexistência de um processo bem definido ou se realmente o projeto se encaixa mais no perfil do DVCS.
  6. Migração para DVCS é viável? A subutilização do controle de versão é muito mais comum do que deveria. O sintoma clássico é o uso burocrático do controle de versão basicamente como ferramenta de backup, como já comentado num post anterior. Se é necessário investir em capacitação, talvez valha a pena que essa capacitação já seja feita em uma ferramenta mais moderna. Talvez não. Talvez apenas acertar a solução atual resolva.
  7. Consultoria | Treinamento em Controle de Versão Centralizado. Capacita a equipe e define o processo necessário para usar a solução atual, aproveitando tudo que o controle de versão tem para contribuir.

Considerações Finais

A mudança do controle de versão centralizado pelo distribuído é mais que uma questão apenas de troca de ferramenta. Implica ajustes no processo e também capacitação da equipe de desenvolvimento.

Controle de versão distribuído traz vantagens sim, mas não torna o controle de versão centralizado obsoleto. A decisão de passar de um tipo para outro deve ser analisada com cuidado. De preferência com experimentações para gerar algum tipo de opinião própria e depois com muito planejamento para que não haja surpresas.

A tabela a seguir apresenta sugestões de mudança de acordo com o perfil do uso de controle de versão:

Uso atual do controle de versão Vale a pena mudar para o Distribuído? Comentários
Não usa | Subutiliza Sim Invista na mais nova geração de controle de versão de uma vez! A definição e um processo e capacitação da equipe ajudarão na melhoria da qualidade do software.
Insatisfatório pois se encaixa no perfil DVCS Talvez Depende de alguns fatores. Entre eles de quanto os problemas atrapalham o andamento do projeto.
Satisfatória Não Projetos atuais não devem migrar. Mas experimentações são bem-vindas em projetos-piloto.

  1. Outro fator a se considerar na migração seria o uso de um sistema de controle de mudanças, como o Trac. Não sei se seria possível usar um DVCS como o Git ou o Mercurial com o Trac.

  2. André Felipe Dias says:

    Alberto,

    Já existe plugins do Trac para o Mercurial e o Git:

  3. [...] para o artigo sobre vantagens e desvantagens do controle de versão distribuído, esse artigo agora analisa a viabilidade ou não da mudança do controle de versão centralizado para o distribuído.” [Enviado por André Felipe Dias (andref·diasΘpronus·eng·br) - [...]

  4. [...] sobre o centralizado, embora seja um pouco mais complexo. Para as equipes que decidiram migrar para o distribuído ou mesmo permanecer com o centralizado, ainda resta a questão de qual a melhor ferramenta [...]

  5. I have been looking looking around for this kind of information. Will you post some more in future? I’ll be grateful if you will.

Leave a Reply