Mês: outubro 2013

Controle de Versão – Parte 2

Introdução

Hoje recebi um e-mail do meu grande amigo e ex-colega de trabalho Godoy (@godoy42), mago supremo do tunning de queries e macumbas avançadas em banco de dados. Não acompanho de perto, mas fico imaginando o que ele anda aprontando na área de BI.

Ele viu os dados da pesquisa, baixou e montou dois gráficos muito bacanas com os resultados. Seguem abaixo.

Satifação com o sistema atual

Aqui, cada resposta com ferramenta atual igual a desejada, soma um ponto de satisfação, cada resposta diferente, um ponto de insatisfação. Resultado expresso em percentual:

GraficosGodoy1

Ferramenta desejada para substituição

GraficosGodoy2

GraficosGodoy3

Origem dos problemas por ferramenta

GraficosGodoy4

Anúncios

Controle de Versão – Resultados

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.

SCM2013-1

SCM2013-2

SCM2013-3

SCM2013-4

SCM2013-5

Freqüência de entrega e percepção de problemas

SCM2013-10

Ferramenta

SCM2013-6

SCM2013-7

SCM2013-11

SCM2013-12

Organização do repositório

SCM2013-8

SCM2013-9

Integração contínua e continuous delivery

SCM2013-13

SCM2013-14

SCM2013-15

SCM2013-16

Comparativo entre as ferramentas

SCM2013-17

  • 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:

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.

Pesquisa sobre Controle de Versão

Estou realizando uma pesquisa sobre o uso de controle de versão.

Peço 10 minutos do seu tempo para ajudar a melhor entender as ferramentas e práticas atualmente usadas. Peço que repliquem para seus amigos desenvolvedores para criarmos uma massa bem crítica de respostas.

Aceito sugestões!

Segue o link do Google Docs: https://docs.google.com/forms/d/1big0uigPO8sStHVRApOMptsnmLclIDaOWRWk5BsCXSQ/viewform