Cinco nuevos desarrolladores junior y muchas tareas complejas. ¿Que pasa ahora?

10

Nuestra compañía ha contratado a cinco nuevos desarrolladores junior para que me ayuden a desarrollar nuestro producto. Desafortunadamente, las nuevas características y las correcciones de errores entrantes generalmente requieren un conocimiento más profundo que el que un desarrollador recién graduado generalmente tiene (subprocesamiento / concurrencia, depuración de cuellos de botella en el rendimiento en un sistema complejo, etc.)

Delegar (y planificar) tareas que (probablemente) pueden resolver, responder a sus preguntas, asesorarlas / administrarlas, revisar su uso de código todo mi tiempo y a menudo siento que podría resolver los problemas en menos tiempo que todo el proceso de delegación (contando solo mi tiempo). Además, no tengo tiempo para resolver las tareas que requieren un conocimiento más profundo del sistema / habilidades más avanzadas y no parece que vaya a cambiar en el futuro cercano.

Entonces, ¿qué pasa ahora? ¿Qué debo hacer para usar su y mi tiempo de manera efectiva?

mxe
fuente
1
¿Las 5 personas de Jr. se pusieron en su proyecto? ¿Eres el único dev mayor que los supervisa?
Tyanna
@Tyanna: Sí, soy el único senior en este proyecto. Las otras personas mayores fueron trasladadas a otros proyectos hace algún tiempo.
mxe
2
lo primero que debe hacer es explicarle a la gerencia que será un poco menos productivo a medida que aumente a los novatos
jk.
Como recién graduado, estoy muy sorprendido de que exista un programa que no cubra concurrencia o desempeño.
Daniel Joseph
+1. Lo único que lamento es que no puedo votarte más.
Shivan Dragon

Respuestas:

2

Sí, puedes resolver las cosas más rápido de lo que pueden hacerlo, por eso eres mayor y no lo son. Sin embargo, un buen senior también quiere llevar a sus juniors al nivel senior y la única forma de hacerlo es permitiéndoles aprender cómo hacer las cosas.

La tutoría es el uso más efectivo de su tiempo en este momento, no la codificación.

Míralo de esta manera, si pasas los próximos seis meses asesorando de manera efectiva y los junior aprenden lo suficiente como para convertirse en desarrolladores intermedios, entonces tienes 5 desarrolladores intermedios y uno senior. Si hace todo el trabajo duro usted mismo porque es más rápido, en seis meses todavía tendrá 5 juniors haciendo girar sus pulgares (bueno, los mejores habrán pasado a otros trabajos para entonces si no les da un trabajo desafiante, por lo que puede tener menos o más nuevos desarrolladores jóvenes) y uno mayor con exceso de trabajo y malhumorado.

Usted sabe qué interacciones complejas se encuentran típicamente en los errores, por lo tanto, desarrolle algún tipo de capacitación específicamente sobre esos tipos de cosas, cómo solucionar problemas y encontrar el problema real y luego los tipos de métodos típicamente necesarios para solucionarlos. Luego, deles esos problemas a medida que surjan. Sí, tomarán más tiempo solucionarlos y debe permitirlo en sus estimaciones de tiempo.

La idea de programación en pareja es genial. Combínalo con uno diferente para cada problema que esté realmente avanzado. Incluso si aún no saben lo suficiente como para resolver el problema, tener al junior en el teclado mientras les dice qué probar en términos de buscar la causa les ayudará a enseñarles el proceso de resolución de problemas. Por supuesto, no esperes que tomen la dictadura. explique qué quiere que busquen y por qué. Pídales sus ideas y escúchelas. Explique por qué su idea no es una buena opción si no lo es. Utilice el método socrático de enseñanza haciendo preguntas principales. Recordarán mejor la solución que se les ocurrió a través de sus preguntas principales que la que les dictó sin explicación. También recordarán mejor si escribieron la solución en lugar de solo observar cómo la escribiste.

Una vez que el joven le haya ayudado a resolver una clase particular de problemas como parte de un par con usted, puede emparejarlo con otra persona la próxima vez que surja esa clase de problema y solo estará disponible para consultar, no pararse sobre sus hombros mientras Intentan cosas diferentes.

Tienes cinco personas nuevas, lo cual es realmente difícil. Debe ser justo con todos ellos y rotar con quién se empareja o orientar. No juegues favoritos. Pero también necesitará ser una persona que brinde "amor duro" si alguien no está teniendo éxito y está progresando. Es posible que necesite llamar a uno o más de ellos a un lado y decirles que necesitan mejorar y por qué siente que no están teniendo éxito. SOme peopel te permitirá hacer todo el trabajo si lo emparejas y no puedes; no lo permitas porque es más fácil. Si la persona no puede hacer el trabajo, es más amable con ellos y mucho mejor para su equipo si no los lleva una vez, es obvio que no pueden o no aprenderán a ser más independientes.

Recuerda, obtienes lo que esperas. Si no espera mucho, no obtendrá mucho. Espere que brillen y la mayoría de ellos alcanzará su estándar.

HLGEM
fuente
20

La programación en pareja suena como una gran posibilidad aquí.

  • Dé a cuatro de ellos dos de los errores más simples, déjelos emparejarse y haga que cada par aborde uno de ellos.
    • Exprese esta solicitud como: "¿Puede averiguar qué está causando esto?". No hagas que empiecen a pensar en cómo solucionarlo todavía.
    • Una vez que tienen un cierto nivel de una explicación, a continuación, preguntar cómo podría ser fijo. De esta manera no se sentirán tan abrumados con una gran tarea a la vez. Déjelos ir y experimente con el código si aún no lo han hecho, y una vez que tengan un plan, aunque sea vago, puede guiarlos hacia una buena solución.
  • El otro, puedes emparejarte y comenzar a trabajar en uno de los más difíciles con él. Esto puede ser más difícil dada su inexperiencia con el código, pero también tendrá el beneficio de que alguien con experiencia lo revise con él.
    • Creo que una nueva característica podría ser una buena manera de hacerlo, dada su experiencia. Puede mostrarle la API existente a medida que se desarrolla la nueva característica.

Para una anécdota / ejemplo de esta sugerencia que funciona: así fue como me presentaron la parte más complicada de la base de código en la que trabajo: con el otro desarrollador relativamente nuevo con el que estaba emparejado, terminamos haciendo algo como esto:

  • Nos dieron un error, y después de una introducción de aproximadamente 10 minutos, nos dijeron que intentáramos averiguar qué estaba pasando.
  • Aproximadamente una hora después, nos separamos y excavamos en dos trenes de pensamiento diferentes.
  • Aproximadamente dos horas después de eso, descubrí en general cómo funcionaba el código, pero no sabía exactamente dónde se generaba la salida incorrecta. Descubrió cómo se estaba generando, cavando en los datos sin procesar y desnormalizados, pero no pudo descifrar el código.
  • Nos emparejamos de nuevo y seguimos las rutas de código juntas, y obtuvimos una respuesta exacta. A partir de esto, hicimos una lluvia de ideas con nuestro gerente sobre algunas posibles soluciones, y terminamos implementándolas más adelante.

Desde entonces he heredado el mantenimiento de toda esa parte de la base de código, ya que realmente soy el único que comprende cómo funciona (los desarrolladores originales que aún están presentes ni siquiera lo recuerdan por completo).

Izkata
fuente
+1. El único problema puede ser dividir a 5 personas en pares de 2 ;-)
Doc Brown
@DocBrown Bueno, 5 desarrolladores inexpertos + 1 desarrollador experimentado significa que puede hacer 3 grupos de 2 (vea el segundo punto principal). Puede ser más un tutorial sobre qué tipo de código (UI, lógica de negocios, etc.) va a dónde, pero aprenderá cosas diferentes a las otras 4. Luego, en el siguiente conjunto de tareas, gire.
Izkata
7

Enséñales Asigne tareas que puedan resolver fácilmente.

En pocas palabras, el problema es que dicha fuerza laboral no está lo suficientemente capacitada para ser muy productiva con la tarea que tienen. Como tal, puede 1) facilitar la tarea 2) tratar de aumentar la habilidad de la fuerza laboral.

Casi siempre ocurre un problema similar (hasta cierto punto) cada vez que una nueva persona se une a un equipo y comienza a trabajar en una base de código de la que no tiene experiencia. Esto se convierte en un problema si las herramientas y metodologías son desconocidas. Al capacitar a la persona para que se familiarice más con las herramientas y metodologías, el problema se puede aliviar más rápido.

Sin embargo, resolver un problema de este tipo lleva tiempo: no se puede esperar que otros sepan todo o aprendan todo en un solo momento. Quizás la introducción de algunos libros sobre concurrencia, optimización de software y metodologías generales necesarias sería un buen comienzo.

zxcdw
fuente
3

Parece que no fuiste parte de la decisión de contratación. Haga una evaluación justa de sus habilidades para manejar las tareas actuales. Escriba un informe con una recomendación (capacitación externa y tales tareas, siempre que no afecte su tiempo de entrega), envíe el informe a su gerente, quien puede comenzar a hablar con quien contrató a esos tipos. Una nueva persona puede ser absorbida en un equipo, pero 5 nuevas personas a la vez, no suena bien a menos que tenga una tienda relajada. Hagas lo que hagas, no intentes enseñarles el tiempo de tu proyecto a menos que esto se tenga en cuenta en el plan.

Editar: Puede ser apropiado mencionar la Ley de Brook en esta situación.

Ninguna posibilidad
fuente
2

Tal vez pueda dedicar un tiempo a crear un entorno de caja de arena donde pueda lanzarlos para abordar algunos de los problemas difíciles sin hacer daño. Haga que prueben sus soluciones tan a fondo como puedan. Ponga más de 1 en el mismo problema.

Todas estas cosas les dan la posibilidad de adquirir la habilidad suficiente para ser útiles, además de que requieren menos tiempo. Por supuesto, si los tiene (en su mayoría) se hunden o nadan y prácticamente se hunden, entonces debe repensar las cosas.

En la profesión de programación, las personas que no pueden aprender por sí solas probablemente no valen realmente el esfuerzo que les tomaría enseñarles. Pero creo que probablemente te sorprenderán principalmente con lo bien que se llevan cuando recortes la ayuda.

psr
fuente
Esto parece una pérdida de tiempo si el entorno sandbox aún no existe.
Ramhound