Eu me formei na faculdade em Ciência da Computação há um ano e agora estou trabalhando em uma pequena empresa de desenvolvimento web (eu e um outro desenvolvedor, além de gerentes, atendimento ao cliente e testador). Até pouco antes de começar, não havia sistema de controle de origem. Agora estamos lentamente começando a implementar o SVN, mas o outro desenvolvedor (doravante denominado Joe) insiste que o único código que deve ser confirmado em nosso repositório SVN é aquele que foi testado e aprovado como pronto para produção. Isso significa que, em projetos maiores, pode não haver confirmações por semanas ou mais.
Esta é uma prática normal? Parece-me que perdemos muitos dos benefícios do controle de origem, incluindo:
- Rastreamento detalhado do progresso do projeto
- Rastreamento de problemas conforme eles aparecem e são resolvidos
- Revertendo facilmente erros
- Fácil backup de código, para não perdermos muito se uma estação de trabalho ficar inativa
- Mais fácil identificar exatamente qual código está sendo executado em quais sites de produção, assumindo que carimbemos as revisões nos executáveis, conforme descrito aqui
- Colaboração fácil (embora não trabalhemos em equipe; são todos projetos individuais)
- Etc.
EDIT: Devo enfatizar que, historicamente, não existe um verdadeiro trabalho em equipe nesta empresa; apenas dois desenvolvedores trabalhando em projetos separados. Além disso, muitos dos projetos são pequenos e podem ser concluídos em algumas semanas. E a empresa está no mercado há mais de uma década e se dá bem sem o controle da fonte. Os projetos geralmente são concluídos dentro do prazo estimado.