Administrar otros programadores mientras usted mismo forma parte de la fuerza de trabajo de programación.
Es un esquema muy común, al menos en las empresas para las que trabajé.
¿Puedes ser un buen programador o un buen gerente si haces ambas cosas al mismo tiempo?
Estoy cuestionando la efectividad de un individuo que tiene que estar en dos roles muy diferentes, que requieren habilidades, ambiente, concentración, organización, etc. muy diferentes.
ACTUALIZACIÓN : mi pregunta incluye la gestión de la empresa (que es mi caso), no específicamente la gestión del equipo. Pero estoy interesado en ambos, por supuesto.
Respuestas:
Depende de la cantidad y el tipo de programación que debe realizar y la cantidad y el tipo de tareas de gestión que debe realizar.
Ser gerente significa muchas interrupciones, cambios de táctica y cosas como reuniones, etc.
Si su programación está "limitada" a pequeñas piezas de trabajo no urgente, entonces puede adaptarlas a sus tareas gerenciales. Si necesita gastar cantidades significativas de tiempo de "calidad" en una tarea de programación, entonces no obtendrá ese tiempo debido a sus responsabilidades de gestión.
Si su equipo es grande y / o complejo, entonces necesitará pasar más tiempo administrando que si fuera un pequeño equipo dedicado a uno o dos productos / proyectos. Descubrirá que simplemente no tiene tiempo para realizar una programación significativa, incluso en tareas pequeñas.
En un trabajo anterior tuve este rol y funcionó para mí porque mantuve mis tareas de programación pequeñas. En realidad funcionó para nuestra ventaja.
En primer lugar, podría evaluar todas las solicitudes que llegaron y, si eran pequeñas, agregarlas a mi lista (que siempre fue corta) o volver al cliente (en este caso, otro gerente) con un calendario más preciso para cuando el trabajo ser hecho
En segundo lugar, significaba que a los desarrolladores del equipo no se les quitaba constantemente su trabajo actual para corregir errores menores o hacer pequeñas mejoras.
En tercer lugar, los clientes estaban contentos ya que sus problemas urgentes se resolvieron con bastante rapidez.
Me mantuvo en contacto con la base del código para poder tener conversaciones significativas con mi equipo sobre problemas y con mis gerentes y clientes sobre plazos sin tener que involucrar al equipo todo el tiempo.
fuente
Fui parte de un equipo de desarrolladores donde un programador también era nuestro gerente. Esto condujo a un colapso total de cualquier cosa que se asemeje a la productividad. En resumen, todas las decisiones fueron tomadas por ese tipo + él era un micro gerente completo. Cualquier idea y sugerencia con la que no estaba de acuerdo fue rechazada o ignorada. Esto eventualmente mató toda creatividad y motivación.
Entonces, creo que es una mala idea tener a alguien en el equipo de desarrollo en una posición "más alta". En mi caso, el tipo era un gerente de comando y control, pero incluso un gran gerente influirá (involuntariamente) en los otros desarrolladores, lo que eventualmente conduce a un menor rendimiento. Al menos del equipo le está informando.
fuente
Sí
, he visto algunos gerentes que eran programadores y gerentes al mismo tiempo, créanme que trabajar con estos muchachos fue maravilloso.
Ser gerente y programador no solo permite a los gerentes liderar desde el frente, sino que también motiva a los subordinados a dar lo mejor de sí mismos.
La mayoría de los empleados se quejan de sus gerentes porque los gerentes no valen nada, pero el gerente que no solo administra sino que también escribe código siempre ofrece los mejores resultados.
Los dos gerentes que he mencionado, la programación era su pasión que no solo ayudó a otros, sino que también produjo una aplicación casi libre de errores.
fuente
He sido gerente de proyectos de programación durante años, con diferentes empresas, proyectos y equipos.
La gestión de proyectos y la programación son tipos de trabajos / roles tan diferentes, que diría que no se pueden hacer las dos cosas al mismo tiempo a un nivel "excelente". Es un compromiso: maestro de ninguno, jack de todos los oficios, tipo de cosas.
Para mí, el mayor dolor es el cambio de contexto entre el modo administrador y programador. Parecen comprometer diferentes partes del cerebro (o algo). Un día programando, un día manejando puedo hacerlo bien, pero cambiar entre esos roles constantemente es difícil.
fuente
He visto ambos escenarios. Los gestores de desarrollo realizan {algún porcentaje de su tiempo} de codificación, y un gestor de desarrollo, sin codificación en absoluto.
El problema es que cuanto más alto sea el personal, más probabilidades tendrá de que le paguen más, y la única forma de conseguirlo en muchos lugares es pasar a la administración. (No todo, por supuesto, pero muchos lugares). Por lo tanto, esto puede llevar a personas que realmente no están preparadas para ser gerentes a quedarse atrapadas en esa situación.
(Por supuesto, hay empresas en las que puede avanzar a través de Dev, Dev Lead, diferente del Dev Manager, por supuesto, a puestos como Arquitecto, etc.)
Lo más probable es que, al ser un técnico, puede ser inútil en la gestión de personas, y eso lo lleva más lejos del código. ¡Así que te conviertes en un mal administrador, y estás haciendo menos de lo que disfrutas, y presumiblemente te has desarrollado!
Para mí, para ser un gerente, realmente debería estar al margen de la codificación, pero mantenerse absolutamente actualizado con la tecnología para que al menos pueda hablar de los problemas de manera coherente.
Como sucede, comencé a trabajar independientemente por esta razón exacta. No me interesa la gestión de personas, y creo que no sería particularmente bueno en eso, además no llegaría a codificar tanto.
fuente
Se puede hacer, pero está lleno de trampas. El tamaño del grupo y el nivel de interrupción juegan un papel importante, pero el riesgo más significativo es que el gerente también sea el líder técnico. Demasiada opinión dura cuando no hay suficiente tiempo / esfuerzo para justificar la opinión puede llevar a algunas malas decisiones. Y, el debate sobre la dirección no es un campo de juego muy nivelado entre un gerente y el resto del equipo.
Para aquellos que estén considerando este camino, algunos consejos:
Salga del rol de arquitectura e identifique los clientes potenciales en su grupo.
No trabaje en los elementos críticos de la ruta. Solucione errores, trabaje en prototipos u otros elementos que puedan descartarse rápidamente cuando su jefe encuentre mucho más 'cosas importantes' para distraerlo.
Eleve su nivel de atención y enfoque en la eficiencia general, defendiendo y promoviendo el equipo, el proceso, la moral y otros aspectos necesarios para tener un equipo exitoso. Es probable que su objetivo sea mucho más que un simple proyecto exitoso (independientemente de lo que pueda decir su jefe, PM u otro).
Ayude a su equipo a crecer: sea más independiente, autoorganizado, experto técnico, mayor nivel de conciencia
En muchos sentidos, eres el o un puente entre el equipo y el mundo exterior. Una parte importante de su enfoque debe estar fuera del equipo.
Para responder la pregunta, sí, se puede hacer. No, no es fácil y demasiados gerentes nuevos del lado técnico de la casa, que pueden haber sido excelentes líderes, no pueden hacer la transición al trabajo de un gerente exitoso.
fuente
Un buen gerente puede ser, sí. Mientras permanezca firme y coherente, generalmente no hay problema.
Si se les dice a los empleados que traten problemas con sus compañeros de equipo con su gerente ... y el gerente también es un compañero de equipo, puede ponerse difícil. Es esencial ver todos los comentarios de manera objetiva y darse cuenta de que puede estar equivocado de vez en cuando. También debe proporcionar algún tipo de medio anónimo para comentarios.
Es extremadamente común (como dijiste) ver esto en empresas nuevas.
fuente
Creo que no.
Ambos trabajos requieren mucho enfoque, energía y dedicación. Es muy difícil realizar ambas cosas al mismo tiempo. Cuando tuve que asumir algunas responsabilidades de liderazgo del equipo, la cantidad de tiempo que pasé en la programación (y, en consecuencia, la cantidad de trabajo relacionado con la programación realizado por mí) se redujo.
Conozco a otro colega que asumió el rol directivo de un líder de equipo y dejó de codificar por completo en un mes (aunque intentó hacer ambas cosas).
También conozco a un arquitecto al que se le pidió que se convirtiera en gerente. También dejó de codificar dentro de un mes después de asumir responsabilidades administrativas. El mismo arquitecto después de 8 meses tuvo que volver a la codificación debido a problemas críticos de campo. Contribuyó significativamente en la corrección de errores, pero dentro de un mes, tuvieron que encontrar un gerente de reemplazo para asumir sus responsabilidades administrativas.
En mi experiencia limitada, no he encontrado a nadie que administre otros programadores y códigos como un programador completo.
fuente
En mi opinión, aunque es posible en la mayoría de los escenarios, no es un buen arreglo. Existen numerosos artículos sobre cómo las personas que son competentes como desarrolladores se notan y se les asigna un rol de gestión de equipo, aunque este no es su conjunto de habilidades específicas o incluso una posición deseada. Luchan por mantenerse enfocados en la "gestión" porque ven el "trabajo" como realizar la programación, no crear informes e ir a reuniones.
Spolsky escribió en su artículo sobre la Capa de abstracción del desarrollador lo siguiente:
"Con una compañía de software, la primera prioridad de la administración debe ser crear esa abstracción para los programadores".
En el artículo, (obstinado pero bien razonado, creo), el papel del administrador no se trata de entrar en el código o el desarrollo del software, sino de crear un entorno en el que quienes lo producen puedan centrarse por completo en él.
fuente
Mi antiguo jefe lo intentó. Hubo demasiadas interrupciones de su papel de gestión.
Sigue siendo uno de los mejores desarrolladores que conozco.
fuente
Absolutamente puedes, pero eso no significa que sea fácil. Se necesita cierto tipo de persona para ser un buen desarrollador, se requiere cierto tipo de persona para ser un buen gerente y un cierto tipo de persona para ser ambos. Si puede encontrar a esa persona (o es esa persona), hay ventajas definitivas. Los gerentes de programadores de primer o segundo nivel necesitan comprender realmente lo que su gente hace y encuentra todos los días. Difícil de hacer si no fue un desarrollador y difícil mantenerse en contacto / actualizado sin continuar desarrollándose.
El mejor gerente que he tenido (he estado en el negocio ~ 25 años), fue un desarrollador activo, mi gerente y medio propietario de la empresa (alrededor de 40 emps). Era especial pero claramente tuvo éxito en esta pregunta.
fuente
¡POR SEGURO NO!
Puedes intentarlo, pero terminarás manejando más que nada. El problema es que no puede codificar cuando las personas lo llaman cada 5 minutos o cuando intentan hacer reuniones de "estado" cada hora. Es ridículo ... Lo estoy haciendo ahora, por eso me topé con este hilo.
Aunque un gerente de una empresa tecnológica DEBERÍA ... no ... DEBE saber cómo codificar. Simplemente no podrá estimar o comprender los problemas del cliente. La codificación y la gestión son dos tipos de personas. Un lado son geeks y torpes con la gente (enfréntalo, geeks ya sabes de lo que estoy hablando), y el otro es bueno con la gente. Debes elegir un lado. No llegarás a ningún lado con la codificación si haces ambas cosas. Si le encanta la codificación y puede hacerlo las 24 horas del día, los 7 días de la semana si su esposa no se interpuso en su camino, ALÉJESE DE LA ADMINISTRACIÓN. Incluso tome un recorte salarial si es necesario. Estoy a punto de hacer esto, pero no creo que a los jefes les guste esto porque les hago la vida más fácil haciendo la parte de administración. Tendré que volver al trabajo independiente si no están de acuerdo porque la felicidad y hacer lo que amas es mucho más importante que el dinero y las ilusiones que compra.
Mis mejores deseos con tu esfuerzo y por favor sigue enviando estas publicaciones. Ustedes chicos son geniales
Lea la sección "Falta de una trayectoria profesional centrada en la programación" en este sitio. Bastante bueno y muy relevante: http://c2.com/cgi/wiki?ProgrammingIsNotFun
fuente
Es posible que una persona tenga un buen gerente y buenas habilidades de programación, aunque me viene a la mente el dicho "un gato de todos es un maestro de ninguno" ...
Sin embargo, combinar ambas funciones al mismo tiempo me parece propenso a hacer ambos trabajos solo a la mitad. Depende de la cantidad de gestión que deba hacerse, pero inevitablemente está haciendo malabarismos con dos tareas de una naturaleza completamente diferente, y el cambio de enfoque que esto exige es bastante grande. Noto por mí mismo que realizo bastante menos en la sección de codificación cuando tengo algunas tareas de administración que hacer también (en mi caso, administrar los cursos y escribir informes).
Otro escollo es que estás administrando un grupo, pero también eres una parte directamente involucrada. A veces eso vale la pena, a veces eso puede causar grandes problemas. Si otros programadores no están de acuerdo con su trabajo, el hecho de que usted sea el administrador puede evitar que estén completamente abiertos.
Por otra parte, cuando está codificando en el mismo proyecto que está administrando, se siente un poco más con el código en sí, por lo que en ese caso el bit de programación realmente puede ayudar al bit de administración. Todo depende de lo que tiene que administrar, cuánto tiempo exige y cuánto se mantiene relacionado con el código en el que está trabajando.
Así que supongo que no hay una respuesta clara, pero tiendo a evitar mezclarme demasiado. Mis 2 centavos
fuente
bueno, he leído que los gerentes de proyectos de software definitivamente deberían ser codificadores.
Creo que un gerente es un gerente por una razón: para administrar. Tomaría esto como una regla general ... algunos pueden ser un arma de doble filo.
fuente
Conozco un caso donde funciona. El hombre es un adicto al trabajo, por lo que trabaja a tiempo completo como gerente y casi a tiempo completo como programador.
Considerando las horas normales de trabajo, no creo que una doble función sea una buena idea. Un programador gerente (o gerente de programación) siempre está tentado a hacer gran parte de la programación solo, en lugar de obligar a sus programadores a hacerlo. Siempre existe esta excusa "lleva más tiempo explicar que hacer", pero a la larga, el 50% del trabajo del programador que hace falta en la parte de gestión, por lo que otros programadores son menos eficientes.
fuente