Archive for Ferramentas

Para que serve o controle de versão mesmo?

Você desenvolvedor certamente faz uso de algum sistema de versionamento de código fonte, os famosos VCS (Version Control Systems) ou ainda Revision Control. Uma grande parte das pessoas hoje faz uso dos mais conhecidos como CVS e o seu sucessor, o SVN. Algo mais recente são os chamados sistemas de controle de versão distribuidos (Distributed VCS), sendo os mais famosos e usados o Git e o Mercurial.
Recentemente, após alguns problemas e debates acalorados com amigos na empresa onde trabalho, por conta de dificuldades ocasionadas, não só pelo VCS que utilizamos mas também devido a política adotada lá, deparei-me fazendo as seguintes perguntas:

  • Será que todo mundo que trabalha com desenvolvimento de software tem os mesmos problemas com o controle de versão?
  • Estamos realmente utilizando o controle de versão da maneira correta?

Encontrei respostas em 2 posts do Martin Fowler, um com o título “Version Control Tools” e outro “VCS Survey” que mostra uma pesquisa realizada por ele, mostrando o que é mais usado/confiado pelos desenvolvedores que participaram da pesquisa. Infelizmente nós não utilizamos um dos mais populares, dentre os mencionados. Com relação ao procedimento utilizado, encontrei ainda outro ótimo post do Martin Fowler sobre “Feature Branch“, que deixou claro que talvez fosse melhor mudar a nossa abordagem para desenvolver novas funcionalidades nos sistemas.
Além desses, encontrei um outro post, excelente, sobre os DVCS, que fala de um case de transição de um VCS para DVCS. É sensacional o relato do autor, que mostra como a equipe ganhou mais agilidade com a troca do sistema de versionamento.

Depois dessa pequena pesquisa, ficou claro pra mim o quanto subestimamos as ferramentas de versionamento de código. Na maioria das vezes pensamos nelas apenas como “ferramentas de versionamento de código fonte“, quando na verdade, a escolha da ferramenta correta e o uso apropriado da mesma, pode transformá-la em uma “ferramenta de expansão da colaboração e criatividade“. Para não ficar repetindo o que já foi escrito, sugiro ler este post do @gchapiewski sobre como o uso apropriado de ferramentas de controle de versão transformou o ambiente de trabalho do pessoal da Globo.com.

Não pense no controle de versão apenas como um software que guarda histórico de alterações e sim como uma ferramenta capaz de dar a você liberdade para tentar e, se preciso, voltar atrás.

Leave a Comment