Dans la plupart des entreprises, les équipes et les divisions de programmation sont composées de programmeurs qui conçoivent et écrivent du code et de gestionnaires qui ... s'occupent de la gestion. Hormis le fait de ne pas écrire de code, les responsables ne consultent généralement pas le code développé par l'équipe et peuvent même ne pas avoir d'IDE adéquat installé sur leurs machines de travail.
Néanmoins, les gestionnaires doivent juger si une personne fonctionne bien, si elle doit être chargée de quelque chose ou si un développeur en particulier doit être affecté à une tâche de la plus haute importance et de la plus grande responsabilité. Enfin, les gestionnaires attribuent généralement les bonus trimestriels!
Pour faire ce qui précède efficacement, un responsable doit savoir si une personne est un bon programmeur, entre autres caractéristiques, bien sûr. La question est, comment font-ils? Ils ne regardent même pas le code écrit par les gens, ils ne peuvent pas évaluer directement la qualité des composants développés par les programmeurs ... la plupart des cas!
Quel est le secret?
la source
Réponses:
En règle générale, un gestionnaire examinera
Il est vrai qu'ils ne voient généralement pas (ou ne comprennent pas souvent) le code des employés, mais ce qui précède constitue pour eux un indicateur raisonnable permettant d'évaluer dans quelle mesure un employé s'inscrit dans le rôle de programmation que leur impose son employeur. Si quelqu'un ne réussit pas, obtient de mauvaises notes de la part de ses collègues, ne peut pas bien communiquer, est frustré par une technologie différente de celle à laquelle il est habitué, a toujours besoin de supervision et est toujours malheureux, c'est une bonne indication qu'il n'en est rien. t bon maillage avec ce travail. *
* Il se peut toutefois que, dans un contexte et un environnement différents, ils soient très heureux et enthousiastes. Peut-être est-ce simplement le genre de programmeur auquel ils se sont opposés, et ils pourraient très bien programmer dans un contexte différent. "Programmeur" peut signifier des emplois très différents à des endroits différents. Mais le manager se préoccupe principalement de son rôle de "programmeur" et de la qualité de son emploi.
la source
Je ne suis pas d'accord avec l'affirmation que les gestionnaires ne regardent pas le code. Lorsque j'ai géré des équipes, j'ai examiné les résultats de chaque ingénieur - l'un des plus importants étant le code. Mais ce n’est pas le seul - courriels, documents de conception, livres blancs - tout est pris en compte.
Mais ce n'est certainement pas le seul facteur. Si un type est assis dans un coin et écrit un code brillant , mais qu'il est une bête à qui parler, ne répond pas aux questions, ne partage pas le statut et ne fait pas de compromis lorsque des problèmes de développement se présentent - je ne suis pas sûr qu'il soit un atout pour l'équipe. Surtout comparé à un gars qui écrit du code modérément décent mais qui peut faire tout ce qui précède.
Voici quelques éléments que je regarde quand je suis en mesure de donner des récompenses, mais avec l'énorme mise en garde qu'il s'agit absolument d'une réaction intestinale, car rien de tout cela ne peut être quantifié:
Et la contribution des autres. Je me suis souvent retrouvé dans une position où différents ingénieurs étaient en charge de différentes parties du projet. Parfois, les chefs d'équipe, et parfois juste les propriétaires d'un élément de sortie particulier (comme "le gars de la construction"). Les gens aiment parler des extrêmes - des actes d'héroïsme ou de la frustration des enfants à problèmes. Habituellement, dans le suivi de ces questions, je découvre beaucoup de choses sur les DEUX parties.
Il y a aussi un facteur dans la gestion des humains . Aucun ingénieur n'est exactement comme les autres. Donc, ils ne brillent pas tous de la même manière. L'un écrit un code sans bug, mais un autre aide à résoudre les problèmes de coupe qui cassent le code de chacun. On est super en personne, on est meilleur en écriture. L'un est incohérent à 9h00, l'autre à 15h00. Il ya un certain besoin de prendre du recul, de déterminer ce qui est le plus bénéfique pour l’équipe et ce qui pourrait être un facteur de partialité personnelle (comme le désir de tuer ce déchiqueteur à 4 heures du matin, simplement parce que je ne peux pas fonctionner avant 11 heures: 00h00).
la source
Cela varie énormément en fonction de l'expertise technique du gestionnaire.
la source
if you're somehow able to look like you've having a direct influence on the outcome
. C’est la chose la plus exploitée par les bons développeurs de gains de bonus mais les mauvais développeurs.Généralement, ils ne le font pas.
C'est pourquoi la programmation est un "marché aux citrons". http://en.wikipedia.org/wiki/The_Market_for_Lemons
Le code est gâché, et ce n'est généralement pas avant 2 ou 3 ans avant que vous ne le sachiez. Les programmeurs restent généralement 18 mois, de sorte que vous ne voyez jamais les coupables à l’échec.
Les gestionnaires doivent croire que, par exemple, une publication prend quatre mois et cent itérations. Peut-être êtes-vous en train d'éditer de nombreux fichiers de déploiement à la main et de lire à la main les fichiers journaux pour les erreurs mélangées avec le statut? Ils ne savent pas que cela pourrait être mieux fait.
Alors soyez honnête et professionnel et essayez de vous améliorer. Avec l'expérience, un responsable va commencer à voir des modèles de bons et de mauvais comportements.
la source
Je commencerai par une généralisation générale: la plupart des gestionnaires ne peuvent pas dire un "bon" programmeur à un "mauvais" programmeur.
En dehors de cela, ce que la plupart des gestionnaires (que j'ai rencontrés ou pour qui j'ai travaillé) considère "bon" dans un programmeur n'est pas le même ensemble de compétences qu'un autre programmeur considérerait comme "bon".
Un gestionnaire axé sur les résultats va rechercher des éléments tels que "intelligent" et "faire avancer les choses". Ils ne s'en soucieront pas si vous vous présentez au travail dans des pantalons de survêtement tant que vous faites le travail à temps et dans les limites du budget.
Un gestionnaire axé sur les processus est plus préoccupé par "comment les choses se font". Cela signifie que vous devez vous rendre au travail à temps, porter les bons vêtements et avez-vous la bonne page de couverture dans le rapport TPS?
Etre "en charge" nécessite des compétences différentes de celles qui consistent à écrire du code. Si une personne possède les compétences interpersonnelles nécessaires pour diriger une équipe, elle devrait alors être engagée pour le faire. Si vous promouvez des personnes en fonction des éléments clés de leur travail actuel, elles finissent par atteindre un niveau où elles sont désormais incompétentes. C'est ce qu'on appelle le principe de Peter .
la source
De toute évidence, il est toujours utile d'avoir un gestionnaire compétent en programmation qui puisse réellement lire le code et, ce qui est encore plus important, se plonger dans le système de suivi des bogues et comprendre ce qui se passe, sachant que tous les bogues ne sont pas créés égaux et que fournir du mauvais code à temps ne compte pas. pour autant.
Mais c'est un cas idéal. Pour qu'un gestionnaire puisse avoir la mesure d'un programmeur d'un point de vue non technique, j'ai quelques suggestions.
Si tout ou partie de ces cas s'appliquent, vous aurez probablement un bon programmeur entre vos mains. Notez que, par bon programmeur, je ne note pas seulement leur capacité de codage, mais d’autres choses utiles, comme pouvoir communiquer avec d’autres êtres humains ;-)
la source
Le responsable peut ne pas savoir quand le code que vous écrivez est brillant ou s'il pourrait être amélioré considérablement, mais ce qu'il sait, c'est: avez-vous respecté les délais avec un code qui a fonctionné? Êtes-vous une personne en qui il peut avoir confiance pour résoudre les problèmes créés par d'autres personnes? Le client ou l'utilisateur a-t-il remarqué un problème qui a été signalé à son responsable? Y a-t-il eu un désastre majeur à votre surveillance (suppression de la table des utilisateurs, oubli de la création de sauvegardes, envoi d'un courrier électronique à des clients contenant des données de propriété d'un autre client qu'ils n'auraient pas dû voir, etc. Les gens disent-ils de bonnes ou de mauvaises choses derrière le dos?
la source
la source
Les gestionnaires sont eux-mêmes des codeurs et peuvent donc, par simple observation, déterminer si le codeur est bon ou non.
Si vos gestionnaires ne sont pas des codeurs (et que vous travaillez dans le secteur des logiciels), vous êtes foutu.
la source
En tant que gestionnaire, voici certaines des choses que j'ai examinées lors de l'évaluation de mes programmeurs:
Commentaires des pairs. J'ai demandé aux programmeurs de mon équipe et aux programmeurs d'autres équipes de m'envoyer des informations sur mes collaborateurs.
Le respect des pairs . Quand mes programmeurs rencontrent un problème qu'ils ne peuvent pas résoudre, ils disent "allons demander conseil à untel."
Obtient des choses faites . Je dis "je veux X" et le lendemain, X est fait.
Obtient des choses intelligentes . Je dis "je veux X" et le lendemain, non seulement X est terminé, mais toutes les choses semblables à X sont résolues et n'ont pas besoin d'attention supplémentaire.
Me fixe . Je dis "je veux X" et le programmeur dit "X n'est pas correct, nous devrions faire Y, et voici pourquoi."
Il n’ya pas beaucoup de bons gestionnaires (voir la question connexe: comment les progamers savent-ils si une personne est un bon ou un mauvais gestionnaire?). Il est difficile de bien gérer les gens, cela prend beaucoup de temps et de travail acharné. Dès que j'ai géré 5 personnes, je n'avais presque pas le temps de programmer. Quand je dirigeais plus de 8 personnes, je ne pouvais plus les gérer aussi bien qu’elles le méritaient.
la source
Je pense que la prémisse de votre question est quelque peu fausse car elle affirme que les gestionnaires ne consultent pas le code. J'ai travaillé dans de nombreuses situations où mes cadres étaient des collègues ingénieurs et participaient activement à la révision du code.
Cependant, il existe certainement une pluralité de situations dans lesquelles une personne non technique est en charge des ingénieurs en logiciel, et ils ne peuvent pas compter sur leurs propres connaissances et expériences.
Dans ce cas, les responsables responsables feront appel aux pairs de l'ingénieur pour obtenir des conseils. Ils demanderont à des personnes non techniques de l'organisation avec lesquelles l'ingénieur aura des contacts de voir s'il a de bonnes compétences relationnelles compatibles avec une responsabilité accrue.
Les irresponsables iront simplement avec leurs réactions "instinctives" utilisent une sorte de "métrique" généralement insoutenable.
C'est une merde, mais vous pouvez toujours arrêter et espérer quelque chose de mieux ailleurs.
la source
Là où je travaille, lorsque les évaluations des employés arrivent, les responsables envoient un interrogateur anonyme et informel à ceux qui interagissent régulièrement avec les employés. les deux collègues développeurs ainsi que les clients. Cela donne aux autres développeurs l'occasion de donner leur avis sur les performances en tant que codeur, ce que les gestionnaires peuvent sinon négliger.
la source
Le gestionnaire doit regarder les mesurables. Quels aspects du travail sont mesurables en termes de travail accompli, de qualité du travail. Ils risquent de ne pas savoir si vous faites un travail de qualité, à moins que vous ne génériez beaucoup d'erreurs, ou ne permettiez pas à l'utilisateur final de faire ce qu'il est censé faire.
Votre travail coûte de l'argent au gestionnaire en dépenses, vous devez donc être financièrement rentable pour continuer à travailler.
la source
Je ne dis pas que c'est la meilleure façon de le faire, mais ils pourraient le baser sur la satisfaction du client. S'ils aiment l'application, acceptent le nombre de bogues et estiment que vous ajoutez de nouvelles fonctionnalités rapidement, vos développeurs pourraient-ils vraiment être aussi mauvais?
Bien sûr qu'ils pourraient. Ils sont capables de recourir à la force brutale en codant parce que vous avez 10 personnes qui font le travail de deux. Ou les clients sont satisfaits parce que vous vendez votre application à moindre coût.
Un autre problème de cette approche est que vous devez attendre que l'application soit presque terminée avant que le responsable non technique puisse obtenir les commentaires des clients. Construisez une application pendant un an seulement pour la publier et personne ne l'aime.
La vie serait plus simple si vous pouviez vous contenter de dire aux gens: «Faites-le simplement fonctionner». Lorsque vous comprenez et faites respecter le bon processus, vous éliminez de nombreux problèmes. Vous pouvez avoir des délais exigeants qui sont réalistes. Tout imbécile peut présenter des demandes irréalistes et courir le risque de perdre des personnes talentueuses.
la source
Je pense que la plupart des membres d’une équipe technique savent qui est génial et qui craint. À moins que vous n'ayez un chiffre d'affaires considérable, la crème monte au sommet et le poids mort disparaît. Les développeurs minables ont toujours des ennuis - ils oublient de tester leur code avant de l'archiver, alors les builds tombent en panne, ils ont toujours une excuse quand ils ne font rien, et ainsi de suite.
la source
Je pense qu'ils ne savent pas si quelqu'un est un bon programmeur , car ils n'ont pas les compétences pour le faire. Ils vérifient si quelqu'un est un bon développeur . La programmation est une activité de développement, mais le développement en a beaucoup d’autres. Ils vérifient donc si vous êtes à l'heure, si vos estimations sont bonnes, s'il y a de nombreux défauts dans ce que vous avez fait dans votre système de suivi des bugs, vos compétences générales, votre engagement, votre communication, etc.
Ce que certains gourous oublient parfois et s’énervent, c’est que notre travail ne consiste pas seulement à programmer, nous avons beaucoup d’autres choses à faire qui sont également très importantes. Alors que votre gestionnaire ne sera pas un coup d' oeil sur la façon dont votre apparence de code comme (parce qu'il est tout à fait sans importance pour lui), il va vérifier si vous êtes un joueur d'équipe, responsable, respectueux et faire un travail de qualité dans l' ensemble .
Parfois, je pense que le code est surestimé.
la source
Je pense qu'il y a très peu de personnes (sans parler des gestionnaires) qui ne comprennent pas bien l'ordre hiérarchique des développeurs. Tout le monde pense être un développeur de premier ordre, les seules personnes qui ne savent pas qui sont les mauvais développeurs sont ces mauvais développeurs eux-mêmes. Quoi qu'il en soit, si vous demandiez à quelqu'un de classer les développeurs avec lesquels ils travaillent, je suis sûr que ce serait une tâche facile pour la plupart des gens. Il n’ya donc pas de magie pour déterminer qui exécute très bien et qui exécute des performances moyennes ou mauvaises, etc. à propos mais vraiment pas. La plupart des gestionnaires sont intimidés par eux, mais les développeurs ne le sont pas.
Après cela, ce sont les préjugés de votre responsable qui déterminent votre classement. Pour certains, le codage est une tâche de niveau débutant. Par conséquent, même si vous êtes un excellent codeur, il ne vous obtiendra pas la promotion que vous recherchez. Tandis que d’autres considèrent les aspects de conception ou d’architecture comme étant les plus importants. Et d’autres croient que la définition et la collecte des exigences (c’est-à-dire l’analyse commerciale) sont très importantes. Si vous voulez savoir ce qui est important pour votre responsable et que vous n'avez pas obtenu le classement le plus performant, demandez-lui ce que je dois faire pour obtenir le classement le plus performant. Vous apprendrez également ce qui est important dans cette réponse, puis vous avez la responsabilité de vous surpasser dans ces domaines d’importance.
la source