CircleCI

Produit & Ingénierie

Cinq KPIs CircleCI sélectionnés pour mesurer la performance de livraison logicielle par développeur, ancrés dans le cadre DORA, avec les critères de sélection rendus explicites.

5 indicateurs disponibles

Indicateur Objet Type Formule Unité
Deployment Frequency Number of successful workflow runs per week on the default branch per developer. Workflow Résultat COUNT count
Change Failure Rate Ratio of failed workflow runs over total runs on the default branch per developer. Workflow Résultat COUNT_RATIO %
Mean Time to Recovery Average time from a failed workflow to the next successful run on the same branch per developer. Workflow Résultat AVG(recovery_duration_hours) heures
Mean Pipeline Duration Average duration of workflow runs per developer over the reporting window. Workflow Résultat AVG(duration_hours) heures
Time to First Green Average time from the first pipeline trigger on a branch to the first successful run per developer. Pipeline Prédictif AVG(time_to_first_green_hours) heures

CircleCI expose plusieurs types d'objets via son API : pipelines, workflows, jobs et métriques agrégées au niveau du projet et du workflow. Cette intégration se concentre sur les workflows et les pipelines, qui constituent l'unité fondamentale d'activité de livraison et la source la plus directe d'indicateurs de performance par développeur. Cinq KPIs ont été retenus, sélectionnés selon les trois mêmes critères appliqués à l'ensemble des intégrations : capacité d'attribution à un propriétaire, résistance au gaming et équilibre entre indicateurs avancés et retardés. L'attribution dans CircleCI s'opère via le login VCS du développeur ayant déclenché chaque pipeline, ce qui nécessite une étape de correspondance pour résoudre les noms d'utilisateur en adresses e-mail via GitHub ou GitLab.

Fiabilité de livraison : lire Deployment Frequency et Change Failure Rate ensemble

Deployment Frequency comptabilise le nombre d'exécutions de workflows réussies par développeur sur la branche par défaut sur une période donnée. Change Failure Rate mesure la proportion de ces exécutions ayant échoué. Ces deux indicateurs forment le premier axe du cadre DORA et sont délibérément conçus pour être lus en tension l'un avec l'autre. Une Deployment Frequency élevée seule ne dit rien de la qualité de ce qui est livré : un développeur qui déclenche dix déploiements par semaine dont la moitié casse le pipeline ne livre pas à deux fois le rythme de celui qui expédie cinq déploiements stables. À l'inverse, un Change Failure Rate faible obtenu en livrant rarement n'est pas un signe de discipline qualitative — il peut simplement refléter une aversion au risque. La combinaison des deux indicateurs distingue une cadence de livraison productive d'une instabilité précipitée ou d'une prudence excessive.

Change Failure Rate joue également le rôle d'indicateur contra-gaming principal sur Deployment Frequency. Parce que les déclenchements de pipeline sont directement sous le contrôle du développeur, un développeur sous pression pour augmenter sa fréquence pourrait le faire en poussant des commits triviaux ou en relançant des builds échoués. Change Failure Rate neutralise ce comportement : une inflation de volume artificielle sans amélioration qualitative se traduira par une dégradation du taux d'échec, rendant l'inflation visible dans les données.

Réponse aux incidents : Mean Time to Recovery comme signal comportemental

Mean Time to Recovery mesure le temps moyen écoulé entre un workflow échoué sur la branche par défaut et la prochaine exécution réussie déclenchée par le même développeur. Contrairement à Change Failure Rate, qui mesure la fréquence des échecs, Mean Time to Recovery mesure ce qui se passe après un échec : la rapidité avec laquelle le développeur détecte, diagnostique et résout la régression. Les deux indicateurs couvrent des dimensions comportementales distinctes. Une équipe peut afficher un faible taux d'échec et un temps de rétablissement dégradé — suggérant que lorsque des défaillances surviennent, elles sont complexes ou traitées avec peu d'urgence. Une équipe avec des échecs fréquents mais une récupération rapide peut refléter une culture d'itération soutenue avec une réponse aux incidents mature.

Mean Time to Recovery est borné par la fenêtre historique de 90 jours disponible via l'API Insights de CircleCI. Les régressions restant non résolues sur plusieurs périodes de reporting peuvent apparaître tronquées dans le calcul. Cette limite est structurelle et doit être notée lors de la comparaison de ce KPI entre des équipes ayant des pratiques de gestion des incidents différentes.

Efficience des pipelines et vitesse de la boucle de rétroaction

Mean Pipeline Duration mesure la durée moyenne d'exécution des workflows attribués à un développeur. Time to First Green mesure le temps nécessaire, depuis le premier déclenchement de pipeline sur une nouvelle branche, pour que ce développeur atteigne une première exécution réussie. Ces deux KPIs diffèrent dans ce qu'ils mesurent et dans la façon dont ils doivent être interprétés.

Mean Pipeline Duration est principalement un indicateur retardé de la qualité de l'architecture du pipeline. Un développeur dont les pipelines s'exécutent systématiquement longtemps n'est pas nécessairement moins productif, mais des pipelines longs imposent une boucle de rétroaction plus lente à chaque itération : chaque modification de code prend plus de temps à valider, ce qui se cumule en une friction structurelle sur la fréquence de livraison. Une augmentation soutenue de Mean Pipeline Duration, sans augmentation correspondante de la couverture de tests ou de la complexité des builds, est le signal que le pipeline lui-même a accumulé une dette technique — étapes inutiles, jobs redondants ou mise en cache non optimisée.

Time to First Green opère à un point différent du cycle de développement. Il capture la durée de la boucle de validation au début d'une nouvelle branche : la rapidité avec laquelle un développeur peut confirmer que son implémentation initiale est structurellement saine. Un Time to First Green court indique que le développeur écrit du code qui s'intègre proprement dès le premier essai, et que le pipeline fournit un retour rapide. Un Time to First Green long peut signaler des problèmes de configuration de l'environnement de développement local, de la configuration des tests ou de la complexité d'intégration. En tant que seul indicateur avancé de cette intégration, Time to First Green anticipe le rythme de livraison — un développeur qui obtient systématiquement un premier green rapide est positionné pour itérer plus vite tout au long du reste du cycle de vie de la branche.

Périmètre et limites de l'intégration

CircleCI enregistre les résultats d'exécution des pipelines mais ne mesure pas la qualité de ce qui est livré. Un déploiement réussi peut mettre en production une fonctionnalité qui fonctionne correctement ou une fonctionnalité qui générera des régressions ; les données du pipeline ne distinguent pas les deux. Change Failure Rate capture les échecs au niveau du pipeline — erreurs de build, échecs de tests, erreurs d'infrastructure — mais ne capture pas les incidents de production qui apparaissent après un déploiement réussi. L'écart entre le succès du pipeline et la fiabilité en production n'est pas visible dans les seules données CircleCI.

L'attribution dans cette intégration repose sur le login VCS de l'acteur ayant déclenché le pipeline, qui doit être résolu en adresse e-mail Human Bridge via un mapping GitHub ou GitLab. Tout pipeline déclenché par un bot, un compte de service partagé ou un système automatisé ne sera pas attribué à un développeur individuel. La fiabilité des KPIs par développeur dépend donc de la discipline de l'équipe concernant l'attribution des pipelines : les intégrations qui exécutent des déploiements automatisés sous un compte partagé sous-compteront systématiquement la contribution individuelle.