Que puis-je faire? Comment réagiriez-vous? AIDEZ-MOI! [fermé]

13

J'essaie de diriger une équipe logicielle qui prend du retard. L'un des principaux problèmes est que chaque fois que quelque chose est légèrement difficile, je finis par devoir me l'assigner. J'avais un autre développeur avec des compétences modérées et un demi stagiaire. Malheureusement, les autres compétences du développeur n'incluent pas la conception.

J'ai donc supplié mon patron pour l'un des gars de l'une des autres équipes, il travaille ici depuis plus longtemps que moi (5 ans). Il ne peut pas rivaliser avec moi sur le design OU le langage que nous utilisons, mais je pensais qu'il était le plus compétent que moi.

Aujourd'hui, il m'a donné un morceau de code qui a fait quelque chose qui n'était pas du tout différent:

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

Il m'a demandé si c'était un problème! J'ai dit la seule chose à laquelle je pouvais penser: "Oui. C'est un problème." Puis il vient vers mon bureau me demandant comment y remédier !! J'ai dit: "Utilisez un objet qui survit à l'appel de la fonction." Puis il commence à paniquer, "Ouais, mais comment, la seule chose à laquelle je peux penser est de faire une variable membre."

J'étais un peu occupé à ce moment-là parce que j'essayais déjà de faire du travail supplémentaire, je devais prendre le relais pour l'autre gars de l'équipe parce qu'il ne pouvait pas le comprendre ... J'ai dit au gars de partir parce que je était occupé et d'aller le découvrir lui-même. Puis il part dans un souffle en disant que ce n'est pas de sa faute s'il fout les choses. Il panique depuis qu'il est entré dans l'équipe et je ne pense pas que ça s'améliore.

J'ai l'impression de me noyer ici. Que puis-je faire? Quelle était la bonne façon de gérer cela? Aurait-il été plus raisonnable d'aller aider ce type qui écrit du C ++ depuis 7 ans à trouver comment retourner correctement une référence à un objet qui n'est pas détruit au moment où il est retourné? J'ai l'impression que c'est juste ridicule d'avoir à faire et je me demande comment diable je ferais quoi que ce soit de cette façon.

Parfois, je pense qu'ils le font exprès, mais cela me semble tout simplement fou ... mais là encore, il en va de même de la question que je viens de me poser aujourd'hui. Ce n'est pas un gamin assis à la maison essayant de comprendre son premier programme, se faisant souffler le cerveau par des pointeurs.


la source
4
CRIER!!! Et fais une diatribe. Cela vous fait vous sentir mieux. Oh attends, je vois que tu as déjà fait ça. Essayez de sourire. :): D (Les sourires maléfiques sont bien aussi.>: D)
Mateen Ulhaq
Il vient de m'envoyer un e-mail me disant que depuis que j'avais "un fort désir de ne pas être interrompu" il ne pouvait pas continuer et retournait à l'autre projet: p
7
Pourquoi quelqu'un qui n'a pas la moindre compréhension des pointeurs et de la gestion de la mémoire travaille-t-il sur un projet C ++?
Charles Salvia
2
Une explication possible: pendant de nombreuses années, la sagesse populaire était que STL n'était pas prêt pour les heures de grande écoute et produirait un code trop gonflé pour une utilisation en production. Il était possible d'être un programmeur C ++ relativement sophistiqué sans en savoir grand-chose sur la STL. De toute évidence, les choses ont changé. Cependant, s'il a été formé à la fin des années 90, ou a été encadré par quelqu'un formé à la fin des années 90, il peut très bien saisir un nouvel objet (), mais être complètement désarticulé par ce nouveau std :: unique_ptr <object> () machin. Cela ne résout pas votre problème, mais cela pourrait expliquer d'où il vient.
Charles E. Grant
2
@Charles: d'accord, j'ai plusieurs années d'expérience en C ++ dans l'industrie des jeux, et je n'ai jamais touché STL ni rien du tout. En regardant l'extrait de code ci-dessus, tout ce que je peux faire est de secouer la tête et de penser, "si vous voulez écrire C ++, écrivez C ++, mais il semble que vous ne vouliez pas écrire C ++, alors pourquoi ne pas simplement utiliser un niveau supérieur Langue?"
Carson63000

Réponses:

14

Aurait-il été plus raisonnable d'aller aider ce type qui écrit du C ++ depuis 7 ans à trouver comment retourner correctement une référence à un objet qui n'est pas détruit au moment où il est retourné?

J'ai donné tous mes livres C ++ il y a plusieurs années, tout en jurant que je ne toucherais plus jamais à ce langage, et même je peux dire à ce type qu'il ne sait pas ce qu'il fait. Je pense que vous devriez vous asseoir avec lui et découvrir quel est son niveau de compétence.

Cela ressemble à peut-être qu'il a 1 an d'expérience sept fois - pas sept ans d'expérience. Dans les grandes entreprises, il est tout à fait possible pour les travailleurs non qualifiés de se cacher et de se déplacer "autour du système" chaque fois qu'ils se font prendre.

J'essaie de diriger une équipe logicielle qui prend du retard. L'un des principaux problèmes est que chaque fois que quelque chose est légèrement difficile, je finis par devoir me l'assigner.

Si tel est le cas, vous devez vous arrêter et déterminer quels sont les niveaux de compétence des gens. Je comprends que vous vous sentiez dépassé par les délais et autres, mais vous ne pouvez pas faire le travail lorsque vous ne pouvez même pas être sûr de la composition de votre équipe. Vous ne pouvez pas terminer le projet si vous continuez à faire les mêmes erreurs - juste plus vite cette fois.

Prendre tout le travail sur vous signifie que vous n'avez pas d'équipe et que vous n'avez aucune confiance en eux. Cela doit être corrigé en premier.

Tangurena
la source
7
+1 pour "on dirait qu'il a peut-être sept ans d'expérience 1 an".
Matthew Read
@Matthew: c'est vrai.
IAbstract
13

Ce genre de problème est le pain et le beurre de la gestion. Une question que tous les gestionnaires doivent poser est: "Mes employés ont-ils les compétences nécessaires pour faire le travail?" Si la réponse est «non», un bon manager ne crie pas ou ne quitte pas - un bon manager va rectifier la situation.

Voici une observation - C ++ n'est pas un langage trivial, est-il donc possible d'utiliser quelque chose dans lequel vos développeurs juniors sont plus compétents? S'il doit être en C ++, vous devez soit former vos développeurs existants, soit embaucher de nouveaux développeurs avec les compétences appropriées.

J'étais dans une situation qui n'était pas différente il y a un an. J'ai été amené à diriger une équipe de programmeurs VB6 travaillant sur du code spaghetti, et le désir de la direction était de passer à des systèmes bien architecturés et orientés objet écrits en .NET. Nous avons fait d'excellents progrès dans ce domaine, ce genre de changements est donc possible.

Un dernier commentaire. Si vous n'aimez pas traiter ce genre de problème, je sortirais de la gestion et reviendrais à un rôle purement technique. Ces sortes de problèmes désordonnés sont le pain et le beurre de la vie d'un gestionnaire, et cela ne convient pas à tout le monde.

Craig Schwarze
la source
4
Ceci est un bel exemple de la vision de la gestion que de nombreux employés ne semblent pas avoir.
Mark C
Ouais, je ne suis pas gestionnaire. Parfois, je souhaite que je l'étais afin d'avoir plus de pouvoir pour travailler sur ces questions. D'autres fois, je suis vraiment content de ne pas l'être parce que je n'ai pas à le faire. Je suis juste un responsable technique.
Edward Strange
1
Salut Noah, je discuterais avec la personne qui gère l'équipe alors - ils sont responsables de s'assurer que les bonnes personnes sont disponibles et ont les bonnes compétences.
Craig Schwarze
9

Obtenez un emploi dans une meilleure entreprise où vous pouvez travailler avec des personnes compétentes.

Matthew Read
la source
7
Ou bien, arrêtez d'utiliser C ++. Cela résoudra de nombreuses classes différentes d'erreurs désagréables.
Mason Wheeler
3
@Mason: Je suis d'accord. Tout le monde écrit C # et soyez heureux. :)
IAbstract
2
C ++ ne doit être utilisé que lorsque C ++ est approprié. Je ne connais aucun langage existant qui puisse accomplir le travail de C ++ aussi bien qu'il le fait.
Matthew Read
2
@Matthew read, avec des programmeurs aussi incompétents que dans l'exemple de l'OP, C ++ EVER serait-il approprié?
Dan Rosenstark
4
@Yar: Bien qu'un mauvais programmeur écrive du mauvais code dans toutes les langues.
Jon Purdy
7

La bonne chose aurait été de l'aider à résoudre le problème. Il n'était pas nécessaire que ce soit sur place. Vous auriez pu dire: "Je suis attaché en ce moment. Allez lire le chapitre X de la STL C ++, et revenons à la base demain à 11h.".

Les cris peuvent fonctionner pour certaines personnes et certaines situations si ce n'est qu'une question de motivation. Mais, si c'est une question de compétence ou de connaissance, crier sur les gens et les faire sauter n'aide pas du tout. C'est comme crier aux gens qui ne parlent pas anglais. cela ne les aide pas à comprendre ce que vous essayez de dire, et cela peut tuer toute motivation qu'ils ont à essayer de vous aider. Ils sont là où ils sont, et aucune colère ou frustration de votre part ne leur permettra de mieux écrire en C ++ dans les prochaines 48 heures. Vous devrez peut-être également revenir à la direction et expliquer que la portée du projet dépasse les compétences actuelles de votre équipe. Des trucs comme ça, c'est pourquoi être un chef d'équipe est difficile.

Charles E. Grant
la source
Je n'ai pas crié. Je viens de dire, je suis occupé en ce moment. Je l'ai quand même fait exploser.
Edward Strange
3
@Noah, je n'étais pas là, tu étais, alors je cède. Considérez ceci cependant: les gens qui sont tellement frustrés qu'ils pensent que les gens font délibérément des choses stupides, plutôt que de faire stupidement des choses stupides, ont tendance à parler d'une voix très tendue à travers les dents serrées, tout en pensant qu'ils sont souriants et toniques. L'autre personne peut aussi être tellement stressée qu'elle entend: "Pourriez-vous revenir dans environ 10 minutes?" comme "Sortez le frack de mon bureau, sale sac!". Être un chef d'équipe consiste souvent à manipuler le comportement des primates par le langage corporel et le ton de la voix.
Charles E. Grant
3

Eh bien, si quelqu'un qui écrit du code depuis 7 ans demande quelque chose qui semble assez basique, je me demanderais ce qui se passe d'autre. Je ne suis pas un programmeur C ++ donc je ne peux pas commenter cet aspect.

Ce que je voudrais savoir, en tant que superviseur, je suppose, si quelque chose d'autre se passe qui le distrait. Je me rends compte que vous n'avez peut-être pas eu le temps à ce moment-là, mais la dernière chose que vous devriez faire est de repousser quelqu'un comme ça.

Réservez un moment pour lui parler et faites-lui savoir tout de suite: «Je comprends votre urgence à ce sujet, mais je n'ai pas le temps pour le moment. Dès que je le ferai, je vous le ferai savoir. pas plus d'une heure environ. "

De cette façon, vous avez transmis votre compréhension de son urgence, que vous n'avez pas le temps et que vous reviendrez avec lui. Même dans l'attente du moment où vous reviendrez avec lui. Il se sentira beaucoup mieux à ce sujet que d'être chassé (c'est ainsi que je le prendrais).

Ce que vous devez faire maintenant est de réserver du temps et de lui faire savoir quand vous pourrez lui parler du problème. Revenez sur vos pas et ravalez votre fierté, faites savoir à la personne que vous comprenez son urgence et que vous n'avez tout simplement pas eu le temps de vous en occuper. Vous devriez également voir s'il a quoi que ce soit dans ses domaines personnels qui pourrait affecter son attention - c'est-à-dire quoi d'autre pourrait le distraire. La vie personnelle nous affecte aussi, nous les programmeurs. ;)

IAbstract
la source
2

Je pense que vous devez vous asseoir avec votre patron et lui expliquer tout cela. Cela semble fou - qu'est-ce que ce gars fait même y travailler s'il ne connaît pas les bases?

sevenseacat
la source