Un sacco di ottime risposte qui. Alcune cose che vorrei aggiungere:
Quando devi spiegare il codice a qualcun altro, spesso nel corso della spiegazione lo sviluppatore può improvvisamente rendersi conto di avere un bug. Ho visto accadere ancora e ancora che il dev si ferma di colpo e dice "oh aspetta che sia sbagliato" prima che il recensore abbia capito la cosa abbastanza bene da vedere il bug.
Sapere che il tuo codice verrà ispezionato da qualcun altro ti darà più incentivi a usare gli standard di codifica (semplificando la manutenzione) o usare meno metodi "da cowboy" che nessuno, tranne te stesso (e talvolta nemmeno te stesso) capirà mai. Non vuoi essere imbarazzato quando mostri il tuo codice a qualcun altro, quindi fai un lavoro migliore su di esso in primo luogo. A causa del fattore imbarazzo, lascia meno il codice commentato con:
"Non so perché funzioni, ma non lo scherzo." nella base del codice.
Gli sviluppatori che hanno bisogno di una supervisione o formazione più ampia sono facilmente identificabili. Così sono i veri incompetenti. Prima è possibile trovare e risolvere i problemi di prestazioni, meglio è il team nel suo complesso e maggiore sarà la qualità dell'applicazione. È bello scoprire queste informazioni prima di prendere il nuovo ragazzo che ha bisogno di formazione e assegnarlo alla parte più difficile e più critica della tua applicazione.
A volte si tratta solo di correggere un'errata percezione che salverà facendo lo stesso errore in un sacco di altri luoghi. Ad esempio, abbiamo recentemente esaminato alcuni SQL per report complessi e abbiamo scoperto che molti dei nostri nuovi sviluppatori avevano lo stesso equivoco su dove trovare una specifica informazione nel database (ovviamente il posto che avevano scelto sembrava logico che è un problema di progettazione del database che noi anche bisogno di risolvere) che sarebbe fondamentale per scrivere correttamente tutti i report. Trovando il problema e correggendolo nei primi report che hanno scritto, è stato salvato lo stesso errore nel resto dei report. E qualcosa con cui gli sviluppatori più anziani (che lavorano qui non invecchiando) erano così abituati che non pensavano che fosse necessario spiegarlo. Ci ha anche fatto capire che c'erano altre cose che probabilmente ci servivano per assicurarci che i nuovi sviluppatori fossero sempre aggiornati.
I junior possono imparare dal codice più sofisticato scritto dagli anziani (che tendono a capire meglio il trapping degli errori e i casi limite, ad esempio) e gli anziani possono imparare dalle nuove tecniche usate da juniors a cui non sono ancora stati esposti.
A volte le persone che lavorano su parti diverse ma correlate dell'applicazione realizzano che stanno andando in due direzioni diverse e mutuamente esclusive. Ooops, più facile da risolvere ora.
Non è così facile intrufolarsi in valori codificati che cambieranno nel tempo solo per far funzionare la cosa ora. Questo impedisce molti bug futuri come cose che cambiano all'inizio di ogni anno fiscale.
A volte sono rimasto bloccato su come fare qualcosa e ho imparato una nuova tecnica che era proprio quello che volevo dal codice che esaminava le cose di qualcun altro.
Se hai familiarità con il modo in cui pensano gli altri membri del tuo team (quale revisione del codice ti aiuterà a capire), allora sarà più facile risolvere i problemi in un secondo momento, perché inizierai con la comprensione di come Joe si sarebbe avvicinato quel tipo di problema.