Ich leite ein kleines Team, in dem jeder weniger als ein Jahr Erfahrung in der Softwareentwicklung hat. Ich würde mich auf keinen Fall als Software-Guru bezeichnen, aber ich habe in den wenigen Jahren, in denen ich Software geschrieben habe, ein paar Dinge gelernt.
Wenn wir Code-Reviews durchführen, muss ich einiges lehren und Fehler korrigieren. Ich sage Dinge wie "Dies ist zu komplex und verworren, und hier ist der Grund" oder "Was halten Sie davon, diese Methode in eine separate Klasse zu verschieben?" Ich bin besonders vorsichtig zu kommunizieren, dass, wenn sie Fragen haben oder abweichende Meinungen, das in Ordnung ist und wir diskutieren müssen. Jedes Mal, wenn ich jemanden korrigiere, frage ich: "Was denkst du?" oder etwas ähnliches.
Sie widersprechen jedoch selten, wenn überhaupt, oder fragen nach dem Grund. Und in letzter Zeit habe ich offenkundigere Anzeichen dafür bemerkt, dass sie meinen Aussagen blindlings zustimmen und keine eigenen Meinungen bilden.
Ich brauche ein Team, das es lernt, Dinge autonom richtig zu machen und nicht nur Anweisungen zu befolgen. Wie korrigiert man einen Nachwuchsentwickler, ermutigt ihn aber trotzdem, selbst zu überlegen?
Bearbeiten: Hier ist ein Beispiel für eines dieser offensichtlichen Anzeichen, dass sie sich keine eigene Meinung bilden:
Ich: Ich mag Ihre Idee, eine Erweiterungsmethode zu erstellen, aber ich mag nicht, wie Sie ein großes komplexes Lambda als Parameter übergeben haben. Das Lambda zwingt andere, zu viel über die Implementierung der Methode zu wissen.
Junior (nach einem Missverständnis von mir): Ja, dem stimme ich voll und ganz zu. Wir sollten hier keine Erweiterungsmethoden verwenden, da sie andere Entwickler dazu zwingen, zu viel über die Implementierung zu wissen.
Es gab ein Missverständnis, und das wurde behoben. Aber es gab nicht einmal eine Unze Logik in seiner Aussage! Er dachte, er würde mir meine Logik zurückgeben und dachte, es würde Sinn machen, wenn er wirklich keine Ahnung hatte, warum er es sagte.