¿Girar al desarrollador principal es una buena o mala idea?

31

Trabajo en un equipo que ha sido plano desde el punto de vista organizativo desde su creación hace varios meses. Mi gerente no es técnico y esto significa que todo nuestro equipo es responsable de la toma de decisiones.

Mi gerente está comenzando a darse cuenta de que hay varios beneficios de tener un desarrollador líder, tanto por su bien (un único punto de contacto y una única parte responsable de las tareas) como por el nuestro (resolución de disputas, orientación técnica organizada, etc.).

Debido a que el equipo ha sido plano, una preocupación es que elegir un desarrollador principal puede desalentar a los demás. Un no desarrollador sugirió a mi gerente que rotar al desarrollador principal es una forma posible de evitar este problema. Un desarrollador sería líder un mes, otro el siguiente, y así sucesivamente.

¿Es esta una buena idea? ¿Por qué o por qué no?

Tenga en cuenta que esto significa todos los desarrolladores: todos los desarrolladores son buenos, pero no necesariamente adecuados para el liderazgo.

Y si no es así , ¿cómo recomiendo que evitemos este enfoque sin que parezca simplemente por razones egoístas?

NickC
fuente
77
"El desarrollador principal actual es imaginario.
Gírelo
14
No lo recomendaré, eso puede marearlo.
Gaurav

Respuestas:

31

No rotar

No creo que nadie gane nada de la posición que se está rotando (aparte de los que no merecen ser el líder, podrían obtener más dinero del que están recibiendo actualmente).

Tener un desarrollador líder brillante que pueda hacer lo siguiente hace maravillas para el proceso de desarrollo:

  1. Sabe delegar.
  2. Está en control
  3. Es un desarrollador experimentado.

Es una fuente única para que el resto del equipo admire y busque asesoramiento. También es el mediador entre la administración de nivel superior y el equipo central de desarrollo. No conozco ningún equipo directivo al que le guste lidiar con el cambio (a menos que sean ellos quienes lo instiguen).

Si realmente eres el más adecuado para el puesto, todos lo sabrían. Todo el mundo lo sabría (por ejemplo, la gerencia de nivel superior, su compañero de equipo, etc.) Indique que no cree que valga la pena rotar la posición (si lo cree). Luego, siéntese y déjelos hacer la designación: abstenerse de revelar nombres o de cualquier tipo de autopromoción, ya que esto lo haría parecer poco profesional

Jonathan Khoo
fuente
@ Jonathan Khoo: su respuesta parece ser "olvidar un sistema plano, contratar a un desarrollador estrella de rock".
3
@moz: tal vez no sea un desarrollador estrella de rock, pero una vez que un proyecto alcanza un cierto tamaño, tiene sentido tener algún tipo de punto de contacto primario que maneje los gastos administrativos. Esto también podría ser un gerente de proyecto que no realiza ningún trabajo de desarrollo.
rjzii
2
Si se trata de un equipo plano, el "desarrollador principal" no recibirá más pagos que el resto. Tendrá las responsabilidades pero no los beneficios de tener un puesto de alto nivel. Eso es, de hecho, la realidad en casi cualquier equipo de la historia que he trabajado en.
jwenting
66
@moz: Una estrella de rock se desperdiciaría en esa posición, ya que mucho de lo que hace el desarrollador principal no implicaría programación. La experiencia es útil, ya que permite que el líder sea el mentor y le da la credibilidad geek para liderar de manera efectiva, pero probablemente no desee que su desarrollador más productivo pase tiempo en reuniones con una alta gerencia.
David Thornley
1
Encuentro que los tipos de gestión que saben de qué se trata la codificación (pueden leer código, saber qué son las tablas y las bases de datos, saber qué es un socket TCP / IP, pueden haber codificado antes) son los más adecuados para estos roles. Después de todo, hay mucho papeleo involucrado, y están acostumbrados.
Vincent Vancalbergh
11

Hay dos partes para ser un desarrollador principal:

  • Liderazgo técnico Para el liderazgo técnico, tiene sentido elegir un desarrollador líder diferente a nivel de proyecto. Haga que cada desarrollador sea un líder técnico para un proyecto diferente, rotando si es necesario a medida que los proyectos rotan. Este tipo de enfoque puede lidiar con la dinámica del equipo, y asegurarse de que todos sean desafiados adecuadamente

  • Comunicación Un único punto de contacto para la comunicación con el mundo exterior es bueno para el mundo exterior y malo para el punto de contacto. Quien se quede atrapado con la pelota de comunicación tendrá menos tiempo para hacer un trabajo real y tendrá que correr para obtener información de todos para transmitir. Si eres el mejor comunicador y estás dispuesto a dejar de hacer la mayor parte del trabajo divertido a cambio de hablar, más poder para ti.

blueberryfields
fuente
Entonces, ¿no sería posible dividir estos dos roles? A menudo, el mejor comunicador no es el mejor técnicamente. He descubierto que la mejor situación de "programación de pares" se produce cuando cada uno sobresale en uno de ellos
CashCow,
Puede confirmar. Acepté mi primer papel principal hace 6 meses (equipo de 12 desarrolladores), y nunca he pasado tanto tiempo sin programar como lo hago ahora. Principalmente solo tutoría, gestión e informes al alza.
Sr. JavaScript
6

No es necesariamente una mala idea, siempre que los desarrolladores involucrados estén comprometidos y sean (idealmente) capaces.

Tengo problemas para encontrar referencias para esto (pero seguiré buscando), pero si recuerdo correctamente, algunas compañías ágiles hacen esto: rotan el título de "líder del equipo" en cada iteración o en otro momento predefinido período. Eso promueve la participación del desarrollador y les da a todos la oportunidad de hacer parte de la gestión del equipo / comunicación externa sin mover permanentemente a un desarrollador del desarrollo a ese rol.

Algunos inconvenientes incluyen la posible pérdida de información (esto puede mitigarse de varias maneras) y un mayor potencial de liderazgo "malo". También puede ser difícil mantener una visión / dirección para el equipo. Sin embargo, si todos están de acuerdo con este enfoque y los miembros del equipo están bien informados e interesados ​​en hacer que tal sistema funcione, puede valer la pena intentarlo.

Adam Lear
fuente
No creo que necesariamente quieras rotar CADA desarrollador en la posición de liderazgo del equipo, pero esperaría que un desarrollador sénior pueda manejar esas responsabilidades. Francamente, es un trabajo ingrato, y es más un caso de compartir la carga y evitar quemar a un individuo. También creo que ayudará a mantener intactas las ventajas de su equipo de organización plano dinámico para no tener un desarrollador como líder permanente.
MebAlone
"Algunos inconvenientes incluyen la posible pérdida de información (esto se puede mitigar de varias maneras) y un mayor potencial para un" mal "liderazgo": ¿qué pasa con la rotación solo en desarrolladores seleccionados? Esto puede evitar este problema.
Adrien Be
1
@AdrienBe Aún necesitarías transferir información entre ellos. A menos que estén liderando al mismo tiempo todo el tiempo (lo que frustra el propósito), tendrá que tener esto en cuenta. También puedes alienar a otros desarrolladores del equipo que no pueden liderar en absoluto y pueden sentirse excluidos.
Adam Lear
5

Si gira, no lo haga durante un proyecto. No hay nada intrínsecamente malo en asignar diferentes roles a diferentes personas para diferentes proyectos, en función de quién es el más apropiado en cada posición para ese proyecto en particular. Pero no hagas que Joe sea el "programador principal" solo porque es su tiempo en la lista para realizar el trabajo. Es posible que no esté capacitado para ello, puede que ni siquiera quiera el trabajo.

jwenting
fuente
4

Rotar al desarrollador principal en función del tiempo es una mala idea.

Todos somos buenos desarrolladores no significa que todos sean buenos líderes. Y uno es un buen líder no significa que sea adecuado para el líder de este programa.

Creo que la importancia de las misiones asignadas a los desarrolladores es diferente, y el liderazgo de cada desarrollador es diferente. Creo que puede aconsejar a su gerente para que vote. Cada uno vota a 2 personas por el mejor candidato, y la persona que obtiene más votos debe ser el desarrollador líder

ChrisF
fuente
3

Estoy dispuesto a estar de acuerdo con Jonathan Khoo en que rotar al desarrollador principal podría ser una mala idea. En general, para proyectos más grandes, hay un solo líder técnico que encabeza el proyecto y esa persona puede tener varios líderes de componentes que le informan para discutir varios problemas de todo el sistema.

Sin embargo, un punto importante que Jonathan no mencionó es que el líder técnico también desarrolla un alto grado de conocimiento institucional que otros en el proyecto podrían no tener. Al rotar el liderazgo técnico, se les exige que desarrollen ese conocimiento cada vez que se rota a alguien en la posición. Además, el líder desarrollará una relación con los clientes fuera del proyecto, ya que idealmente deberían estar presentes para algunas de las reuniones (más grandes) con los usuarios finales.

Tener un liderazgo técnico es bueno, pero si intenta rotarlos, puede encontrar que estaría mejor sin uno.

revs rjzii
fuente
2

Creo que primero debe determinar cuál es el papel de esta persona, más que quién lo hace y por cuánto tiempo.

También debe determinar si esto va a cambiar significativamente la forma en que trabaja el resto y si reducirá su rendimiento. Hacer que una persona tenga que "aprobar" cada línea de su código en lugar de que lo haga un compañero puede tener un efecto grave.

Se pueden asignar diferentes roles específicos a diferentes miembros del equipo, sin que ninguno de ustedes sea "superior". Al que mejor se comunica entre el gerente y los demás se le puede asignar un papel específico para hacerlo, pero eso no significa que sea un "desarrollador principal", y que no sea la persona que sea mejor técnicamente o mejor haciendo revisiones de código.

CashCow
fuente
2

Estaría dispuesto a apostar que si bien el equipo es aparentemente plano, ya hay un líder entre ellos, y todos ya lo saben.

Los organigramas rara vez reflejan cómo trabaja realmente la gente. Gráficos especialmente idealizados como "un equipo plano".

Dan Ray
fuente
2

Si su organización es plana, haga que todos sus desarrolladores pasen por la capacitación de Análisis de requisitos y soluciones (RSA) para que sigan un proceso formal. Luego puede asignar múltiples expertos en la materia (SME) a ​​un proyecto y obtener un proceso documentado para todas las soluciones.

Además, como usted mencionó que el gerente no es técnico, esa persona aún puede manejar el proceso RSA y facilitar la comunicación. También puede asignar una PYME en particular como líder proyecto por proyecto para ayudar en la facilitación y desarrollar sus habilidades individuales.

SpecTP
fuente
1

¿Por qué el equipo de desarrollo no vota anónimamente? Usaría la votación preferencial.

SnoopDougieDoug
fuente
1
  1. Puede seleccionar a alguien de su equipo para dirigir su equipo.
  2. Su jefe puede contratar a otra persona con experiencia para que tome esta posición.

PD: No creo que rotar sea una buena idea, la persona debe tener habilidad para comunicarse y tener una buena experiencia en la gestión de un equipo.

Hola 福气 鱼
fuente
1

Como sugiere su pregunta, todo el equipo es responsable de la toma de decisiones, le sugiero que pueda mantenerlo de la misma manera. Sin embargo, para comunicarse e informar a las autoridades externas al equipo, puede tener un Coordinador del equipo seleccionado dentro del equipo. Sus responsabilidades incluirían todo lo no técnico. Para todos los aspectos técnicos, el equipo debe sentarse y debatir de la misma manera que usted en este momento. Cualquier decisión que tome, se comunicaría al mundo exterior a través del Coordinador . Esta posición se puede rotar fácilmente en función del tiempo.

El otro enfoque puede ser tener un desarrollador líder basado en el nivel de experiencia> experiencia en el mismo proyecto> experiencia en la misma compañía. Y si es necesario, la posición puede rotarse fase a fase. Idealmente, cada fase de desarrollo tiene su propio conjunto de requisitos y entregables, que se pueden planificar y trabajar como un mini proyecto. Tener una ventaja diferente para cada fase minimizaría casi todos los impactos negativos de la rotación.

danés
fuente
1

En lugar de tener un desarrollador líder rotativo, tenga un líder rotativo de proyecto, alguien que tenga el mayor conocimiento y comprensión para lograr que x proyecto se complete.

El desarrollador principal suele ser una promoción y debe ganarse

Pero para ayudar a capacitar y desarrollar habilidades de liderazgo, rotar quién está a cargo de los diferentes proyectos y luego tener una medición clara de qué tan bien lo hicieron o no.

crosenblum
fuente
0

Debe haber un líder de equipo de la misma manera que hay un capitán en un barco suficientemente grande.

Si el gerente no cumple o no puede cumplir ese rol, se debe designar a uno de los desarrolladores para que lo cumpla.

usuario1249
fuente
0

Creo que primero debes darte cuenta de la suerte que tienes de tener el poder de tomar todas las decisiones técnicas dentro del equipo de desarrollo. ¿Cuántos equipos sufren la carga de una jerarquía de microgestión que les impone sus caprichos técnicos, a menudo resultando en elecciones inconsistentes, pesadillas de compatibilidad y frustración del desarrollador ...

En los beneficios de un líder de desarrollo que mencionas, algunos de ellos (orientación técnica organizada ...) ya deberían estar sucediendo si realmente hubiera una persona sobresaliente en términos de habilidades técnicas. Si este es el caso, no puedo ver cómo hacer oficialmente que esa persona sea un desarrollador líder daría mejores resultados que los que obtienes ahora. Si tal miembro del equipo no existe en su equipo, entonces no puedo ver cómo otorgar oficialmente la autoridad técnica a cualquier persona conduciría a mejores resultados que la discusión y la decisión colectiva.

Veo mucho más valor en establecer un líder organizacional, un coordinador como lo expresó el danés. No un gerente, no un jefe, sino alguien que organizaría el proceso de toma de decisiones colectivas y actuaría como portavoz del equipo, una interfaz con el exterior. Si sigue ese camino, rotar puede ser una buena idea para evitar los problemas mencionados anteriormente: diferencias salariales, celos ...

guillaume31
fuente
0

En algún momento, ser un líder es una responsabilidad más pesada que otra cosa. Alguien TIENE que asumir la responsabilidad de las elecciones, así es como funciona la sociedad cuando nadie más quiere hacerlo.

El hecho de que un equipo quiera rotar al líder puede significar que todos sienten que pueden asumir la responsabilidad de lo que hacen, y que no quieren favorecer a nadie, y parece ser algo bueno: no hay resentimientos, y Todos quieren que el equipo tenga éxito.

En esos casos, cuando hay que tomar decisiones difíciles, simplemente vote por esas decisiones y cuando necesite un representante para hablar con otras personas, simplemente elija a alguien que tenga las mejores habilidades de comunicación.

jokoon
fuente
-1

En primer lugar, creo que debes separar los roles. No hay razón para que la persona que actúa como el punto de contacto entre el equipo y el resto de la compañía deba necesariamente ser también la persona que toma las decisiones técnicas finales.

Actuar como punto de contacto no debería conferir ninguna autoridad, por lo que no debería ser necesario rotar esa responsabilidad en un horario fijo. Yo diría que el equipo se siente, todos dicen cuánto les importaría hacer el trabajo (a algunas personas les gustaría, otras podrían oponerse a hacerlo), y luego votar a alguien para que ocupe el puesto. Haz que se entienda que pueden entregárselo a alguien cada vez que se cansen de hacerlo.

En cuanto al lado técnico principal. Si todos tienen el mismo conjunto de habilidades y aproximadamente el mismo nivel de experiencia, entonces, claro, que todos intenten ser líderes. Lo importante es no cambiar absolutamente a mitad del proyecto. Espere hasta el comienzo de un nuevo proyecto y luego elija el líder que tenga más experiencia en esa área o al azar.

Cercerilla
fuente