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?
fuente
Respuestas:
Por lo general, un gerente observará
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.
fuente
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:
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.).
fuente
Esto varía mucho dependiendo de la experiencia técnica del gerente.
fuente
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.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.
fuente
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".
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.
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 .
fuente
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.
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 ;-)
fuente
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?
fuente
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente