Objetivo
Estou passando por um processo de avaliação de processos e ferramentas de SCM e ALM (pra variar um pouco, já que por praticamente todas as empresas que já passei, a discussão volta) e buscando referências sobre o assunto. Infelizmente a maioria das referências que encontrei falava somente sobre qual melhor controle de versão, sem comentar muito sobre tamanho de time, como organizar os branches, experiência da equipe, etc., além de não conter informações sobre algumas ferramentas mais novas.
Outra coisa que quis colocar na pesquisa é não só o que está sendo usado e como as pessoas trabalham atualmente, mas também o que elas gostariam de estar usando e como gostariam de trabalhar. Gostei do resultado.
De repente, pensei… por que não fazer uma pesquisa? Rapidamente consegui algumas respostas e informações bem interessantes que seguem abaixo. Os dados são os originais do Google Docs. Apenas não publiquei o link original, por que ao contrário da minha expectativa, a grande maioria se identificou com e-mail, que não acho correto republicar.
Perfil
No total, foram 140 respostas em uma semana de pequisa.
Freqüência de entrega e percepção de problemas
Ferramenta
Organização do repositório
Integração contínua e continuous delivery
Comparativo entre as ferramentas
- Respostas válidas: Total de respostas diferentes de “Não conheço”.
- Aprovação: Total de respostas “O melhor” e “bom” em relação às respostas válidas
Comentários da pesquisa
Durante a realização da pesquisa, surgiram alguns questionamentos que acho válido listar aqui.
Perfil de empresas
Colocar qual é o perfil da empresa que a pessoa trabalha (consultoria, fábrica de software, produto, etc), tamanho da empresa, etc.
Por que TFS está separado em várias versões?
Ao usar o TFS 2008 e conversar com pessoas que usam a versão 2012, muita coisa mudou, o que pode-se dizer que muda até o conceito da ferramenta (de lock para share, por exemplo). Por saber disso de antemão, separei as versões.
TFS é lock ou share?
Como o TFS tem uma idéia de lock “compartilhado”, deu essa confusão. No meu entendimento, se tem lock (mesmo compartilhado) e os arquivos ficam com aquele chatíssimo efeito de read-only pra poder usar (dizem que no 2012 isso foi melhorado), pra mim é lock. Por isso a pergunta é binária. Muitas pessoas consideraram share. Na próxima pesquisa, considero uma opção de “lock compartilhado”.
Opções entre bom e ruim
Optei por não manter, justamente pra fazer a pessoa sair do muro e a pesquisa ser mais assertiva.
Incluir cenários
Ótima idéia. Não tinha pensado nisso. Vou incluir nas próximas.
Razões para não mudar de ferramenta e organização
Essa eu mesmo achei que faltou, depois que mandei a pesquisa. Como vemos nos resultados, tem um gap muito grande entre o que as pessoas fazem e o que elas gostariam de fazer. Minha idéia é entender a razão deste gap: Política, Financeira (tempo/prazo), Preguiça, sei lá.
Incluir notas explicativas
Por incrível que pareça, muitas pessoas tiveram dúvidas sobre o que é integração contínua, continuous delivery, estressar um pouco as políticas de versionamento. É algo a melhorar.
Avaliar crashs
Incluir perguntas sobre ocorrência de quebras no controle de versão e a capacidade de recuperação de cada um deles.
Nível de conhecimento em cada ferramenta
Incluir se a pessoa se sente senior, junior ou pleno em cada ferramenta que avaliou. Gostei da idéia e vou incluir nas próximas.
ALM, critérios de gestão de releases (patch/full), etc.
Não pretendo incluir, não porque o assunto não merece, mas porque gostaria de manter essa pesquisa com a idéia apenas de controle de versão, porque acho que já tem assunto suficiente para debate aqui. Os outros, acredito merecerem tópicos só pra isso.
Links externos
Durante essa pesquisa, seguem alguns links que encontrei ou me enviaram (tks Beccari!) e acho válido compartilhar:
- Pesquisa do Fowler: De onde copiei descaradamente o método pra montar a tabela comparativa. A versão dele é mais antiga, mas os resultados não mudam muito: http://martinfowler.com/bliki/VcsSurvey.html
- Zeroturnaround/RebelLabs: Um relatório bem completo, porém, não sei dizer o quanto é isento. Tem um item específico sobre SCM’s. Tem que se cadastrar pra baixar o relatório completo num PDF, mas vale a pena: http://zeroturnaround.com/rebellabs/developer-productivity-report-2013-how-engineering-tools-practices-impact-software-quality-delivery/#!/
Dados
Caso alguém queira tirar/buscar outras conclusões, estou publicando o Excel com as respostas, sem os comentários e os e-mails. Segue o link: Controle de Versão-2013.
Agradecimentos
Meus sinceros agradecimentos a todos que participaram e contribuiram com a pesquisa. Não imaginava que conseguiria num tempo tão rápido um conjunto de respostas no mínimo representativo.
Parabéns pela pesquisa e pelo resultado tão expressivo. Muito bom ver pessoas levantando questões importantes.
Parabéns pela inciativa! E na próxima contribuirei novamente. abs.,