#image_title

3 indicateurs clés pour mesurer la productivité des développeurs

Les organisations sont naturellement enthousiasmées par le potentiel des assistants de codage IA pour augmenter la productivité des développeurs de logiciels. Dans une récente enquête de GitLab, 83 % des personnes interrogées ont déclaré qu’il était essentiel de mettre en œuvre l’IA dans leurs processus de développement logiciel pour éviter de prendre du retard.

La promesse selon laquelle l’IA peut automatiser la plupart des développements logiciels ou au moins rendre les développeurs beaucoup plus productifs soulève la question de savoir comment la productivité des développeurs est mesurée. Indice : il ne s’agit pas de volume de code.

Alors que la plupart des mesures de la productivité des développeurs se concentrent sur des mesures de tâches telles que les lignes de code produites ou le nombre de validations de code, la productivité des développeurs ne peut pas être mesurée dans une seule dimension. Plusieurs dimensions de la performance des développeurs doivent être prises en compte pour mesurer avec précision la productivité des développeurs.

Tâche : une mesure trompeuse

La dimension tâche couvre la mesure la plus directe de la production individuelle d’un développeur : accomplir efficacement une tâche assignée dans un délai défini. Bien qu’apparemment simple, mesurer l’achèvement des tâches en tant qu’indicateur de la productivité peut s’avérer erroné – pour deux raisons.

Premièrement, les développeurs de logiciels travaillent généralement en équipes, les individus travaillant simultanément sur différents aspects du développement de logiciels. Par conséquent, mesurer les développeurs individuels à l’aide des mêmes mesures axées sur les tâches fournit une représentation inexacte de la productivité de l’équipe.

Deuxièmement, accomplir davantage de tâches n’est pas nécessairement le moyen le plus intelligent de résoudre un problème. Par exemple, des programmeurs moins qualifiés ou des assistants de codage IA peuvent produire de grandes quantités de code passe-partout. Par exemple, une étude récente d’un fournisseur a montré que les développeurs pouvaient terminer le codage d’un serveur Web en JavaScript 90 minutes plus rapidement avec l’IA que sans elle. C’était un résultat impressionnant, mais ils auraient pu réutiliser une abstraction de serveur Web existante pour créer le même résultat en quelques minutes.

La résolution de problèmes est une compétence essentielle pour tout développeur de logiciels, car il est régulièrement confronté à des défis complexes qui nécessitent des solutions innovantes. Les développeurs doivent être capables d’identifier avec précision les problèmes, de collaborer avec les membres de l’équipe pour générer des solutions potentielles et, en fin de compte, de choisir le meilleur plan d’action pour résoudre le problème.

Efficacité des développeurs individuels, qui nécessite une combinaison de compétences techniques, de pensée critique et de créativité, est une mesure plus optimale que le nombre de tâches accomplies. Dans un exemple célèbre, Bill Atkinson, le principal concepteur et développeur de l’interface utilisateur graphique de l’ordinateur Lisa d’Apple, a optimisé la routine de calcul de région de Quickdraw pour qu’elle soit six fois plus rapide et 2 000 lignes de code plus courtes. Sa contribution a défié la mesure de productivité d’Apple consistant à suivre chaque ingénieur en fonction de la quantité de code qu’ils écrivaient chaque semaine, en faveur d’une solution plus simple, plus rapide et plus efficace.

L’intégration de l’IA dans le processus de développement logiciel pour augmenter l’efficacité des développeurs, par exemple via l’automatisation des tests, la refactorisation du code et la documentation, peut libérer du temps aux développeurs pour qu’ils puissent entreprendre des travaux plus complexes qui apporteront une bien plus grande valeur aux organisations et aux utilisateurs finaux. Par conséquent, plus que jamais, mesurer les résultats, comme les lignes de code, n’est plus pertinent et nous devrions nous concentrer sur la mesure des résultats commerciaux.

Temps : la mesure de la vitesse

Les équipes de développement de logiciels savent que les pratiques de développement itératives surpassent les modèles traditionnels en cascade. Une cadence élevée conduit à des boucles de rétroaction étroites où les améliorations apportées au cours d’un cycle, comme une abstraction pour remplacer le code passe-partout, conduisent à d’autres améliorations dans les cycles ultérieurs.

Les mesures du temps sont une mesure objective. Dans le cadre de Google pour mesurer la productivité des développeurs, la rubrique DevOps Research and Assessment (DORA), trois des quatre métriques sont directement basées sur le temps :

  • Fréquence de déploiement (heures/jours/semaines/mois)
  • Délai pour les modifications
  • Il est temps de rétablir le service

Les métriques DORA mesurent les performances de l’équipe sur une période spécifique. Ils servent d’indicateurs clés de l’agilité, de l’efficacité opérationnelle et de la rapidité d’une équipe et reflètent la manière dont une organisation équilibre vitesse et stabilité logicielle.

Plus de six années de recherche menées par l’équipe DORA ont établi que ces mesures peuvent être utilisées pour identifier exactement où et comment s’améliorer, avec des cycles d’itération courts conduisant systématiquement à de meilleurs résultats pour les organisations de développement.

Les métriques DORA peuvent également révéler les domaines dans lesquels de mauvaises expériences de développement peuvent nuire à la vitesse des développeurs. Par exemple, une équipe de développement peut produire un code de qualité mais afficher de terribles métriques DORA en raison d’un processus de test et de déploiement sujet aux erreurs.

La solution ne consiste pas à demander à une équipe de développement talentueuse mais surchargée de travailler plus dur ; il s’agit d’un appel aux chefs d’équipe de développement pour qu’ils adoptent une vision globale du pipeline de développement et identifient les domaines dans lesquels des améliorations de processus peuvent être mises en œuvre. Par exemple, l’introduction de l’IA et de l’automatisation dans le processus de révision et de test du code peut améliorer les métriques DORA et les performances de livraison des logiciels.

Équipe : La mesure centrée sur l’humain

La dimension d’équipe considère les résultats commerciaux dans un contexte organisationnel plus large. Si les équipes de développement de logiciels doivent travailler efficacement ensemble, elles doivent également travailler avec des équipes d’autres unités commerciales.

Souvent, des facteurs non techniques, tels que le soutien des pairs, l’environnement de travail, la sécurité psychologique et l’enthousiasme au travail, jouent un rôle important dans l’augmentation de la productivité.

Un autre cadre est SPACE, qui est un acronyme pour satisfaction, performance, activité, communication et efficacité. SPACE a été développé pour capturer certaines des dimensions de la productivité les plus nuancées et les plus centrées sur l’humain. Les métriques SPACE, en combinaison avec les métriques DORA, peuvent combler les lacunes en matière de mesure de la productivité en corrélant les métriques de productivité aux résultats commerciaux.

McKinsey a découvert que la combinaison des métriques DORA et SPACE avec des métriques « axées sur les opportunités » peut produire une vision complète de la productivité des développeurs. Cela, à son tour, peut conduire à des résultats positifs, comme le rapporte McKinsey : une réduction de 20 à 30 % des défauts de produits signalés par les clients, une amélioration de 20 % des scores d’expérience des employés et une amélioration de 60 % des taux de satisfaction des clients.

Qu’essayez-vous d’optimiser ?

Tout comme les trois dimensions d’un cube contribuent toutes à son volume, les dimensions tâche, temps et équipe de la productivité des développeurs contribuent toutes à l’impact commercial total.

Même si les développeurs peuvent se concentrer sur les dimensions de tâches les plus facilement mesurables de leur productivité, telles que les lignes de code écrites par jour ou les demandes de fusion acceptées par semaine, ces mesures doivent être prises en compte dans le contexte commercial plus large, par exemple lorsqu’un plus grand nombre de lignes de code peut avoir un impact négatif. impact sur les dimensions de l’équipe et du temps.

L’importance des talents en ingénierie pour le succès d’une entreprise et la concurrence féroce pour attirer les talents des développeurs soulignent la nécessité de reconnaître que le développement de logiciels nécessite des mesures pour s’améliorer.

Groupe Créé avec Sketch.
www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite