¿Que puedo hacer? ¿Cómo reaccionarías? ¡AYUDA! [cerrado]

13

Estoy tratando de liderar un equipo de software que se está quedando atrás. Uno de los principales problemas es que cada vez que algo es levemente difícil, termino teniendo que asignarlo a mí mismo. Tuve otro desarrollador con habilidades moderadas y medio pasante. Desafortunadamente, las habilidades del otro desarrollador no incluyen el diseño.

Así que le rogué a mi jefe por uno de los muchachos en uno de los otros equipos, él ha estado trabajando aquí más tiempo que yo (5 años). No puede competir conmigo en el diseño O el lenguaje que usamos, pero pensé que era el más competente además de mí.

Hoy me dio un código que hizo algo que no era en absoluto diferente a:

object const& my_class::get_object() const 
{ 
  return *std::unique_ptr<object>(new object());
}

¡Me preguntó si eso era un problema! Dije lo único en lo que podía pensar, "Sí. Eso es un problema". ¡Luego se acerca a mi escritorio y me pregunta cómo solucionarlo! Le dije: "Usa un objeto que sobreviva a la llamada de la función". Luego comienza a enloquecer, "Sí, pero cómo, lo único que se me ocurre es hacer que un miembro sea variable".

Estaba un poco ocupado en este momento porque ya estaba tratando de hacer un trabajo extra. Tuve que reemplazar al otro tipo en el equipo porque no podía entenderlo ... Le dije al tipo que se fuera porque yo estaba ocupado e ir a resolverlo él mismo. Luego se enoja hablando de que no es su culpa si arruina las cosas. Ha estado enloqueciendo desde que llegó al equipo y no creo que esté mejorando.

Siento que me estoy ahogando aquí. ¿Qué puedo hacer? ¿Cuál era la forma correcta de lidiar con eso? ¿Habría sido más razonable ayudar a este tipo que ha estado escribiendo C ++ durante 7 años a descubrir cómo devolver correctamente una referencia a un objeto que no se destruye en el momento en que se devuelve? Siento que es ridículo tener que hacerlo y me pregunto cómo demonios podría hacer algo así.

A veces creo que lo están haciendo a propósito, pero eso me parece una locura ... pero, una vez más, también lo hace la pregunta que me hicieron hoy. Este no es un niño sentado en casa tratando de descifrar su primer programa, con su cerebro golpeado por punteros.


fuente
44
¡¡¡GRITAR!!! E ir a despotricar. Te hace sentir mejor. Oh, espera, veo que ya has estado haciendo eso. Intenta sonreír. :): D (las sonrisas malvadas también están bien.>: D)
Mateen Ulhaq
Simplemente me envió un correo electrónico diciéndome que ya que tenía "un fuerte deseo de no ser interrumpido", no podía continuar y estaba volviendo al otro proyecto: p
77
¿Por qué alguien que no tiene la menor comprensión de los punteros y la administración de memoria está trabajando en un proyecto C ++?
Charles Salvia
2
Una posible explicación: durante muchos años, la sabiduría popular era que STL no estaba listo para el horario estelar y que produciría un código demasiado hinchado para su uso en producción. Solía ​​ser posible ser un programador de C ++ relativamente sofisticado sin saber mucho acerca de STL. Obviamente las cosas han cambiado. Sin embargo, si fue entrenado a fines de los 90, o si fue entrenado por alguien entrenado a fines de los 90, puede asimilar un nuevo objeto () muy bien, pero no le molestará por completo este nuevo e innovador std :: unique_ptr <objeto> () cosita. No resuelve su problema, pero podría explicar de dónde viene.
Charles E. Grant
2
@Charles: de acuerdo, tengo varios años de experiencia en C ++ de la industria de los juegos, y nunca he tocado STL ni sé nada al respecto. Mirando el fragmento de código anterior, todo lo que puedo hacer es sacudir la cabeza y pensar "si quieres escribir C ++, escribe C ++, pero parece que no quieres escribir C ++, entonces ¿por qué no usar un nivel más alto? ¿idioma?"
Carson63000

Respuestas:

14

¿Habría sido más razonable ayudar a este tipo que ha estado escribiendo C ++ durante 7 años a descubrir cómo devolver correctamente una referencia a un objeto que no se destruye en el momento en que se devuelve?

Repartí todos mis libros de C ++ hace varios años, mientras juraba que nunca volvería a tocar ese lenguaje, e incluso yo puedo decir que este tipo no sabe lo que está haciendo. Creo que deberías sentarte con él y descubrir cuál es su nivel de habilidad.

Parece que tal vez tiene 1 año de experiencia siete veces, no siete años de experiencia. En las empresas más grandes, es muy posible que los trabajadores no calificados se escondan y barajen "alrededor del sistema" cada vez que quedan atrapados.

Estoy tratando de liderar un equipo de software que se está quedando atrás. Uno de los principales problemas es que cada vez que algo es levemente difícil, termino teniendo que asignarlo a mí mismo.

Si este es el caso, entonces debes detenerte y descubrir cuáles son los niveles de habilidad de la gente. Entiendo que te sientes abrumado por los plazos y tal, pero no puedes hacer el trabajo cuando ni siquiera puedes estar seguro de en qué consiste tu equipo. No puede completar el proyecto si sigue cometiendo los mismos errores, pero esta vez más rápido.

Asumir todo el trabajo en ti mismo significa que no tienes un equipo, ni confías en ellos. Eso tiene que arreglarse primero.

Tangurena
fuente
77
+1 para "parece que tal vez tiene 1 año de experiencia siete veces".
Matthew leyó el
@Matthew: muy cierto.
Resumen de
13

Este tipo de problema es el pan de cada día de la gestión. Una pregunta que todos los gerentes deben hacer es: "¿Mi gente tiene las habilidades necesarias para hacer el trabajo?" Si la respuesta es "no", un buen gerente no grita ni renuncia; un buen gerente se encarga de rectificar la situación.

Aquí hay una observación: C ++ no es un lenguaje trivial, entonces, ¿es posible usar algo en lo que sus desarrolladores junior sean más competentes? Si debe estar en C ++, entonces necesita capacitar a sus desarrolladores existentes o contratar nuevos desarrolladores con las habilidades adecuadas.

Estaba en una situación no diferente hace un año. Fui contratado para dirigir un equipo de programadores de VB6 que trabajaban en el código de espagueti, y el deseo de la administración era cambiar hacia sistemas bien orientados y orientados a objetos escritos en .NET. Hemos hecho un excelente progreso en esta área, por lo que este tipo de cambios son posibles.

Un comentario final. Si no le gusta lidiar con este tipo de problema, me saldría de la gerencia y volvería a un rol puramente técnico. Este tipo de problemas desordenados son el pan de cada día de la vida de un gerente, y no se adapta a todos.

Craig Schwarze
fuente
44
Este es un buen ejemplo de la visión de la administración que muchos empleados no parecen tener.
Mark C
Sí, no soy gerencia. A veces desearía estarlo para tener más posición para trabajar en estos temas. Otras veces me alegro mucho de no hacerlo porque no tengo que hacerlo. Solo soy un líder tecnológico.
Edward Strange el
1
Hola, Noah, hablaría con quien sea que esté administrando el equipo, ellos son responsables de asegurarse de que las personas adecuadas estén disponibles y tengan las habilidades adecuadas.
Craig Schwarze
9

Consigue un trabajo en una empresa mejor donde puedas trabajar con personas competentes.

Matthew Read
fuente
77
O, alternativamente, deje de usar C ++. Esto resolverá muchas clases diferentes de errores desagradables.
Mason Wheeler
3
@Mason: estoy de acuerdo. Todos escriban C # y sean felices. :)
IAbstract
2
C ++ solo debe usarse donde C ++ es apropiado. No conozco ningún lenguaje existente que pueda realizar el trabajo de C ++ tan bien como lo hace.
Matthew leyó el
2
@Matthew leyó, con programadores tan incompetentes como en el ejemplo del OP, ¿sería apropiado C ++ NUNCA?
Dan Rosenstark
44
@Yar: Aunque un mal programador escribe un código malo en todos los idiomas.
Jon Purdy
7

Lo correcto hubiera sido ayudarlo con el problema. No tenía que estar justo en el lugar. Podrías haber dicho: "Estoy atado en este momento. Ve a leer el Capítulo X de C ++ STL, y volvamos a tocar la base mañana a las 11 a.m.".

Gritar puede funcionar para algunas personas y algunas situaciones si es solo una cuestión de motivación. Pero, si es una cuestión de competencia o conocimiento, gritar a las personas y hacerlas volar no ayuda en absoluto. Es como gritar a las personas que no hablan inglés. no les ayuda a entender lo que estás tratando de decir, y puede matar cualquier motivación que tengan para tratar de ayudarte. Están donde están, y ninguna cantidad de ira o frustración de su parte los hará mejores para escribir C ++ en las próximas 48 horas. También es posible que deba volver a la administración y explicar que el alcance del proyecto está más allá de la habilidad actual de su equipo. Cosas como esta es la razón por la cual ser líder del equipo es un fracking duro.

Charles E. Grant
fuente
No grité Solo dije, estoy ocupado ahora. Aunque lo hice volar.
Edward Strange el
3
@Noah, yo no estaba allí, tú estabas, así que cedo. Sin embargo, considere esto: las personas que están tan frustradas que piensan que las personas están haciendo cosas estúpidas deliberadamente, en lugar de hacer cosas estúpidas, tienden a hablar con una voz muy tensa con los dientes apretados, mientras piensan que están sonriendo y con un tono dulce. La otra persona también puede estar tan estresada que escuche: "¿Podrías volver en unos 10 minutos?" como "¡Saca el frack de mi oficina, bastardo!". Ser un líder de equipo a menudo se trata de manipular el comportamiento de los primates a través del lenguaje corporal y el tono de voz.
Charles E. Grant
3

Bueno, si alguien que ha estado escribiendo código durante 7 años pregunte algo que suena bastante básico, tendría que preguntarme qué más está pasando. No soy un programador de C ++, así que no puedo comentar sobre ese aspecto.

Lo que me gustaría saber, como su supervisor, supondría, si algo más está sucediendo, lo está distrayendo. Me doy cuenta de que es posible que no hayas tenido tiempo en ese momento, pero lo último que debes hacer es alejar a alguien así.

Dedique un momento para hablar con él y hágale saber en ese momento: "Entiendo su urgencia en esto, pero no tengo tiempo para esto ahora. Tan pronto como lo haga, se lo haré saber. Esperaría no más de aproximadamente una hora ".

De esta manera, ha transmitido su comprensión de su urgencia, de que no tiene tiempo y de que volverá con él. Incluso como una expectativa de cuándo volverás con él. Se sentirá mucho mejor al respecto que ser expulsado (así es como lo tomaría).

Lo que debe hacer ahora es reservar algo de tiempo y hacerle saber cuándo puede hablar con él sobre el tema. Vuelva atrás y trague un poco de orgullo, hágale saber a la persona que comprende su urgencia y que no tuvo tiempo de lidiar con eso. También debe ver si tiene algo en sus áreas personales que podría estar afectando su atención, es decir, qué más podría distraerlo. Las vidas personales también nos afectan a los programadores. ;)

IAbstracto
fuente
2

Creo que necesitas sentarte con tu jefe y explicárselo todo. Eso suena loco: ¿qué está haciendo ese tipo incluso trabajando allí si no sabe lo básico?

sevenseacat
fuente