He estado escuchando el podcast de Scott Hanselman y Rob Conery, This Developer's Life .
En el último episodio, discuten los rasgos de personalidad:
1.0.4 - Ser malo.
¿Qué hace que las personas sean malas en nuestra industria? ¿Qué hay de agresivo? ¿Confidente? ¿Cual es la diferencia? ¿Prefieres tener un sargento de instrucción para un jefe o un maestro zen? Hablamos con Cyra Richardson y Giles Bowkett.
Me hizo pensar, ¿qué rasgos tenían en común los mejores gerentes para los que has trabajado?
EDITAR: Solo para aclarar, ya que ha habido algunos votos cercanos, me interesa saber si hay rasgos comunes a los gerentes de desarrolladores que no son necesariamente los rasgos que requiere un gerente de alguna otra profesión.
En cuanto a si esto está relacionado con la programación o no, bueno, no quiero hacer esta pregunta en un sitio que no se trata de programación porque, francamente, no estoy tan interesado en qué personas que hacen latas de sopa para ganarse la vida quiero de sus gerentes ya que estoy interesado en lo que los desarrolladores quieren de sus gerentes.
fuente
Respuestas:
En mi experiencia, ha sido una combinación de lo siguiente:
fuente
Joel Spolsky lo llama la " Capa de abstracción ". Haz lo que sea necesario para mantenerme programando. Déjame saber qué está pasando en la empresa, pero mantenme fuera de la política Aunque todavía tengo que hacerlo, al menos reconozca que la solicitud es una tontería.
fuente
Alguien que pelee batallas políticas por mí y elimine los obstáculos que me impiden hacer las cosas.
Período.
fuente
Estar dispuesto a escuchar a las personas que trabajan para ellos.
He tenido gerentes muy inclinados técnicamente, y he tenido algunos que ni siquiera sabían acerca de la multitarea ("¡oh wow! ¿Dónde aprendiste ese truco de Alt-Tab?"), Pero la cosa es que todos Realmente disfruté trabajar porque tenía en común que sabían que no sabían todo y estaban dispuestos a escuchar cuando aquellos de nosotros que realmente estábamos haciendo el trabajo que se suponía que estábamos manejando presentaban ideas, problemas o sugerencias sobre ese trabajo.
fuente
Protege a su equipo y asume sus responsabilidades.
Uno en su equipo bloquea un servidor con datos de producción. Su gerente asumirá toda la responsabilidad. Eventualmente se negará a decirle a su gerente superior quién cometió el error y se parará frente a sus hombres.
fuente
Se gestionan en función de los objetivos, no del tiempo, y se preocupan principalmente de que yo logre esos objetivos
En lugar de preocuparse por cuánto tiempo estoy sentado en mi escritorio, les preocupa lo que necesito para realizar una tarea determinada. Si esto significa eliminar obstáculos u obstáculos, o permitirme trabajar largas horas / fines de semana, están dispuestos a cambiar el tiempo. Si hago el trabajo antes de lo programado y necesito algo de tiempo para citas médicas o actividades familiares, son flexibles y comprensivos.
Ciertamente quiero ser responsable en el trabajo, pero debería ser por lo que logro, no por el tiempo que paso en mi escritorio.
fuente
Manténgame alejado de las reuniones en las que no necesito participar. Si los gerentes pudieran hacer esto, serían infinitamente más valiosos.
fuente
Reconocimiento de que me contratan y me pagan para tomar decisiones.
fuente
Te apoyan cuando dices NO
Uno de los rasgos más desmotivadores en un gerente es la falta de coraje para defender a su gente y siempre inclinarse ante su propio jefe, incluso si eso significa afectar el producto o el equipo.
fuente
sin gritos por favor ... simplemente no lo hagas. (No importa cuán estresado esté por el gran plazo, los probadores estúpidos, etc.)
fuente
Alguien que simplemente me deja hacer mi trabajo.
fuente
Comprender en qué consiste la programación. Te sorprendería saber cuántos gerentes no saben nada sobre el asunto.
fuente
Reconocimiento de que me contratan y me pagan para tomar decisiones.
No soy un empleado de servicio de alimentos de $ 7 / hora. Estoy aquí para tomar decisiones. Si me dicen todos los detalles de qué hacer, bien podría ser mecanógrafa.
fuente
(Profundo) Habilidad Empatía .
fuente
Tengo que ir a esto desde la perspectiva de los peores jefes para los que he trabajado; uno bueno NO tendría estas cualidades:
Incapacidad para tomar una decisión _ enfrentar lo peor con lo que he tratado fue un jefe que cambia de opinión cada vez que alguien habla con él. Cambiamos de dirección 4-5 veces al día en un proyecto de tres años.
Roba el crédito por las cosas que hacen los miembros del equipo. Una vez que mi jefe recibió un gran premio que dieron públicamente. Todo lo que mencionaron que hizo, en realidad lo hice. No hace falta decir que esto es desmotivante en extremo.
Pánico cuando las cosas no van bien. Peor aún cuando el pánico lo hace desagradable. Eso no ayuda a hacer las cosas, de verdad.
Apuñala a su propia gente. Él recibe el crédito, nosotros tenemos la culpa. Yd no nos apoya en la cadena de mando cuando debería.
No comprende el proceso de desarrollo de software y ni siquiera le importa aprender lo suficiente como para saber que estamos usando C # (u otro lenguaje de su elección). Piensa que todo se puede hacer en un corto período de tiempo y que un simple cambio en el exterior de una página User_interface significa que no llevará mucho tiempo implementarlo. El tipo de persona que se sienta en un cambio hasta el día antes de la fecha límite y luego dice: "Oh, por cierto, tenemos que hacer ..." y lo que pide es algo que cambie la arquitectura fundamental.
Micromanjes o no se las arregla en absoluto. Ambos son igualmente malos. He tenido demasiados jefes que no sabían que había un problema con un empleado hasta demasiado tarde y todos los demás tuvieron que pagar el precio para arreglar el desastre. También tuve jefes a los que tuve que decirles que dejaran de molestarme cada cinco minutos o de lo contrario nunca se haría.
Es políticamente ingenuo. Si a tu jefe no le está yendo bien políticamente con las personas que están por encima de él, tendrás problemas para conseguir las personas que necesitas, tendrás los peores espacios y estarás en el grupo con mayor probabilidad de perder tu trabajo en un despido o porque es Una manera fácil de deshacerse de él. Los jefes deben ser buenos en la política de la oficina.
Alguien que piense que puede reducir las horas de un proyecto a la mitad (porque al cliente no le gustará ese número) y podremos hacerlo en esa cantidad de tiempo sin el correspondiente cambio de requisitos.
fuente
Crédito donde se debe y suficiente conocimiento para poder asignarlo
Hubiera agregado escuchas bien pero en su lugar había votado a favor.
fuente
Confían en su gente para hacer el trabajo y no tratan de "pastorear gatos".
Déle a su gente espacio para cometer errores (obviamente, no grandes) y aprender de ellos.
fuente
Alguien que escucha bien
y
Alguien que se esfuerza por hablar conmigo al menos semanalmente
fuente
He tenido buenos gerentes y malos. Estos son algunos rasgos que he notado en los malos gerentes:
Sal del camino para que puedas hacer tu trabajo
Un buen administrador se asegurará de que tenga el equipo adecuado para escribir el código.
Micro gestiona los detalles incorrectos
Este tipo de gerente lo molestará por no poder adjuntar una firma a su correo electrónico mientras ignora el trabajo adicional que realizó antes de ese correo electrónico.
No tiene interés en el proceso de desarrollo.
Esto es realmente una mala señal para un gerente a cargo de los desarrolladores de software. No le importa investigar otros enfoques de desarrollo, no sabrá qué número de versión debería ser la próxima versión del software, no leerá blogs como Joel on Software ni nada relacionado con la gestión de desarrolladores, como Peopleware.
Piensa que él está allí para que yo le informe
Este tipo de gerente consigue que la gente le informe sobre todo.
Asigna mal el tiempo
Dado un mes para entregar un proyecto de desarrollo desde el comienzo hasta la finalización, este gerente asignará 3/4 del mes al equipo de diseño y requisitos para generar 1000 documentos de línea de palabras y esperar que el equipo de desarrollo lo implemente todo en una semana. También repetirá los requisitos hasta que sean 'perfectos', agregando grandes cantidades de detalles hasta que el documento quede inutilizable. Pero luego, en el proceso de desarrollo, encontrará errores en la documentación de diseño y requisitos y se dará cuenta de que el énfasis en tratar de escribir el documento perfecto fue un error.
fuente
Creo que las dos características más importantes son una comprensión básica de los principios de gestión y ser "uno de nosotros". Desafortunadamente, los dos no tienden a ocurrir juntos con demasiada frecuencia, pero cuando lo hacen, has encontrado una buena persona para trabajar.
Donde trabajo, nuestro gerente de proyecto es un ex desarrollador. Es bueno para priorizar y dirigir el trabajo, las cosas que un gerente necesita saber, pero también tiene una muy buena idea de lo que está sucediendo cuando necesito hacer una pregunta sobre cómo implementar algo que requiere tanto de él como de la gerencia. y aportes técnicos de mi parte.
El jefe también tiene estos dos conjuntos de habilidades. En realidad, es un desarrollador actual , que ocasionalmente trabaja en la base de código y se compromete, cuando otras responsabilidades no lo alejan de él. Se asegura de que tengamos un buen ambiente de trabajo, porque sabe intuitivamente cómo es un buen ambiente de trabajo para nosotros: ¡son las condiciones en las que él querría trabajar!
fuente
Lucha por mi. No debería tener que entrar en ello con TI. Me da las herramientas que necesito. Comunica la política de la empresa hacia abajo. Toma decisiones cuando se le pide y se queda fuera cuando no.
Descargo de responsabilidad: anteriormente he estado en roles gerenciales, pero actualmente no lo estoy. A partir de eso, definitivamente puedo decir que también puede ser bastante difícil estar del otro lado de la mesa.
fuente
Alguien que es claro en lo que hay que hacer, me permite resolver los detalles técnicos, proporciona contexto cuando es necesario y no cambia los requisitos cuando estoy a más de la mitad.
fuente
Dos cosas:
El punto 1 le dará, como desarrollador, un gerente que realmente comprende cuál es su trabajo y en qué consiste, y comprende lo que necesita (y tampoco necesita) para hacer su trabajo lo mejor que pueda. Si no son un desarrollador ahora (y realmente no deberían ser un desarrollador práctico ahora ya que son un administrador, y ese es un trabajo de tiempo completo en sí), deberían tener experiencia previa en desarrollo, pero eso debería ser bastante recientemente (es decir, en los últimos años) para que al menos estén familiarizados con los lenguajes, herramientas, métodos y técnicas de desarrollo modernos.
El punto 2 le dará un gerente que acepta sus responsabilidades, protege a su equipo de la política de la oficina y las distracciones innecesarias y peleas para que su equipo reciba las cosas que necesita (permitiendo así el punto 1) y puede manejar las expectativas del negocio y de aquellos por encima de él (Esto es aún más importante en una gran corporación donde existen muchos niveles y niveles de administración entre usted (el desarrollador) y los tomadores de decisiones comerciales (alta gerencia)).
En pocas palabras, tener un rasgo (1) te da un gerente que comprende lo que necesitas para hacer tu trabajo, y tener un rasgo (2) te da un gerente que te proporcionará lo que necesitas.
La charla de Joel Spolsky en Yale (y el artículo relacionado " Command and Conquer and the Herd Of Coconuts ") lo pone de manera muy sucinta:
Al hablar sobre la (mala) gestión en Juno:
Al hablar sobre la administración (generalmente buena) en Microsoft:
fuente
Quiero a alguien que sea capaz (y tenga el coraje de) de reconocer y deshacerse de la madera muerta. Estas personas están dañando el producto y ralentizando la finalización, ¡sácalos de mi camino! Demasiados gerentes no pueden reconocer quién es un mal desarrollador (o piensan que el que tiene el escritorio desordenado es malo o el tipo que parece estar comenzando mucho en el espacio a pesar de que en realidad puede ser el desarrollador más inteligente o más productivo) o no quiere tener que ser quien le diga a alguien que lo están dejando ir y así dejar que la madera muerta permanezca año tras año causando daño y descontento entre los competentes.
No quiero sentirme avergonzado por un gerente que ni siquiera sabe qué idiomas o backend de la base de datos u otras herramientas críticas que utilizamos. Tuve una pregunta (en frente del cliente) en qué idioma programamos después de estar involucrados en el proyecto durante 3 años. No espero que las personas que han estado en la administración durante mucho tiempo sigan actualizadas sobre cómo hacerlo, pero al menos deberían saber qué estamos usando. Y deberían ser lo suficientemente inteligentes como para no preguntar cosas así frente a otros si no lo hacen.
Quiero un gerente que tenga coraje. No acepte ese plazo irreal sin retroceder, no permita que las personas intimiden a sus empleados o deje que los desarrolladores de rouge sigan su camino sin ser cortados. No dejes de decirme si estoy haciendo algo mal porque temes que pueda molestarme. Los gerentes existen en parte para manejar las malas noticias, quiero uno que pueda.
Quiero un gerente que entienda que tengo una vida hogareña, que entienda que los desarrolladores exhaustos cometen errores y que lleva más tiempo hacer un proyecto que funcione 60 horas a la semana que 40.
Sobre todo, quiero un gerente que reconozca el buen trabajo y que me agradezca verbalmente tanto en persona como en la cadena a sus jefes. ¡Aunque realmente odio cuando piensan que el mal trabajo es un buen trabajo y recompensan a las personas equivocadas!
fuente
La amistad sería algo que pondría allí. No me gusta sentir temor si mi jefe decide visitar mi cubículo cada vez . Mi desempeño puede ser un poco mejor si siento que estoy ayudando a un amigo que pide un favor aquí y allá a veces, por ejemplo, para que un proyecto se realice en una fecha límite, es posible que tenga que permanecer en la oficina durante algún tiempo horas que de otra manera no quisiera hacer.
La competencia en la gestión de varias cosas sería otro aspecto que buscaría, aunque esto puede verse como un rasgo obvio en cierta medida. Las habilidades de resolución de conflictos y reconciliación también serían algo que me gustaría saber que mi gerente puede manejar, ya que puede haber ocasiones en que sea desarrollador contra desarrollador o desarrollador contra analista en términos de problemas que requieren que alguien tenga la razón, lo que puede ser en algunos casos, ya que algunos aspectos del trabajo pueden tener múltiples interpretaciones.
fuente
Alguien que entiende que el desarrollo no es trabajo de fábrica. No es probable que dedicar más horas al día obtenga un rendimiento significativamente mayor. Los programadores necesitan levantar la nariz de la muela con bastante frecuencia y simplemente no pensar en lo que están trabajando para resolver un problema y hacer las cosas.
fuente
Un buen gerente está dispuesto a dejarme decir que no . Se dan cuenta de que el desarrollo de software es un problema perverso . Por lo tanto, incluso si el gerente es más competitivo que yo técnicamente, se dan cuenta de que podría conocer mejor el problema simplemente porque soy yo quien está implementando la solución. Al mismo tiempo, me avisan cuando me falta el contexto. Muchas veces, los gerentes pueden tomar decisiones basadas en cosas que saben que yo no. Si ese es el caso, entonces deberían me llenan en los detalles o por lo menos me dejaron sé que ellos saben algo que yo no.
fuente
He trabajado en algunos lugares donde la administración era explícitamente no técnica. Mi empleador actual tiene una política de que un gerente que toma una decisión técnica es motivo de remoción. (Esta no es una pequeña empresa de la que nunca haya oído hablar, aproximadamente un tercio de ustedes está ejecutando nuestro producto). En parte como resultado de esta política, al menos en mi opinión, los gerentes aquí son mucho más "fuertes" que en otros empleadores. Dado que no están involucrados en la toma de decisiones técnicas, no hay una cadena constante de decisiones técnicas 'levemente muy erróneas' que toma la gerencia, y solo toman grandes decisiones de "nivel de línea de productos".
Los mejores gerentes que he tenido son aquellos que 'interfieren' para los desarrolladores. Un buen gerente puede notar la diferencia entre una 'reunión obligatoria' y una reunión obligatoria, y se lo hará saber.
Una habilidad de gestión básica es hacer que los desarrolladores se sientan en control de su entorno, esto puede ser un recordatorio o una ilusión, dependiendo de la empresa, pero es una habilidad de vital importancia.
fuente