No desenvolvimento de software existe uma disciplina chamada “gerenciamento de configuração”, que abrange as atividades de apoio ao desenvolvimento. Destas atividades, sem dúvida a mais importante é o que é comumente conhecido como “controle de versão”.
O “controle de versão” resolve vários problemas bastante concretos:
- Força os desenvolvedores a fazer back-up regular do seu trabalho em um local centralizado;
- Permite que mais de uma pessoa trabalhe ao mesmo tempo em um projeto ou até no mesmo arquivo fonte;
- Reduz os problemas de integração que sempre ocorrem quando os desenvolvedores trabalham separadamente;
- Mantém versões intermediárias do software e permite saber o que mudou de uma versão para outra.
É possível atingir alguns dos objetivos acima simplesmente trabalhando com uma pasta compartilhada em rede e implementando o grosso da lógica no cliente, como fizeram softwares mais antigos como o Microsoft Visual Interdev. No entanto, hoje em dia considera-se necessário utilizar um servidor específico para o trabalho de controle de versão. A Microsoft usava para esta função o “Visual Source Safe - VSS” e mais recentemente estas e outras funcionalidades foram integradas ao “Team Foundation Server – TFS”, parte do “Visual Studio Team System (VSTS)”.
Um servidor traz algumas vantagens específicas que não são possíveis simplesmente compartilhando um diretório:
- Garante a integridade dos programas-fontes, já que não é possível um desenvolvedor descontente apagar o que já foi feito como ato de vandalismo;
- Traz melhor desempenho, especialmente no acesso remoto via Web, cada vez mais comum;
- Mantém automaticamente as várias versões de um mesmo arquivo;
- Possui funções avançadas como “congelar uma versão”, “comparar os programas-fontes de diferentes versões”, “juntar versões diferentes” etc;
- Permite efetuar compilações no próprio servidor, rodando testes e pegando erros de integração mais cedo.
Por causa destas vantagens, hoje em dia sempre se considera que devemos utilizar um software específico. Note que existem vantagens no uso do controle de versão até mesmo para um desenvolvedor trabalhando sozinho, mas ele realmente brilha no uso em equipe.
Se você estiver usando o Visual Studio, é natural o uso do VSTS, embora ainda seja possível utilizar o VSS. O problema mais levantado sobre o VSTS é seu custo. Um dos problemas do TFS é que ele é um produto bastante sofisticado, que faz muitas outras coisas além do controle de versão, como controlar o progresso do desenvolvimento de seus projetos, o que torna a Microsoft relutante em baixar seu preço.
Mesmo assim, é possível usar controle de versão no Visual Studio de maneira mais barata:
- O programa Empower para ISVs permite que pequenos desenvolvedores de software usem até cinco cópias do Visual Studio e sistemas operacionais por menos que US$500 ao todo. Ele não inclui o TFS, mas pelo menos você economizou algum dinheiro para comprá-lo;
- Os “Certified Partners” com especialização em desenvolvimento de software (“ISV”) têm direito a uso do VSTS, inclusive o TFS. Este é um processo mais complicado, mas pode valer a pena se você tiver pessoas com certificação Microsoft em sua empresa;
- Usar algum outro controle de versão gratuito, como por exemplo, o CVS ou o Subversion. Ambos possuem ferramentas de integração com o Windows e até com o Visual Studio.
Com tantas opções de uso de controle de versão, inclusive algumas gratuitas, me surpreende visitar uma empresa que ainda não utilize este recurso.
Mauro Sant’Annausa controle de versão e builds automáticos.