Soy el líder de un pequeño equipo donde todos tienen menos de un año de experiencia en desarrollo de software. De ninguna manera me llamaría un gurú del software, pero he aprendido algunas cosas en los pocos años que llevo escribiendo software.
Cuando hacemos revisiones de código, enseño y corrijo bastante. Diré cosas como "Esto es demasiado complejo y complicado, y he aquí por qué" o "¿Qué piensas acerca de mover este método a una clase separada?" Tengo mucho cuidado al comunicar que si tienen preguntas u opiniones discrepantes, está bien y tenemos que discutir. Cada vez que corrijo a alguien, pregunto "¿Qué piensas?" o algo similar.
Sin embargo, rara vez, si alguna vez, no están de acuerdo o preguntan por qué. Y últimamente he notado signos más evidentes de que están ciegamente de acuerdo con mis declaraciones y no están formando opiniones propias.
Necesito un equipo que pueda aprender a hacer las cosas de manera autónoma, no solo seguir las instrucciones. ¿Cómo se corrige a un desarrollador junior, pero aún lo alienta a pensar por sí mismo?
Editar: Aquí hay un ejemplo de uno de estos signos obvios de que no están formando sus propias opiniones:
Yo: Me gusta tu idea de crear un método de extensión, pero no me gusta cómo pasaste un lambda complejo grande como parámetro. La lambda obliga a otros a saber demasiado sobre la implementación del método.
Junior (después de entenderme mal): Sí, estoy totalmente de acuerdo. No debemos usar métodos de extensión aquí porque obligan a otros desarrolladores a saber demasiado sobre la implementación.
Hubo un malentendido, y eso se ha solucionado. ¡Pero ni siquiera había una ONZA de lógica en su declaración! Pensó que estaba regurgitando mi lógica hacia mí, pensando que tendría sentido cuando realmente no tenía idea de por qué lo decía.