Consenso
Non puoi convincere i membri del team a rivedere il tuo codice se il tuo team non è d'accordo sul fatto che le revisioni del codice siano preziose. Direi che la revisione del codice è una delle tre cose di cui la maggior parte degli sviluppatori non fa abbastanza. Quindi il primo passo è parlare semplicemente della revisione del codice in una riunione con tutto il tuo team (compresi i manager). Chiedi loro cosa ne pensano, se è prezioso e quanto spesso dovrebbe essere fatto.
Scommetto che almeno la metà di loro pensa che sia una perdita di tempo. Se è così, il tuo primo passo è l'istruzione. È necessario estrarre recensioni in cui sono stati fatti commenti preziosi, specialmente se qualcuno ha rilevato un bug reale prima dell'unione (non dovresti vendere CR come strumento di ricerca di bug, ma è un bel bonus quando succede). Se i tuoi colleghi non hanno esperienza, potrebbe essere difficile vendere. Anche così, è qualcosa che dovresti sollevare delicatamente il più spesso possibile, in modo che alla fine assorbano l'idea che CR -> migliore qualità -> codice migliore -> meno bug -> migliore qualità della vita per gli sviluppatori.
Applicazione
Una volta che hai convinto il team a sostenere almeno a parole l'idea che la CR è preziosa, devi creare un meccanismo per applicarla. Idealmente, il tuo sistema di controllo della versione fa questo (banale da configurare su GitHub, per esempio). Se nessuno può unire senza ottenere una risposta predefinita, allora si spera che tutti abbiano un collo di bottiglia e siano quindi incentivati a eliminare il backlog. Quando ciò accade, devi fare qualcosa che a prima vista può sembrare infinitamente difficile per te: non devi fare nulla. Esiste un numero medio di PR prodotte per sviluppatore e ogni sviluppatore deve quindi eseguire quel numero di CR per avere un'equa distribuzione del lavoro. Devi stimare quel numero e non fare più di altrettanti CR.
Presto tutti i membri del team si lamenteranno del fatto che c'è un enorme arretrato di PR in attesa di unirsi e devi chiarire che l'intero team deve sostenere il carico di esaminarli. Ricorda loro delicatamente che hanno concordato sul valore e resisti a qualsiasi chiamata per rimuovere il blocco CR sulle unioni. Molto probabilmente, faranno CR a malincuore e sporadicamente. Per aiutare ad assegnare la responsabilità, ho creato uno strumento per il mio team che ha eseguito un'assegnazione round robin molto semplice di PR agli sviluppatori. Tutti potevano vedere chi non stava facendo recensioni e tutti sapevano con chi parlare se il loro PR era bloccato durante la revisione. Il solo fatto di avere questa visibilità aiuta a far rispettare il comportamento desiderato.
Inoltre, l'anzianità ha davvero poco a che fare con questo fenomeno. Lo vedo in tutti gli sviluppatori di tutti i livelli. Molte volte sono gli sviluppatori junior cresciuti in una cultura del software più moderna ad abbracciare le revisioni del codice, mentre gli sviluppatori senior che sono abituati a fondersi senza revisione resistono. Quindi, in realtà, è solo una preferenza individuale che purtroppo è pervasiva in tutto il settore.
Aspettative
Infine, è necessario superare l'idea che i CR servono per trovare i difetti. La revisione del codice dovrebbe riguardare principalmente la distribuzione della conoscenza. Il solo fatto che qualcun altro legga la tua modifica rende un'altra persona del team consapevole del cambiamento e più probabilmente il team nota potenziali conflitti di progettazione con modifiche simultanee o imminenti. È anche per l'istruzione. Gli sviluppatori junior dovrebbero trarre vantaggio da eseguire una risposta predefinita quanto gli anziani, ma di natura diversa. Dovresti insegnare ai ragazzi che se non hanno critiche del codice che stanno rivedendo, dovrebbero porre domande . Sicuramente stanno imparando qualcosa di nuovo qua e là, o vedono qualcosa di inaspettato che è stato fatto in modo diverso da come lo farebbero loro. Porre queste domande e ottenere buone risposte li aiuta a capire quali pratiche sono specifiche per la tua azienda rispetto alle migliori pratiche generali di ingegneria del software.
Se qualcuno esprime riluttanza o esitazione a eseguire revisioni, in particolare del tuo codice, offriti semplicemente di associarlo alla revisione. Dì loro le cose che cerchi e chiedi loro di spiegarti il tuo codice. Se nella loro spiegazione manca qualcosa di interessante, poni domande importanti per evidenziare il tuo punto. Se non riescono a capire un po 'a fondo, chiedi loro di porre una domanda sulla revisione per dimostrare che il tuo codice non era così auto-documentante come avrebbe potuto essere. Quindi passare attraverso uno dei loro PR o di qualcun altro e dimostrare gli stessi principi. Mostra con l'esempio che una risposta predefinita non deve essere intimidatoria e che può essere una preziosa esperienza di apprendimento per tutti.