Quem deve fazer revisões de código?

12

Na minha empresa, principalmente o arquiteto faz revisões de código. Ele é um cara de software muito experiente e inteligente, então é muito bom nisso. Quando os desenvolvedores fazem as revisões de código, eles também não fazem isso pela metade. Tentamos dar aos desenvolvedores mais revisões de código, mas a qualidade delas não era boa. Usamos Scrum como metodologia de desenvolvimento.

No entanto, com o sistema atual, existem dois problemas:

  1. O arquiteto se torna um gargalo

  2. Os desenvolvedores não se responsabilizam pela qualidade do código e da arquitetura (o que leva a todos os tipos de problemas).

Como podemos resolver esses problemas? Devemos mudar quem revisa o código?

Eugene
fonte
1
Não o vejo como duplicado. As perguntas estão relacionadas, mas a possível duplicata se concentra em questões ligeiramente diferentes.
Bart van Ingen Schenau
Você poderia expandir o que você entende por "qualidade das revisões de código"? Você quer dizer a qualidade do código que surge no final da revisão? Parece-me que você tem apenas um desenvolvedor que pode produzir um código de qualidade aceitável; nesse caso, eu diria que você tem problemas maiores ...
AakashM /

Respostas:

15

Os desenvolvedores devem fazer revisões de código. Eles devem fazer revisões de código, porque devem conhecer o código, os padrões e práticas de estilo da empresa. Ao fazer com que outra pessoa faça revisões de código, você está dizendo aos desenvolvedores que não é responsabilidade deles garantir que o código atenda aos padrões da empresa.

Se você acha que eles precisam de treinamento para fazer revisões de código, obtenha-os. Dada a sua situação atual, você pode solicitar que um desenvolvedor faça a revisão do código e, em seguida, faça o comentário do arquiteto - peça ao desenvolvedor que envie a revisão ao arquiteto para aprovação antes de enviá-la ao remetente.

jmoreno
fonte
2
" Ao fazer com que outra pessoa faça revisões de código, você está dizendo aos desenvolvedores que não é responsabilidade deles garantir que o código atenda aos padrões da empresa. " - sim e não. Você também está dizendo "Seu código está sujeito a (espero) revisão crítica por pares , então é melhor fazer direito da primeira vez".
9134 JensG
@ JensG: mas não é um colega fazendo a revisão na situação do OP.
jmoreno
3
Foi por isso que fiz isso ousado.
JensG
8

Nessa situação, o que você precisa é que o conhecimento desse desenvolvedor experiente ajude o restante da equipe a crescer. A qualidade de uma equipe não é definida pelas habilidades do melhor desenvolvedor; é definido pelas habilidades dos piores. Você pode tentar coisas como:

  • Revisões colaborativas. Isso funcionou muito bem na minha última equipe. Colocamos toda a equipe em uma sala com um projetor e começamos a revisar alguns itens. Talvez no início o arquiteto seja o que guia a revisão, mas em algumas semanas (reservamos uma ou duas horas toda sexta-feira) toda a equipe começa a conversar e entender os principais conceitos que atualmente apenas o arquiteto parece conhecer.

  • Programação em pares. Para mim, esta é a melhor ferramenta para disseminar conhecimento em equipe.

AlfredoCasado
fonte
+1 para programação em pares. De fato, meu primeiro pensamento sobre essa questão foi "todo mundo", mas a programação em pares é melhor. Acho que tiramos o máximo proveito disso se torná-lo uma fonte de aprendizado além do aspecto da qualidade.
JensG
3

Embora eu possa entender o motivo de o arquiteto de sistema / software assinar todas as alterações / confirmações, os desenvolvedores de software devem poder fazer revisões sem envolver o arquiteto - exceto a arbitragem.

Meus procedimentos de revisão [*] preferidos são:

  • Agrupe alterações por requisito / problema.
  • Convide todos os desenvolvedores, o arquiteto do software e o autor do requisito / problema a revisar. (Eles não são todos obrigados a fazer uma revisão.)
  • Considere uma revisão concluída quando:
    • Dois desenvolvedores revisaram.
    • Todos os comentários são respondidos. (Possivelmente pedindo que o arquiteto do software tome uma decisão.)
    • Um dia útil passou sem discussão adicional (ou todas as partes convidadas foram revisadas).

Portanto, minha resposta curta para sua pergunta é: Os desenvolvedores devem fazer revisões de alterações.

[*] Infelizmente, nem sempre é assim que os projetos dos quais participo operam.

Jacob Sparre Andersen
fonte
agora sempre ou nem sempre?
Martijn
Como você deve ter adivinhado: "nem sempre". Obrigado por detectá-lo. Eu corrigi a resposta.
Jacob Sparre Andersen
3

Gosto da prática de revisões ocasionais de código de equipe, que incluem toda a equipe, os arquitetos, mas depois várias e muitas análises de código entre dois ou três membros da equipe.

Se for um código realmente complicado ou sensível, aliste o arquiteto ou os membros seniores da equipe.

Honestamente, porém, parece meio ridículo ter um arquiteto fazendo revisões de código. Ele deveria fazer revisões de design ou ocasionais revisões de código informalmente para compartilhar seus conhecimentos. A equipe de engenharia deve assumir a responsabilidade pelo código. Se houver problemas, eles melhorarão com o tempo.

Roubar
fonte
2

Eu concordo que, se apenas uma pessoa fizer uma crítica, o resto dos caras provavelmente dirá "Não sei, parece funcionar, mas deixe esse cara inteligente descobrir se está tudo bem ou não". Eu posso pensar no seguinte:

  • torne seu código público para que todos possam ver no que estão trabalhando; coloque nomes no início de cada arquivo que contém código; talvez as imprima e as imprima no banheiro ou em qualquer lugar que você sentir
  • programação em pares; com outro cérebro ao seu lado, você pensará duas vezes antes de nomear sua variáveli
  • pegue seu zelador e explique a ele como essa herança funciona (oh, sim, não funciona). Explicar o seu código para outra pessoa ajuda. Talvez compile, talvez faça as coisas certas, mas você realmente não entendeu o porquê. Agora é sua chance
  • tenha um conjunto de diretrizes e faça com que todos as sigam; qualquer que seja a diretriz, é melhor do que nenhuma diretriz
mihai
fonte