Inizia a fare revisioni del codice o accoppia la programmazione.
Se il team non lo farà, prova le revisioni settimanali del design. Ogni settimana, incontrati per un'ora e parla di un pezzetto di codice. Se la gente sembra difensiva, scegli il vecchio codice a cui nessuno è più legato emotivamente, almeno all'inizio.
Come @JesperE: detto, concentrati sul codice, non sul programmatore.
Quando vedi qualcosa che ritieni debba essere diverso, ma altri non la vedono allo stesso modo, allora inizia ponendo domande che portano alle carenze, invece di segnalarle. Per esempio:
Globali : pensi che vorremmo mai avere più di uno di questi? Pensi che vorremmo controllare l'accesso a questo?
Stato mutevole : pensi che vorremmo manipolarlo da un altro thread?
Trovo anche utile concentrarmi sui miei limiti, che possono aiutare le persone a rilassarsi. Per esempio:
funzioni lunghe : il mio cervello non è abbastanza grande da contenere tutto questo in una volta. Come possiamo realizzare pezzi più piccoli che posso gestire?
nomi cattivi : mi confondo abbastanza facilmente quando leggo il codice chiaro; quando i nomi sono fuorvianti, non c'è speranza per me.
In definitiva, l'obiettivo non è insegnare alla tua squadra come programmare meglio. È stabilire una cultura dell'apprendimento nella tua squadra. Dove ogni persona cerca aiuto negli altri per diventare un programmatore migliore.