¿Cómo saben los gerentes si una persona es buena o mala programadora?

49

En la mayoría de las empresas que hacen equipos de programación, las divisiones consisten en programadores que diseñan y escriben códigos y gerentes que ... bueno, hacen las tareas de administración. Además de simplemente no escribir código, los gerentes generalmente ni siquiera miran el código que desarrolla el equipo, e incluso pueden no tener un IDE adecuado instalado en sus máquinas de trabajo.

Aún así, los gerentes deben juzgar si una persona trabaja bien, si él o ella debe ser puesto a cargo de algo, o si un desarrollador en particular debe ser asignado a una tarea de la mayor importancia y responsabilidad. Y por último, pero no menos importante: ¡los gerentes generalmente asignan los bonos trimestrales!

Para hacer lo anterior de manera efectiva, un gerente debe saber si una persona es un buen programador, entre otros rasgos, por supuesto. La pregunta es, ¿cómo lo hacen? Ni siquiera miran el código que escriben las personas, no pueden evaluar directamente la calidad de los componentes que desarrollan los programadores ... pero sus estimaciones de quién es un buen codificador y quién "no es tan bueno" son correctas en ¡mayoria de los casos!

¿Cuál es el secreto?

P Shved
fuente
24
Gran pregunta La mayoría de los gerentes para los que he trabajado ven a los peores desarrolladores (código y diseño realmente malos) como los mejores del equipo porque siempre entregan a tiempo. Luego son otros en los equipos los que barren y mantienen tras ellos. Los gerentes deben leer el código de vez en cuando ...
Martin Blore
18
Tenga en cuenta que lo que hace que un "buen programador" para los programadores no sea lo mismo que lo que hace un "buen programador" para un gerente.
GrandmasterB
11
La mayoría de las veces no lo hacen.
biziclop
1
Parece la respuesta de ¿Cómo deberían saber los gerentes si una persona es buena o mala programadora?
Jigar Joshi
2
Es por eso que siempre afirmo que un gerente de desarrollo de software debería ser un programador, o más bien haber sido un programador. Su trabajo ahora es administrar, pero para poder administrar de manera efectiva, necesitan entender lo que están administrando. Solo pueden hacer esto realmente bien si han sido programadores ellos mismos en un pasado no muy lejano (y continúan manteniéndose al menos familiarizados con las nuevas tecnologías en el desarrollo de software).
CraigTP

Respuestas:

31

Por lo general, un gerente observará

  • ¿El programador hace cosas?
  • ¿Qué piensan sus colegas de ellos? ¿El código que escriben?
  • ¿El programador se comunica claramente con el gerente?
  • ¿El programador disfruta aprendiendo cosas nuevas? ¿Mentorizan bien a otros?
  • ¿Necesitan mucha atención de la gerencia para hacer las cosas?
  • ¿Parece que el programador disfruta de su trabajo?

Es cierto que generalmente no ven (o a menudo entienden) el código de los empleados, pero lo anterior para ellos sirve como un proxy razonable para medir qué tan bien un empleado encaja en la función de programación que les impone su empleador. Si alguien no está haciendo las cosas, obtiene bajas calificaciones de sus colegas, no puede comunicarse bien, se frustra con la tecnología diferente a la que está acostumbrado, siempre necesita supervisión y siempre es infeliz, es una buena indicación de que no No encaja bien con este trabajo. *

* Puede ser, sin embargo, que en un contexto y entorno diferente serían muy felices y entusiastas. Tal vez es solo ese tipo de programador al que se opusieron, y podrían hacerlo muy bien programando en un contexto diferente. "Programador" puede significar trabajos muy diferentes en diferentes lugares. Pero el gerente se preocupa principalmente por su papel de "programador" y qué tan bien encaja un empleado.

Doug T.
fuente
Creo que el más importante de estos temas es ¿El programador hace las cosas? - Solo lo completo agregando ¿El programador hace las cosas en el horario ?
Herberth Amaral
2
Salvedad pequeña en cuanto a "comunica claramente con el gerente": depende más de si el administrador cree que entiende o no que en si él realmente entiende o no; Es por eso que debe verificar al final lo que entendió porque a pesar de su actitud positiva, puede haber entendido algo completamente diferente.
wildpeaks
44
Herberth: "Hacer las cosas" (a tiempo o no) no es necesariamente suficiente, ya que los otros miembros del equipo podrían estar recogiendo su holgura.
Cercerilla
2
Y "hacer las cosas" sin muchos errores también es importante. En otras palabras, ¿siempre están regresando y arreglando cosas, o una vez que se hace algo, se hace?
thursdaysgeek
23

No estoy de acuerdo con la afirmación de que los gerentes no miran el código. Cuando he gestionado equipos, he visto algunos de los resultados de cada ingeniero, y uno importante es el código. Pero no el único: correos electrónicos, documentos de diseño, documentos técnicos, todo tiene en cuenta.

Pero definitivamente ese no es el único factor. Si un tipo está sentado en una esquina y escribe un código brillante pero es una bestia con quien hablar, no responderá preguntas, no compartirá el estado y no se comprometerá cuando surjan problemas de desarrollo; no estoy tan seguro de que sea un activo para el equipo. Especialmente comparado con un tipo que escribe código moderadamente decente pero puede hacer todo lo anterior.

Aquí hay algunas cosas que miro cuando estoy en condiciones de dar recompensas, pero con la gran advertencia de que es absolutamente una reacción intestinal, porque nada de esto se puede cuantificar:

  • Estado : ¿es claro, preciso y oportuno? Cuando se discute, ¿la persona está al tanto del estado o está un poco borrosa sobre los problemas actuales? ¿Tiene la persona el juicio correcto para levantar una bandera roja cuando algo se incendió?
  • Resolución de problemas : tanto preguntar como responder es importante. ¿La persona sabe cuándo pedir ayuda o dónde hacen girar sus ruedas indefinidamente? Mejor aún, cuando otros tienen problemas, ¿la persona ayuda a encontrar la solución o se vuelve parte del problema? Incluso tener el buen sentido de retroceder cuando el problema no está en su área de especialización vale algunos puntos. También hay puntos para ir fuera del grupo o la empresa, e ir a sitios como este u otras respuestas de Internet.
  • Atención al proceso , por lo general esto es bastante obvio, incluso en una empresa que no es retentiva anal, si alguien está rompiendo el sistema, se ve en el caos que dejan atrás. Si otras personas están limpiando las características de otra persona porque no se adhirieron a la orientación o la arquitectura, entonces tenemos un problema. Los puntos de bonificación a los que van averiguar maneras de hacer que la consistencia y la calidad más fácil .
  • Tasas de finalización versus errores versus complejidad : haga las cosas, pero hágalo bien. Todos tienen algunos errores, pero si el chico hace las cosas rápido y con errores, tenemos un problema. En general, considero que esto no es algo que pueda evaluar en el sentido diario: tiene que estar mirando hacia atrás a un lanzamiento, una fase o un trimestre fiscal.

Y el aporte de otras personas. Con frecuencia he estado en una posición en la que varios ingenieros estaban a cargo de varias partes del proyecto. A veces, los líderes de equipo y, a veces, solo los propietarios de una parte particular de la producción (como "el tipo de construcción"). A la gente le ENCANTA hablar de los extremos: los actos de heroísmo o la frustración de los niños problemáticos. Por lo general, en el acto de hacer un seguimiento práctico de esos problemas, descubro mucho sobre AMBAS partes.

También hay un factor con respecto a la gestión de humanos . Ningún ingeniero es exactamente como cualquier otro. Entonces no todos brillan en la misma luz. Uno escribe un código brillante libre de errores, pero otro ayuda a resolver problemas transversales que rompen el código de todos. Uno es genial en persona, uno es mejor en escritura. Uno es incoherente a las 9:00 a.m., uno está fuera de aquí a las 3:00 p.m. Hay una cierta necesidad de dar un paso atrás, descubrir qué es lo más beneficioso para el equipo y cuál podría ser un factor de parcialidad personal (como el deseo de matar a ese astillador a las 4:00 AM, solo porque no puedo funcionar hasta las 11: 00 a.m.).

bethlakshmi
fuente
2
Parece la respuesta de ¿Cómo deberían saber los gerentes si una persona es buena o mala programadora?
Jigar Joshi
En mi experiencia en las organizaciones en las que he trabajado, los gerentes lamentablemente no tienen el ancho de banda para mirar cada código de desarrollador.
Doug T.
@Jigar Joshi, no sé cómo lo hace cada gerente, esto es lo que hice cuando me pidieron que hiciera revisiones de desempeño o recomendaciones.
bethlakshmi
@pythagras: mi contrapregunta sería "¿qué gerente?" Un gerente de 40 personas, no, por supuesto que no. Un gerente de 10 personas, probablemente no lo mataría por escabullirse en 1 hora por persona escaneando código en áreas críticas conocidas. 1 hora por cada 10 empleados durante 6 meses parece fácilmente factible.
bethlakshmi
12

Esto varía mucho dependiendo de la experiencia técnica del gerente.

  • En su mayor parte, probablemente te estén juzgando por cómo te comunicas . Cómo te comunicas con el gerente y cómo te ven comunicándote con tus colegas.
  • Si tiene la suerte de tener un desarrollador principal que esté más cerca del administrador, el gerente puede buscar aportes del desarrollador principal.
  • Tenga en cuenta que la responsabilidad principal del gerente es hacer las cosas . Necesita ver producir varios resultados y objetivos para cumplir con el plan del negocio. Entonces, si de alguna manera puede parecer que tiene una influencia directa en el resultado , esto será un buen augurio para usted.
Jonathan Khoo
fuente
2
Ya sabes, la hipótesis del "desarrollador principal" me recuerda la teoría de la exogénesis, que establece que la vida en la Tierra fue creada por extraterrestres. Sí, un gerente de hecho puede confiar en las observaciones del desarrollador principal, ¡pero fue este gerente quien hizo que ese desarrollador fuera "líder"! Lo que nos lleva de vuelta al problema: ¿cómo sabe la gerencia quién liderará?
P Shved
@Pavel: Has señalado un tema interesante (sin embargo, por separado ). Suponiendo que se haya designado un desarrollador principal: la mayoría de la gerencia confía y cree en su decisión (es decir, a quien sea que hayan elegido).
Jonathan Khoo
if you're somehow able to look like you've having a direct influence on the outcome. Eso es lo que más se explota con una buena ganancia extra pero con malos desarrolladores de codificación.
IsmailS
7

En general, no lo hacen.

Es por eso que la programación es un "Mercado de limones". http://en.wikipedia.org/wiki/The_Market_for_Lemons

El código se arruina, y generalmente no es por 2-3 años antes de que lo sepas. Los programadores generalmente permanecen 18 meses, por lo que nunca verá a los culpables del fracaso.

Los gerentes deben tomar su palabra de que, por ejemplo, un lanzamiento lleva cuatro meses y cien iteraciones. ¿Quizás esté editando muchos archivos de implementación a mano y leyendo los archivos de registro para errores mezclados con el estado? No saben que se podría hacer mejor.

Sea honesto y profesional e intente mejorar. Con experiencia, un gerente comenzará a ver patrones de buen y mal comportamiento.

Tim Williscroft
fuente
Con respecto a mi comentario sobre la pregunta en sí sobre afirmar que los gerentes sean (o hayan sido) programadores ellos mismos. Lo que describes en tu respuesta es exactamente lo que he visto cuando he tenido un gerente que no es ni nunca ha sido un desarrollador de sí mismos. Desafortunadamente, hay muchos gerentes como este por ahí.
CraigTP
5

¿Cómo saben los gerentes si una persona es buena o mala programadora?

Comenzaré con una generalización general: la mayoría de los gerentes no pueden distinguir un programador "bueno" de un programador "malo".

Con eso fuera del camino, lo que la mayoría de los gerentes (he conocido o trabajado) consideran "bueno" en un programador no es el mismo conjunto de habilidades que otro programador consideraría "bueno".

¿Cómo lo hicieron?

Un gerente orientado a los resultados buscará cosas como "inteligente" y "hará las cosas". No les va a importar si te presentas a trabajar en pantalones de chándal siempre y cuando hagas las cosas a tiempo y dentro del presupuesto.

Un gerente orientado a procesos está más preocupado por "cómo se hacen las cosas". Esto significa llegar a tiempo al trabajo, usar la ropa adecuada y tener la portada correcta en el informe de TPS.

la persona trabaja bien, si él o ella debe ser puesto a cargo de algo

Estar "a cargo" requiere diferentes habilidades que escribir código. Si una persona tiene las habilidades de las personas necesarias para liderar un equipo, entonces esa persona debe ser aprovechada para hacerlo. Si promociona a las personas en función de los elementos clave del trabajo que están realizando actualmente, eventualmente llegan a un nivel en el que ahora son incompetentes. Esto se llama El Principio de Peter .

Tangurena
fuente
Nunca escuché la separación entre gerentes orientados a resultados y orientados a procesos. +1 por eso.
mwilcox
4

Obviamente, siempre es útil tener un administrador experto en programación que pueda leer el código y, lo que es más importante, profundizar en el sistema de seguimiento de errores y comprender lo que está sucediendo, saber que no todos los errores se crean de la misma manera y solo entregar el código incorrecto a tiempo no cuenta por mucho.

Pero ese es un caso ideal. Para que un gerente obtenga la medida de un programador desde una perspectiva no técnica, tengo un par de sugerencias.

  • ¿Destacan de manera rápida / regular / constante dónde hay problemas para hacer las cosas para cumplir con los requisitos especificados actualmente ... y son completamente molestos por eso (esto es el desarrollo de software después de todo, si no es lo suficientemente complejo como para tener estos problemas, No es un proyecto de desarrollo real).
  • Si no están seguros de algo, ¿lo dicen de inmediato? Solo un programador que confía en su propia habilidad realmente lo haría (y saben que si no le gusta, pueden obtener fácilmente otro trabajo). Por el contrario, alguien que sabe que está muy fuera de su alcance tiende a esconderse y buscar cobertura.
  • ¿Qué dicen / implican otros programadores del equipo sobre los otros programadores? Si eres un administrador medio decente, estás en las trincheras con tu equipo de programación, especialmente durante las pruebas de integración / tiempo de corrección de errores. Entonces, si no está recibiendo este tipo de comentarios, alguien más debería estar haciendo su trabajo.
  • Y mi favorito: lo que llamo el programador 'tomcat'. Si después de un tiempo observa constantemente que varios programadores siempre se mueven alrededor del mismo escritorio del programador (suponiendo que estén trabajando y discutiendo algún problema problemático, y no el buscador residente de productos web geniales y divertidos) ... entonces hay una razón por la que otros programadores están gravitando hacia el escritorio de esa persona. Si aún no son líderes de equipo, entonces probablemente deberían hacerse lo antes posible.

Si alguno o todos estos se aplican, es probable que tenga un buen programador en sus manos. Tenga en cuenta que, por buen programador, no solo califico su capacidad de codificación, sino también otras cosas útiles, como poder comunicarme con otros seres humanos ;-)

nomaderWhat
fuente
Gracias ... si es así, ese sería mi primer meme. En caso de que no sea obvio para nadie, se deriva de la analogía de 'criar gatos'.
nomaderWhat
3

Es posible que el gerente no sepa cuándo el código que escribe es brillante o si podría mejorarse en gran medida, pero lo que sí sabe es: ¿Cumplió la fecha límite con el código que funcionó? ¿Es usted una persona en la que puede confiar para solucionar los problemas que otras personas crean? ¿Notó el cliente o usuario un problema que se le pasó a su gerente? ¿Hubo un desastre importante en su reloj? (Eliminé la tabla de usuario, olvidé configurar las copias de seguridad, envié un correo electrónico a los clientes con datos de propiedad de otro cliente que no deberían haber visto, etc. ¿Alguien le felicitó por su trabajo (especialmente por escrito)? ¿La gente dice cosas buenas o malas a tus espaldas?

HLGEM
fuente
1
Me suena a política y me recuerda a una de mis compañías anteriores.
IsmailS
2
  1. En la mayoría de los casos donde su código no es evaluado por su gerente, sus pares lo evalúan (ya sea formal o informalmente cuando intentan trabajar con su código). Su jefe utilizará las opiniones de sus compañeros (de nuevo, ya sea formal o informal) hasta cierto punto.
  2. Su fiabilidad general y la rapidez con la que progresa y finaliza las tareas suele ser un factor muy importante, aparte de su capacidad de codificación.
  3. Comunicación. Si está haciendo mucho y lo está haciendo bien, ¡su gerente necesita saberlo! (Evite alardear, por supuesto). Aprenda a "administrar su gerente" y no simplemente ser pasivo. Ayuda a tu jefe a saber cómo trabajas.
Matthew Read
fuente
2

Los gerentes son codificadores y, por lo tanto, por simple observación, pueden determinar si el codificador es bueno o no.

Si sus gerentes no son codificadores (y usted está en el negocio del software), está jodido.

vegai
fuente
2

Como gerente, estas son algunas de las cosas que miré al evaluar a mis programadores:

  • Retroalimentación de los compañeros. Les pedí a los programadores de mi equipo y a los programadores de otros equipos que me enviaran comentarios sobre mi gente.

  • Respeto entre iguales . Cuando mis programadores encuentran un problema que no pueden resolver, dicen "vamos a pedir consejos".

  • Hace las cosas . Digo "Quiero X" y al día siguiente, X está listo.

  • Hace las cosas inteligentes . Digo "Quiero X" y al día siguiente, no solo se hace X, sino que todas las cosas similares a X se resuelven y no necesitan más atención.

  • Correcciones me . Digo "Quiero X" y el programador dice "X no está bien, deberíamos hacer Y, y he aquí por qué".

No hay muchos buenos gerentes por ahí (ver pregunta relacionada: ¿cómo saben los programadores si una persona es un buen o mal gerente?). Gestionar bien a las personas es difícil, y requiere mucho tiempo y trabajo duro. Tan pronto como manejé a 5 personas, casi no tuve tiempo para programar. Cuando administraba a más de 8 personas, ya no podía administrarlas tan bien como se merecían.

Jay Bazuzi
fuente
1

Creo que la premisa de su pregunta es algo defectuosa, ya que afirma que los gerentes en realidad no miran el código. He trabajado en muchas situaciones en las que mis gerentes eran compañeros ingenieros y participaban activamente en revisiones de código.

Sin embargo, definitivamente hay una pluralidad de situaciones en las que una persona no técnica está a cargo de los ingenieros de software y no puede confiar en su propio conocimiento y experiencia.

En estos casos, los gerentes responsables recurrirán a los pares del ingeniero para pedirles consejo. Preguntarán a las personas no técnicas de la organización con las que interactúa el ingeniero para ver si tiene buenas habilidades con las personas que sean compatibles con una mayor responsabilidad.

Los irresponsables simplemente irán con sus reacciones "intestinales" y usarán algún tipo de "métricas" generalmente incompatibles.

Es un juego de dados, pero siempre puedes dejarlo y esperar algo mejor en otro lado.

Adam Crossland
fuente
1

Cuando trabajo, cuando llegan las evaluaciones de los empleados, los gerentes envían un interrogador informal y anónimo a quienes interactúan regularmente con el empleado; tanto compañeros desarrolladores como clientes. Esto les brinda a los demás desarrolladores la oportunidad de dar su opinión sobre el rendimiento como codificador que los gerentes de lo contrario podrían pasar por alto.

Mike Clark
fuente
1

El gerente tiene que mirar los medibles. Qué aspectos del trabajo son medibles en términos de trabajo realizado, calidad del trabajo. Es posible que no sepan si está haciendo un trabajo de calidad, a menos que genere muchos errores o no permita que el usuario final haga lo que se supone que debe hacer.

Su trabajo le cuesta dinero al gerente en gastos, por lo tanto, debe ser económicamente rentable para continuar trabajando.

crosenblum
fuente
1

No digo que esta sea la mejor manera de hacerlo, pero podrían basarlo en la satisfacción del cliente. Si les gusta la aplicación, aceptan la cantidad de errores y sienten que agregan nuevas funciones de manera oportuna, ¿podrían sus desarrolladores realmente ser tan malos?

Por supuesto que podrían. Son capaces de forzar la fuerza bruta mediante la codificación porque tienes 10 personas haciendo el trabajo de dos. O los clientes están satisfechos porque vendes tu aplicación a un precio muy bajo.

Otro problema con este enfoque es que tiene que esperar hasta que una aplicación esté casi completa antes de que el gerente no técnico pueda recibir comentarios de los clientes. Crea una aplicación durante un año solo para lanzarla y a nadie le gusta.

La vida sería más simple si pudieras confiar en decirle a la gente que 'Solo haz que funcione' Cuando comprende y hace que las personas se adhieran al proceso correcto, elimina muchos problemas. Puede tener plazos exigentes que sean realistas. Cualquier tonto puede presentar demandas poco realistas y correr el riesgo de perder personas con talento.

JeffO
fuente
1

Creo que la mayoría de nosotros en un equipo técnico sabemos quién rockea y quién apesta. A menos que tenga una gran rotación, la crema sube a la cima y el peso muerto se hunde. Los desarrolladores malhumorados siempre tienen algún tipo de problema: se olvidan de probar su código antes de registrarlo, por lo que las compilaciones se rompen, siempre tienen una excusa cuando no hacen algo, y así sucesivamente.

SnoopDougieDoug
fuente
1

Creo que no saben si alguien es un buen programador , ya que no tienen las habilidades para hacerlo. Verifican si alguien es un buen desarrollador . La programación es una actividad de desarrollo, pero el desarrollo tiene muchas otras. Por lo tanto, verifican si está a tiempo, si sus estimaciones son buenas, si hay muchos defectos en las cosas que ha hecho en su sistema de seguimiento de errores, sus habilidades blandas, compromiso, comunicación, etc.

Lo que algunos gurús de It a veces olvidan y molestan es que nuestro trabajo no es solo la programación, tenemos muchas otras cosas que hacer que también son muy importantes. Si bien su gerente no analizará cómo se ve su código (porque no tiene importancia para él), verificará si usted es un jugador de equipo, responsable, respetuoso y hace un trabajo de alta calidad en general .

A veces pienso que el código está sobrevalorado.

JSBach
fuente
0

Creo que hay muy pocas personas (y mucho menos gerentes) que no tienen una buena comprensión general del orden jerárquico para los desarrolladores. Todos piensan que son un desarrollador de primer nivel, las únicas personas que no saben quiénes son los malos desarrolladores, son esos malos desarrolladores. De todos modos, si tuviera que ir y pedirle a alguien que clasifique a los desarrolladores con los que trabajan, estoy seguro de que sería una tarea fácil para la mayoría de las personas. Por lo tanto, no hay magia para determinar quién se desempeña muy bien y quién se desempeña promedio o mal, etc. sobre pero realmente no. La mayoría de los gerentes están engañados por ellos, pero los desarrolladores no.

Después de eso, son los prejuicios de su gerente los que determinan su clasificación. Para algunos, la codificación es una tarea de nivel de entrada, por lo que si bien puede ser excelente en la codificación, no obtendrá la promoción que está buscando. Mientras que otros consideran que el diseño o los aspectos arquitectónicos son los más importantes. Y otros creen que la definición y la recopilación de requisitos (es decir, el análisis empresarial) es lo más importante. Si desea saber qué es importante para su gerente y no obtuvo una clasificación de alto rendimiento, pregúnteles ¿qué debo hacer para obtener una clasificación de alto rendimiento? Aprenderá lo que también es importante para ellos en esa respuesta y luego depende de usted asegurarse de sobresalir en esas áreas de importancia.

Remojar
fuente