web-dev-qa-db-fra.com

Devoir fixer des objectifs pour les développeurs, même si les objectifs ne fonctionnent pas

C'est généralement accepté que fixer des objectifs mesurables pour les développeurs de logiciels ne fonctionne pas , car trop se concentrer sur les objectifs peut conduire à un comportement contraire à les objectifs organisationnels (soi-disant " dysfonction de mesure ").

Cependant, dans mon entreprise, nous sommes tenus de fixer des objectifs pour tout le personnel et nous sommes encouragés par les ressources humaines à les faire INTELLIGENT . Dans le passé, mes collègues managers de premier niveau (chefs d'équipe) et moi avons essayé un certain nombre d'approches:

  1. Fixez-vous des objectifs mesurables qui s'ajoutent au travail normal, comme "Faire une formation sur la technologie X", "Créer une documentation pour le morceau de code Y que personne ne comprend", etc. En ce qui concerne l'évaluation annuelle des performances, notez les développeurs non pas sur les objectifs écrits, mais plutôt sur mon avis sur la valeur incommensurable de leur travail normal, car c'est en fait ce qui compte pour l'entreprise.
  2. Fixez-vous des objectifs très spécifiques tels que "jours de travail effectués tels qu'enregistrés par le système de gestion des tâches", "nombre de bogues introduits", "nombre de productions produites provoquées". Cela a conduit à des estimations gonflées et à une classification incorrecte des bogues, afin d'obtenir de meilleurs "scores". Fait intéressant, même les développeurs qui ont obtenu de bons résultats sur ce système ne l'ont pas aimé, car la confiance intrinsèque au sein de l'équipe a été endommagée et ils n'ont pas toujours senti qu'ils méritaient leur position élevée.
  3. Fixez des objectifs vagues qui sont des variantes de "Faites bien votre travail normal". En ce qui concerne l'évaluation annuelle, leur note reflète la performance par rapport aux objectifs, mais les objectifs eux-mêmes ne sont pas mesurables ou réalisables, ce qui est mal vu.

Rien de tout cela n'est idéal. Si vous avez été dans une situation similaire de devoir créer des objectifs significatifs et mesurables pour les développeurs de logiciels malgré les preuves de leur efficacité, quelle approche vous a le mieux fonctionné?


Questions connexes que j'ai trouvées qui ne répondent pas tout à fait au même point:


Mise à jour (18 novembre 2009): Il y a 10 votes positifs pour ma question, et les réponses les mieux notées n'ont que 4 votes positifs (dont un de moi) . Je pense que cela nous dit quelque chose: peut-être que Joel et les autres ont raison, et que la sagesse combinée de stackoverflow ne peut pas proposer n'importe quoi des objectifs convaincants et mesurables pour les développeurs qui ne pourraient pas être joués sans négativement affectant la vraie valeur (non mesurable) de leur travail. Merci d'avoir essayé!

83
Paul Stephenson

quelle approche vous a le mieux fonctionné?

Un seul objectif: passer une inspection de code/examen par les pairs, avec moi en tant que réviseur, sans que je trouve de bugs ou de critiques, cela me demande de refaire quelque chose.

Remarques:

  • Je ne mesurais pas la capacité des nouvelles recrues à terminer rapidement et je ne les encourageais pas: je voulais que les gens apprennent à bien finir (car si ce n'est pas bien fini, alors ce n'est pas fini)
  • Les gens ont appris ce que je cherchais dans une revue de code: c'est donc une opportunité d'apprentissage et une mesure de contrôle qualité, et pas seulement un objectif de gestion
  • Mes commentaires auraient deux catégories:
    1. Ceci est un bug: vous devez le corriger avant de vous enregistrer
    2. À titre de suggestion, j'aurais fait tel ou tel
  • Après un certain temps, mes révisions du code d'une personne cesseraient de trouver des éléments "à corriger" (auquel cas je n'aurais plus besoin de revoir leur travail).
21
ChrisW

Personnellement, j'essaie de fixer deux sortes d'objectifs:

  • Des objectifs orientés métier (c'est pourquoi nous sommes finalement payés). Par exemple, "terminer le projet X d'ici le 1er juin 2009"). Ces objectifs sont souvent partagés entre plusieurs membres de l'équipe (et ils en sont conscients). L'équipe peut dépasser l'objectif en amenant le projet en avance ou en dépassant les fonctionnalités requises. Les individus peuvent dépasser l'objectif en produisant plus de fonctionnalités, en ayant moins de bugs contre eux, ou en encadrant et en soutenant d'autres membres de l'équipe.

  • Objectifs de croissance personnelle, par exemple, terminer un projet impliquant une technologie que le développeur souhaite ajouter à ses compétences, mieux comprendre le domaine de l'utilisateur, acquérir une expérience de leadership, etc.

Je pense qu'il est important que:

  • Les objectifs sont SMART
  • Les objectifs sont alignés sur les besoins de l'entreprise
  • Vous incluez le "travail normal" dans les objectifs, en fait ce sont les objectifs les plus importants!
  • L'employé a la possibilité de dépasser les objectifs que vous vous êtes fixés

Enfin, je resterais loin des métriques logicielles comme objectifs - elles sont trop faciles à jouer et ne vous donneront probablement pas ce dont vous avez besoin. Je n'utiliserais une métrique que si je veux entraîner quelqu'un dans ou hors d'un comportement particulier.

14
Bids

Tout cela se résume au fait que la "gestion de premier niveau", et la plupart des gestionnaires ne connaissent pas leurs employés. Au lieu de faire partie de la planification et du développement au jour le jour, des choses comme SMART apparaît. Si les gestionnaires devaient passer plus de temps avec les gars qui font le travail réel, rien de tout cela ne serait nécessaire.

Personnellement, je préfère travailler dans un environnement agile où il est évident qui des développeurs effectue en termes de productivité et de sensibilisation à la qualité. Une véritable approche agile nécessite que non seulement les développeurs, mais aussi les concepteurs, les testeurs, les clients et les chefs de produit soient inclus dans le processus. Cela conduit naturellement à de meilleures perspectives du point de vue des gestionnaires.

9
Martin Wickman

Objectifs mesurables que j'ai vus jusqu'à présent:

  • Passer un examen de certificat
  • Recherchez la technologie X et organisez une présentation à ce sujet
  • Nombre de modifications de rupture de build validées
  • Nombre d'articles wiki écrits sur la gestion interne des connaissances

Que diriez-vous de demander directement à vos développeurs s'ils ont des idées de développement personnel qui pourraient ensuite être utilisées pour des objectifs?

8
Petteri Hietavirta

"Assurez-vous qu'au moins n% de votre code est testé par un test unitaire approprié" Utilisez un outil de couverture pour le prouver et demandez à quelqu'un d'autre de vérifier la qualité du test.

7
Ed Guiness

Devoir fixer des objectifs pour les développeurs, même s'ils ne fonctionnent pas

Si vos développeurs ne fonctionnent pas, certains objectifs sont peut-être juste de quoi ont-ils besoin pour les inciter? ;-)

7
Andrzej Doyle

Je pense qu'avoir des objectifs très spécifiques à l'avant, c'est-à-dire SMART (peut-être que nous travaillons au même endroit en fait), semble être une bonne idée dans la pratique, mais ce n'est pas très pratique pour la plupart des équipes .

Le problème est vraiment le changement progressif de nos objectifs. L'entreprise change et en tant que développeurs, nous devons réagir et réagir correctement et dans un délai raisonnable.

Pensez à définir des objectifs qui correspondent à l'objectif de votre équipe ou de votre groupe dans l'organisation. Votre équipe ne serait pas financée si elle ne servait pas un objectif - un objectif macro. Ayez des objectifs collectifs qui existent dans l'ensemble de votre équipe et qui correspondent à l'entreprise. Donner aux gens la responsabilité et tenir les gens responsables. Célébrez leurs succès et leurs échecs (si nous n'échouons pas parfois, nous n'essayons probablement pas et c'est ce que vous attendez des gens). HTH

4
Eric Sabine

Nous avons un certain nombre de mesures qui sont collectées au fur et à mesure que les programmeurs travaillent, telles que:

  • Nombre de SLOC modifiés/ajoutés
  • Nombre d'erreurs/bogues injectés à différentes étapes du processus (pendant l'examen par les pairs, après l'examen par les pairs, après la publication)
  • Demandes de modification satisfaites/rejetées
  • Documents officiels (descriptions de versions de logiciels, documents de conception, etc.)

Ce sont tous des éléments tangibles que je trouve utiles dans les présentations pour la gestion et l'assurance qualité des logiciels. Mais je ne les ai jamais trouvés terriblement utiles dans les évaluations réelles des performances des personnes - ce qui est le point souligné par plusieurs des liens que vous avez énumérés. J'ai trouvé que les points de Joel ici sont valides - les mesures ne favorisent jamais une bonne ambiance d'équipe.

Malheureusement, nous vivons tous dans un monde où les mesures sont exigées par d'autres (gestion, assurance qualité, sous-traitants externes, etc.). J'ai trouvé qu'un acte d'équilibrage est nécessaire - fournir ces mesures, mais aussi fournir des preuves d'intangibles - intangible étant ce que chaque programmeur a accompli qui n'est pas nécessairement suivi. Par exemple, j'avais un programmeur qui a passé beaucoup de temps à enquêter sur le code hérité que personne d'autre ne voulait toucher. Même si ses mesures étaient faibles pour cette période de temps, cet effort était inestimable.

Le seul moyen que j'ai trouvé pour inclure de telles choses a été de pousser pour la création d'une catégorie immatérielle supplémentaire et de lui donner un poids égal avec les autres métriques. Habituellement, cela suffit pour balancer la balance pour un programmeur particulier.

3
Matt Jordan

L'un des problèmes semblerait être qu'en tant que division/département, les organisations informatiques n'ont pas d'objectifs stratégiques mesurables. S'ils le faisaient, il serait plus facile de fixer des objectifs pour les individus.

par exemple. S'il y avait une initiative ministérielle pour réduire le nombre de tickets problématiques soulevés, alors, vous pourriez définir des objectifs individuels en fonction du nombre de tickets liés au logiciel dont ils s'occupent.

Étant donné que le développement de logiciels est largement une collaboration, il serait plus logique de fixer des objectifs au niveau de l'équipe, puis de classer les individus en fonction de leur contribution à l'équipe.

2
James Anderson

Je pense que déterminer comment aligner le développement personnel avec les projets en cours est un point clé. Demander aux développeurs de s'analyser eux-mêmes pour trouver des faiblesses et de donner des commentaires sur les autres peut être un moyen de trouver ce qui peut être amélioré, puis de trouver un moyen de le mesurer. Par exemple, je peux constater que je documente rarement les éléments achevés et ainsi de suite mes objectifs pour l'année, je peux affirmer que je veux améliorer cela et que la quantité de documentation que je produis peut être une mesure de cela. Cela peut fonctionner ou se retourner contre moi en fonction de la façon dont je le suis vraiment. D'une part, il peut y avoir des préoccupations valables pour ce qui est de savoir comment améliorer mon travail et faire ce qui peut être considéré comme la bonne façon alors qu'une vision passive agressive ou enfantine serait de produire une montagne de documentation si elle n'est pas si bonne en termes de qualité car cela peut être amélioré l'année prochaine car cela peut être un autre point à considérer: Quelle est la motivation supposée pour s'améliorer autant que possible tout au long d'une année par rapport à l'espacement des choses?

La définition d'un développeur efficace en est un autre élément. Est-ce la personne qui corrige le mieux les bugs? Le nouveau travail fonctionne-t-il le plus rapidement? Est-ce que le nouveau travail se termine avec des tests et de la documentation même s'il n'est pas fait rapidement? Comment appelez-vous efficace puisque la réponse standard "ça dépend" doit être clarifiée ici.

1
JB King

Un des objectifs que j'aime est:

Sollicitez N évaluations positives de votre implication dans un projet auprès du client du projet.

Cela aide car il est toujours bon d'avoir des commentaires positifs écrits des clients (internes ou externes). Ce n'est pas difficile à obtenir, c'est pertinent et c'est une coche facile, mais pas dénuée de sens sur la liste.

1
Nat