Na minha experiência, a melhor maneira é deixar a equipe do buraco fazer a revisão do código. Usamos uma lista de emails de confirmação em cada projeto, onde você pode acompanhar todas as alterações de código no sistema de controle de versão. A maioria dos nossos desenvolvedores se inscreveu na lista de discussão específica de seu projeto porque está interessada em alterações de código.
Quando alguém percebe um mau caminho no novo código-fonte, ele explica ao colaborador como ele pode fazê-lo de uma maneira melhor, se o colaborador é um estagiário, ou inicia uma discussão sobre o assunto, se era um colaborador mais experiente.
É claro que esse método não garante que todo o novo código seja revisado, especialmente em momentos estressantes em que nenhum membro da equipe tem tempo para acompanhar cada alteração de código. Além disso, nem todo desenvolvedor é responsável por garantir que todo desenvolvedor faça seu trabalho ser bom, por si só, você não pode garantir que ele seja revisado. Mas, pelo menos em nossas equipes, sempre há um gerente técnico responsável pela qualidade técnica.
Sou um verdadeiro fã de análises de código, se estiverem em conformidade com as seguintes pontuações:
- todo desenvolvedor tem a possibilidade de revisar todo o código e argumento da sua opinião
- ninguém tem o direito de abusar do código de outros
- não apenas código ruim ativa uma discussão, mas também código bom
- as discussões terminam com felicidade para todas as pessoas envolvidas
- a revisão ocorre quase em tempo real, pelo menos antes da conclusão do recurso
O que eu aprendi é que, se você é alguém que analisa cada linha de código e acha que precisa controlar coisas como qualidade de código em termos de formatação ou eficiência de código, então você é ineficiente porque faz o que as máquinas podem fazer você. Seu objetivo deve ser o uso de um sistema de integração contínua que controla a qualidade de construção e código de cada contribuição de código. Se este sistema gerar relatórios e enviá-los aos colaboradores, tudo estará perfeito.
Devo admitir que, se você precisar revisar o código porque precisa controlar ou classificar a qualidade de um programador, minhas sugestões não farão sentido. Nesse caso, eu também não revisaria o código fonte linha por linha. Eu revisaria coisas como:
- existem problemas relevantes de segurança
- são APIs pretendidas usadas
- o código aplicou a arquitetura especificada
- ele escreveu testes úteis (mas somente se ele foi instruído implicitamente, eu tive que aprender)
- Documentação
- processo de construção
- ... e um pouco mais, provavelmente
Se você é um desenvolvedor experiente, com certeza encontrará sempre coisas como loops que você pode fazer com melhor desempenho. É claro que é útil explicar esse conhecimento a outras pessoas, mas isso não deve fazer parte da sessão de revisão. Se houver problemas significativos de desempenho, não porque ele (ou ela) usou uma variante menos eficiente de um tipo de lista.
Como a pergunta inicial era por que algumas pessoas parecem fazer uma revisão melhor do que outras, eu responderia que essas pessoas talvez façam uma prévia antes do início da revisão real, significa que provavelmente estão se preparando para que saibam exatamente o que querem revisar .