REDPIXEL - stock.adobe.com

Comment bien mesurer la productivité des développeurs

Se concentrer sur les statistiques liées à l’activité des développeurs peut avoir des effets délétères sur l’expérience, la productivité et la rétention des développeurs.

Que l’approche d’une organisation en matière d’ingénierie logicielle soit Waterfall, Agile ou DevOps, que les mises à jour soient planifiées ou continues, la compréhension de la productivité de l’équipe de développement logiciel est essentielle au processus de planification.

La productivité des développeurs comporte de nombreuses facettes. La mesurer efficacement n’est donc pas chose aisée. Si elle est mal réalisée, elle peut entraîner une planification imprécise, provoquer des frictions inutiles entre les membres de l’équipe et conduire à l’épuisement professionnel, à une baisse du moral et potentiellement à la perte de membres du personnel hautement qualifié.

Quand elle est alignée avec les priorités de l’organisation et de ses membres, elle peut aider les responsables à soutenir leur équipe et à éviter d’imposer un stress supplémentaire aux développeurs.

Qu’est-ce que la productivité des développeurs ?

La productivité des développeurs fait généralement référence à l’efficacité des équipes dans la création de logiciels de haute qualité. Elle vise à apporter un gain commercial significatif dans le cadre d’un délai préétabli.

Avantages et défis liés à la mesure de la productivité des développeurs

Une planification éclairée des versions et une amélioration continue des produits logiciels sont les principaux avantages pour l’organisation. Il est possible de suivre les performances individuelles des développeurs. Les responsables peuvent utiliser ces données pour connaître les forces et les faiblesses de chacun d’entre eux. La mesure agrégée de la productivité de l’équipe peut aider à établir une feuille de route de sortie de mises à jour.

Or la nature créative du développement et la multiplicité des tâches – perçues de manière objective et subjective – rendent difficile l’application d’une approche unique. Idéalement, il faudrait multiplier les types de métriques alors même que la quantification du travail n’est pas évidente.

Par exemple, suivre le rendement des développeurs en fonction du nombre de lignes de code écrites ne permet pas de couvrir tout ce qu’un programmeur fait. Surtout, cela masque certains aspects comme la qualité du code ou le traitement de la dette technique.

Quelle différence entre la productivité et l’expérience du développeur ? (DevEx)

Certaines organisations abordent ce dilemme en s’intéressant à l’expérience des développeurs (DevEx), plutôt qu’en se concentrant sur leur productivité objective. DevEx est une approche qui consiste à mesurer l’expérience professionnelle des développeurs, c’est-à-dire ce qu’ils pensent de leur travail quotidien et des problèmes qui affectent leur rendement. Elle implique des aspects plus subjectifs et qualitatifs, notamment la collaboration, la culture et la charge cognitive, qui augmente avec les changements fréquents de contexte.

Ici, trois indicateurs clés sont pris en compte. Il y a d’abord le « l’état du flux » (flow state), un moyen d’évaluer si le développeur pense bénéficier de tous les moyens (matériels, immatériels) lors de ses temps de concentration. Ensuite, la charge cognitive vise à estimer le niveau d’effort mental dépensé pour chaque tâche. Enfin, une boucle de rétroaction doit aider à comprendre la « qualité et la rapidité » du retour après l’accomplissement d’une tâche par le développeur.

Comment ne pas mesurer la productivité des développeurs

Contrairement à ce que certains pourraient croire, la mesure de la productivité est plus utile par équipe qu’individuellement. Le suivi de la productivité individuelle a sa place dans la gestion des performances, mais sert de préférence à améliorer les processus et l’allocation des ressources.

Un marquage à la culotte trop important est contre-efficace. Il peut saper le moral de toute l’équipe et créer des tensions qui auront un impact sur la coopération, la cohésion et la qualité du rendu.

5 étapes pour mesurer efficacement la productivité des développeurs

Les étapes pour mesurer la productivité des développeurs sont les suivantes :

1. Déterminez comment utiliser les métriques

Clarifiez les objectifs de la supervision de la productivité des développeurs. Certains objectifs peuvent être de mieux comprendre les goulets d’étranglement, de réduire l’épuisement professionnel ou d’améliorer la fréquence de déploiement. Cette compréhension est essentielle, car elle permettra d’adopter la bonne approche et d’identifier les indicateurs pertinents.

2. Développer une stratégie viable

Il s’agit du plan définissant les types d’indicateurs que l’équipe collectera et la manière dont elle gérera leur collecte et leur utilisation. La stratégie devrait être comme suit :

  • Transparente. Définir qui a accès aux données de performance dans le cadre de la stratégie et comment les données influencent la prise de décision.
  • Adaptée au contexte de l’équipe. S’assurer que la stratégie définie est adaptée à la maturité globale de l’équipe, à sa pile technologique et à son modèle de livraison.
  • Un équilibre entre mesures quantitatives et qualitatives. Les indicateurs quantitatifs peuvent inclure la fréquence de déploiement, le nombre de pull requests ou la complexité du code source. Les aspects qualitatifs concernent la facilité perçue de la livraison logicielle et l’engagement ou la satisfaction des employés. Les équipes peuvent utiliser des éléments tels qu’un tableau de bord, afin d’orchestrer le cycle de développement ou une enquête DevEx trimestrielle et supervisée.

3. Sélectionnez les indicateurs de productivité réels des développeurs

Voici quelques-uns des frameworks de mesure les plus populaires :

  • DORA. Se concentre sur l’appréciation des processus DevOps, notamment la fréquence de déploiement, le délai de réalisation, les taux d’échec des changements et le temps moyen de restauration du service. DORA signifie « DevOps research and assessment metrics » (indicateurs de recherche et d’évaluation DevOps). Les indicateurs DORA sont particulièrement adaptés aux équipes qui utilisent les méthodologies CI/CD ou DevOps et qui souhaitent se concentrer sur l’optimisation de la livraison de logiciels. À utiliser avec parcimonie, prévient Google.
  • SPACE. Suit des dimensions telles que la satisfaction et le bien-être, les performances, l’activité, la communication et la collaboration, ainsi que l’efficacité et le flux. Les indicateurs SPACE spécifiques peuvent inclure le nombre de déploiements, le temps de révision du code ou la participation à la réponse aux incidents.
  • Mesures de la chaîne de valeur (Value Stream). Utilise des données représentant la chaîne de valeur pour suivre le flux des unités de développement. Elles aident les équipes à visualiser le flux de travail (de l’idée à la livraison) et à examiner des éléments tels que les transferts et les retards, ainsi que le temps à valeur ajoutée (c’est-à-dire le temps consacré à des activités qui apportent directement de la « valeur »).
  • Mesures du flux. Évaluent l’efficacité et l’efficience de l’avancement du travail à travers un système. Parmi les exemples, citons l’efficacité du flux (le rapport entre le temps de travail actif et le temps total du processus) et la charge du flux (la quantité de travail en cours). L’estimation des points d’histoire peut également servir à mesurer la vitesse du flux, c’est-à-dire le nombre de tâches accomplies au fil du temps. L’indicateur est parfois moins pertinent quand il sert à anticiper la charge de travail du développeur.
  • Indice de vélocité des développeurs. Vise à déterminer la capacité des équipes Agile à fournir rapidement des fonctionnalités de haute qualité. Il est particulièrement adapté comme référence de haut niveau pour la productivité technique dans différentes unités commerciales. Il sert à évaluer l’utilisation des outils de développement et l’adoption des technologies, afin de déterminer dans quelles circonstances l’environnement de travail favorise une livraison rapide et de qualité.
  • Score de capacité des talents. Examine le potentiel de leadership et de gestion. Cela peut aider les équipes de direction à aligner les métriques d’ingénierie sur le développement des talents et servir à répartir les talents de manière appropriée en fonction des exigences du projet.
  • Métriques DevEx. Note la perception des développeurs concernant les outils, les flux de travail et la culture. Les indices DevEx peuvent examiner la charge cognitive, l’expérience d’intégration et la qualité de la collaboration à travers des enquêtes, l’analyse des sentiments, la cartographie du parcours des développeurs et le score interne de recommandation nette.

4. Communiquer ouvertement sur la stratégie de mesure

Les équipes doivent comprendre pourquoi les indicateurs sont collectés et comment ils seront utilisés. Négliger cette étape aura un impact négatif sur le moral de l’équipe, ce qui affectera la productivité. Expliquez clairement les objectifs des indicateurs à l’équipe.

5. Examiner les résultats et affiner l’approche si nécessaire

Utilisez l’analyse des contributions pour mesurer l’impact des différents types d’initiatives sur la productivité. Impliquez les développeurs dans l’affinement de la stratégie, en commençant peut-être par une petite équipe pilote, puis en élargissant le projet en même temps que la stratégie prend forme.

L’aspect le plus important de la mesure de la productivité des développeurs est d’utiliser ces KPI dans un but d’amélioration continue. Ne vous concentrez pas sur les indicateurs clés eux-mêmes, mais sur la façon dont ils reflètent l’expérience des développeurs. Utiliser cette expérience pour apporter des ajustements qui amélioreront leur environnement de travail est la clé pour encourager et soutenir la productivité.

Gerie Owen est responsable de l’ingénierie QA chez Roobrik. Elle est conférencière et autrice sur des sujets liés à la technologie et aux tests. Elle est une Scrum Master certifiée.

Pour approfondir sur DevOps et Agilité