Beginnen Sie mit Codeüberprüfungen oder Paarprogrammierung.
Wenn das Team sich nicht dafür entscheidet, versuchen Sie es mit wöchentlichen Designprüfungen. Treffen Sie sich jede Woche für eine Stunde und sprechen Sie über ein Stück Code. Wenn die Leute defensiv wirken, wählen Sie alten Code, an den zumindest zu Beginn niemand mehr emotional gebunden ist.
Wie @JesperE: sagte, konzentrieren Sie sich auf den Code, nicht auf den Codierer.
Wenn Sie etwas sehen, von dem Sie denken, dass es anders sein sollte, andere es aber nicht so sehen, stellen Sie zunächst Fragen, die zu den Mängeln führen, anstatt darauf hinzuweisen. Beispielsweise:
Globals : Glaubst du, wir werden jemals mehr als eine davon haben wollen? Glauben Sie, wir wollen den Zugang dazu kontrollieren?
Veränderlicher Zustand : Glauben Sie, wir wollen dies von einem anderen Thread aus manipulieren?
Ich finde es auch hilfreich, mich auf meine Grenzen zu konzentrieren, die den Menschen helfen können, sich zu entspannen. Beispielsweise:
lange Funktionen : Mein Gehirn ist nicht groß genug, um all dies auf einmal zu halten. Wie können wir kleinere Stücke herstellen, mit denen ich umgehen kann?
schlechte Namen : Ich werde leicht genug verwirrt, wenn ich klaren Code lese; Wenn Namen irreführend sind, gibt es keine Hoffnung für mich.
Letztendlich ist es nicht Ihr Ziel, Ihrem Team beizubringen, wie man besser codiert. Es geht darum, eine Lernkultur in Ihrem Team zu etablieren. Wo jede Person die anderen um Hilfe bittet, um ein besserer Programmierer zu werden.