Sou o líder de uma equipe pequena, onde todos têm menos de um ano de experiência em desenvolvimento de software. Eu não me chamaria de guru de software, mas aprendi algumas coisas nos últimos anos em que escrevo software.
Quando fazemos revisões de código, eu ensino bastante e corrigo erros. Vou dizer coisas como "Isso é muito complexo e complicado, e aqui está o porquê" ou "O que você acha de mudar esse método para uma classe separada?" Sou extremamente cuidadoso ao comunicar que, se eles tiverem perguntas ou opiniões divergentes, tudo bem e precisamos discutir. Toda vez que eu corrijo alguém, pergunto "O que você acha?" ou algo semelhante.
No entanto, eles raramente ou nunca discordam ou perguntam o porquê. Ultimamente, tenho notado sinais mais flagrantes de que eles estão concordando cegamente com minhas declarações e não formando opiniões próprias.
Preciso de uma equipe que possa aprender a fazer as coisas corretamente de forma autônoma, e não apenas seguir as instruções. Como alguém corrige um desenvolvedor júnior, mas ainda o encoraja a pensar por si mesmo?
Edit: Aqui está um exemplo de um desses sinais óbvios de que eles não estão formando suas próprias opiniões:
Eu: gosto da sua ideia de criar um método de extensão, mas não gosto de como você passou um lambda complexo e grande como parâmetro. O lambda força outros a saberem muito sobre a implementação do método.
Junior (depois de me entender mal): Sim, eu concordo totalmente. Não devemos usar métodos de extensão aqui, porque eles forçam outros desenvolvedores a saberem muito sobre a implementação.
Houve um mal-entendido, e isso foi tratado. Mas não havia nem uma onça de lógica em sua declaração! Ele pensou que estava regurgitando minha lógica de volta para mim, pensando que faria sentido quando realmente ele não tinha idéia do por que estava dizendo isso.