Se você estiver fazendo revisões de código
- Quanto tempo você gasta em revisões de código, em comparação com a implementação?
- Quantas das alterações passam por revisão de código?
- você acha que é demais / deveria ser mais?
Existem estudos sobre eficácia?
[edit] obrigado a todos pelas respostas, é difícil escolher um "vencedor" para essa pergunta, também há muitas informações valiosas nas outras respostas.
time-management
code-reviews
peterchen
fonte
fonte
Respostas:
No meu trabalho, temos o seguinte procedimento para revisões de código. Até agora, funcionou bem para nós e achamos que era muito eficiente em termos de tempo, especialmente em termos de horas-homem. Realmente não temos um tempo específico alocado para as revisões. Cada confirmação ou mesclagem no tronco deve ser revisada e leva o tempo necessário para o revisor aprovar.
Edit: O tempo que leva, é claro, depende da magnitude da mudança. Pequenos recursos e correções de bugs levam alguns minutos. Novos recursos, refatorações ou alterações grandes que afetam muitas partes do sistema podem levar meio dia para serem revisados e outro para resolver todos os problemas que surgem como resultado.
Para que esse sistema funcione, é crucial se comprometer frequentemente com o tronco, para que as alterações sejam de tamanho gerenciável. Você não deseja ter a situação quando precisar revisar o código de um ano no valor de um ano.
fonte
Em relação aos estudos, o software Smart Bear enviará a você um pequeno livro, Best Kept Secrets of Peer Code Review , de graça. Ele contém vários artigos sobre vários aspectos da revisão de código, incluindo estudos sobre quanto tempo eles devem levar e qual a sua eficácia.
fonte
Em nosso projeto, todas as alterações significativas no sistema são revisadas pelo líder da equipe ou em conjunto com outro desenvolvedor que será o principal "consumidor" do novo módulo. Falamos no skype e usamos Rudel no Emacs (um plugin para edição colaborativa, basicamente ele permite que vários usuários editem o mesmo arquivo ao vivo), ou TypeWith.me (Piratepad), ou um de nós compartilha sua tela no skype.
É difícil quantificar isso, porque alterações mundanas, como novas visualizações, páginas etc. não são revisadas. Revisamos novos módulos, grandes atualizações e refatorações. Quanto às grandes mudanças, a revisão de código pode levar de 10% a 30% do tempo, mas vale a pena.
Posso dizer que a programação em pares, quando dois programadores editam o mesmo arquivo ao mesmo tempo, não apenas se sentam no mesmo computador, é muito melhor do que a prática usual de se sentar atrás do ombro.
Para coisas simples, como convenções de nomenclatura e erros de escopo, usamos nossas próprias ferramentas automáticas ou de código aberto (jslint, pylint, pyflakes, pep8). E não limitamos commit e push: usamos o Mercurial, que é muito fácil de ramificar e mesclar (devo dizer, mais fácil do que no Git). Bugs não são uma questão de revisão de código.
Realizamos reuniões de equipe em que as mudanças e novidades são anunciadas, mas nem todos realmente prestam atenção. Provavelmente deveríamos fazer um pouco mais de revisão de código.
fonte
Não há resposta certa ou errada para isso. Porém, como muitos sugeriram antes - se a revisão de código for feita por um membro externo da equipe [método altamente recomendado], isso poderá representar aproximadamente 30% a 35% do esforço de desenvolvimento. Mas se isso for feito por um membro da equipe de projeto interno que fazia parte da equipe de desenvolvimento [não recomendado], isso poderá ser concluído em aproximadamente 20% do tempo necessário para o esforço de desenvolvimento.
Nota: deparei-me com esta discussão ao procurar outra coisa e achei que poderia adicionar algum valor aqui. Aliás, toda essa estimativa de esforço acima é baseada na minha experiência de trabalho como gerente de engajamento em vários projetos. Espero que ajude.
fonte
Cada organização e base de código é diferente, por isso é difícil obter um valor amplo para o setor.
Se você é realmente sério, deve começar a coletar métricas. Ou seja, faça a revisão do código até que seja satisfatoriamente feito, incluindo retrabalho. Comece a coletar isso em um banco de dados (LOC, complexidade do código, linguagem de programação, horário etc.). Em seguida, colete métricas sobre sua taxa de defeitos durante o teste. Contanto que você possa reduzir essa revisão de código, deve pagar por si só. Se o defeito retornar dos testes, colete métricas sobre quanto tempo foi gasto na correção de defeitos. Crie esses dados em sua organização, crie linhas de base e é possível prever com bastante precisão. Os termos para procurar aprendizado adicional são Custo da qualidade e Custo da má qualidade.
A única ressalva é que isso pode começar a se tornar burocrático e depende da cultura da organização.
fonte