Mi equipo de 4 desarrolladores experimentados trabaja en una gran aplicación modular de Windows (aproximadamente 200 KLoC). Me he centrado en la base de código central desde el comienzo del proyecto (hace 3 años) y gradualmente cambié a una posición de desarrollador semi-líder, aunque no soy el gerente del equipo.
Nuestra iteración actual es una actualización de la interfaz de usuario de alta prioridad solicitada por la administración superior, que involucra aproximadamente 15 cambios en la base de código central. Cuando el gerente me preguntó, calculé que cada uno de los 15 cambios tomaría menos de cuatro horas en completarse , un total de menos de 7 días hábiles. Luego me ofrecí para realizar el trabajo. En cambio, el gerente decidió repartir las 15 tareas a los cuatro desarrolladores.
En los tres días desde que comenzamos a trabajar, he observado dos cosas:
Los otros miembros del equipo sin experiencia completaron aproximadamente 1 o menos tarea cada uno.
La Ley de Brook en acción: pasé aproximadamente la mitad de mi tiempo brindándoles asistencia (intentando entrenarlos en el uso de los componentes). Como resultado, solo terminé 2 tareas yo mismo, en lugar de las 5 o 6 esperadas.
Me acerqué a mi gerente con la preocupación de que llegamos tarde y nuevamente sugerí que completara las tareas restantes. Mi solicitud fue amablemente rechazada, y las razones indicadas para dividir la carga de manera uniforme fueron dobles:
- Limite el factor camión / autobús : aumentar a otros desarrolladores en estas habilidades ahora, para que en el futuro cualquier trabajo se pueda realizar a cualquiera, no solo a mí.
- Para eliminar un "cuello de botella" (yo) y hacer el trabajo más rápido.
Para ser claros, no tengo problemas con: a) invertir el tiempo enseñando, b) personas que tocan mi código, o c) seguridad laboral. De hecho, le sugiero regularmente al líder del equipo que entrene a otros desarrolladores en ciertos aspectos de la base de código central para reducir el riesgo.
En esta iteración también tenemos una gran colección de correcciones de errores de alta prioridad dirigidas, por lo que parece que se podría hacer más progreso si la carga de trabajo se redistribuyera.
En Mythical-Man-Month, Brooks 'sugiere un " Equipo Quirúrgico " donde cada equipo se compone de un líder + sub-líder (el gerente y yo), y algunos roles menores. Siento como si naturalmente estuviéramos cayendo en esta organización, pero mi gerente está trabajando en contra de ella. Siento que el factor del bus ya está solucionado (el administrador está bien versado en el código central), y que el cuello de botella en realidad no existe (involucrar a más desarrolladores no hará que el trabajo vaya más rápido). Creo que, a este respecto, un equipo quirúrgico es algo bueno.
Estos son mis sentimientos, pero no soy un gerente experimentado, ni hemos tenido que lidiar con el factor del autobús (tocar madera). ¿Brooks tenía razón? ¿Has trabajado en un "equipo quirúrgico" donde el factor del autobús entró en juego? ¿Existen mejores técnicas para gestionar la experiencia de distribución?
Preguntas similares: