Muitas ótimas respostas aqui. Algumas coisas que eu acrescentaria:
Quando você precisa explicar o código para outra pessoa, geralmente no decorrer da explicação, o desenvolvedor pode perceber repentinamente que tem um bug. Eu já vi isso acontecer repetidas vezes, que o desenvolvedor para de parar e diz "oh, espere, isso está errado" antes que o revisor entenda a coisa suficientemente bem para ver o bug.
Saber que seu código será inspecionado por outra pessoa oferece a você mais incentivo para usar padrões de codificação (facilitando a manutenção) ou usar menos métodos "cowboy" que ninguém, exceto você (e às vezes nem você mesmo) jamais entenderá. Você não quer ficar envergonhado quando mostra seu código a outra pessoa, para fazer um trabalho melhor nele. Por causa do fator embaraçoso, deixa menos do código comentado com: "Não sei por que isso funciona, mas não mexa com ele". na base de código.
Desenvolvedores que precisam de supervisão ou treinamento mais extensos são facilmente identificados. Assim são os completamente incompetentes. Quanto mais cedo você encontrar e resolver problemas de desempenho, melhor será a equipe como um todo e maior será a qualidade do aplicativo. É bom descobrir essas informações antes de escolher o novo profissional que precisa de treinamento e atribuí-lo à parte mais difícil e crítica do seu aplicativo.
Às vezes, é apenas uma questão de corrigir uma percepção equivocada que poupará o mesmo erro em muitos outros lugares. Por exemplo, recentemente revisamos alguns SQL para relatórios complexos e descobrimos que vários de nossos novos desenvolvedores tinham o mesmo mal-entendido sobre onde encontrar uma informação específica no banco de dados (reconhecidamente, o local que eles escolheram parecia lógico, o que é um problema de design de banco de dados. também é necessário corrigir) que seria crítico para escrever corretamente todos os relatórios. Ao encontrar o problema e corrigi-lo nos primeiros relatórios que eles escreveram, evitou que o mesmo erro acontecesse no restante dos relatórios. E algo que os desenvolvedores mais antigos (em tempo de trabalhar aqui, não em idade) estavam tão acostumados que não acharam que fosse necessário explicar.
Os juniores podem aprender com o código mais sofisticado escrito pelos idosos (que tendem a entender melhor a captura de erros e casos extremos, por exemplo) e os idosos podem aprender com as novas técnicas usadas pelos juniores aos quais ainda não foram expostos.
Às vezes, as pessoas que trabalham em partes diferentes, mas relacionadas ao aplicativo, percebem que estão seguindo duas direções diferentes e mutuamente exclusivas. Opa, mais fácil de corrigir agora.
Não é tão fácil se infiltrar em valores codificados que mudarão ao longo do tempo apenas para que a coisa funcione agora. Isso evita muitos bugs futuros, como coisas que mudam no início de cada ano fiscal.
Às vezes, eu fiquei preso em como fazer algo e aprendi uma nova técnica que era exatamente o que eu queria ao revisar o código de outras pessoas.
Se você estiver familiarizado com o que os outros membros de sua equipe pensam (qual revisão de código ajudará a fornecer esse entendimento), será mais fácil solucionar problemas posteriormente, porque você começará com um entendimento de como Joe teria abordado esse tipo de problema. problema.