LeanIX Continuous Transformation Platform®
Une plateforme SaaS Cloud Native qui répond aux normes les plus élevées en matière de sécurité et de protection des données
Voyez LeanIX en action
Que sont les métriques DORA et pourquoi en avons-nous besoin ? Découvrez comment mesurer et améliorer les performances DevOps en lien avec le Value Stream Management
La transformation numérique a transformé chaque entreprise en entreprise de logiciels, quel que soit son secteur d’activité. Les entreprises sont contraintes de réagir plus rapidement à l’évolution constante des besoins des clients, mais elles doivent aussi leur fournir des services stables. Afin de répondre à ces besoins, les équipes DevOps doivent constamment s’améliorer.
Les métriques DORA et Flow Metrics (les indicateurs de flux) répondent à ce besoin en fournissant des données objectives afin de mesurer la performance des équipes responsables de la livraison de logiciels et de favoriser l’amélioration des produits.
Ce document vous expliquera ces métriques en détail et comment celles-ci peuvent vous aider dans vos efforts de value stream management.
Les métriques DORA (DORA Metrics) sont utilisées par les équipes DevOps pour mesurer leurs performances et déterminer s’ils sont de bons ou de mauvais performeurs. Les quatre métriques utilisées sont la fréquence de déploiement (DF), le délai d’exécution des changements (LT), le temps moyen de récupération (MTTR) et le taux d’échec des changements (CFR).
Métrique | Explication |
Fréquence de déploiement (Deployment Frequency) | Il s’agit de la fréquence des mises en production réussies de logiciels. |
Délai d’exécution des changements (Lead Time for Changes) | Calcule le temps entre la réception de la demande d’un changement de code et son passage à un état déployable. |
Temps moyen de récupération (Mean Time To Recover) | Mesure le temps qui s’écoule entre une interruption due à un déploiement ou à une défaillance du système et le rétablissement complet de la situation. |
Taux d’échec des changements (Change Failure Rate) | Indique la fréquence à laquelle les modifications ou les correctifs apportés par une équipe entraînent des défaillances ou des pannes après le déploiement du code. |
L’acronyme DORA signifie "The DevOps Research and Assessment Team". Dans le cadre d’un programme de sept ans, ce groupe de recherche de Google a analysé les pratiques et les capacités DevOps et a pu identifier quatre paramètres clés pour mesurer les performances en matière de développement et de livraison de logiciels.
Cela a révolutionné le mode de fonctionnement des équipes DevOps, car ces métriques permettent d’obtenir plus de visibilité et fournissent des données réelles qui peuvent servir de point de départ pour des améliorations et des prises de décisions.
Afin d’établir ce guide DevOps utile, le groupe de recherche de Google a analysé les données de plus de 32 000 professionnels du domaine dans le monde. En plus d’un rapport officiel sur le DevOps, le groupe a également publié un livre blanc sur le retour sur investissement de la transformation DevOps ainsi que le livre intitulé « Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations », co-écrit par la chef d’équipe DORA Nicole Forsgren.
La section suivante se penche plus en détail sur les quatre métriques DORA et leur utilité pour la gestion de la chaîne de valeur.
Comme son nom le suggère, la Deployment Frequency (fréquence de déploiement) désigne la fréquence des mises en production réussies des logiciels. En d’autres termes, cette métrique mesure la fréquence à laquelle une entreprise déploie le code pour une application donnée.
Cet indicateur, qui se base sur le nombre total de déploiements par jour, a été développé à partir de concepts de fabrication qui mesurent et contrôlent la taille des lots de stocks qu’une entreprise livre.
Naturellement, les entreprises les plus prospères ont tendance à effectuer des livraisons plus petites et beaucoup plus fréquentes ; ou, dans le monde de DevOps, des déploiements plus fréquents, mais plus petits.
En général, un déploiement par semaine est la norme, tandis qu’une entreprise performante peut atteindre jusqu’à sept déploiements par jour. Bien entendu, le nombre standard de déploiements varie d’un produit à l’autre.
Par exemple, les applications qui demandent aux utilisateurs de télécharger la dernière Mise à jour sortent généralement une ou deux versions par trimestre tout au plus, alors qu’une solution SaaS peut être déployée plusieurs fois par jour.
Question | Très bon performeur | Bon performeur | Performeur moyen | Mauvais performeur |
À quelle fréquence votre organisation déploie-t-elle du code en production ou le met-elle à la disposition des utilisateurs finaux ? | Sur demande (plusieurs déploiements par jour) | Entre une fois par jour et une fois par semaine | Entre une fois par semaine et une fois par mois | Entre une fois par mois et une fois tous les six mois |
Source: 2019 Accelerate State of DevOps, Google
Lorsque les équipes DevOps se rendent compte qu’elles font partie d’une catégorie peu performante, elles peuvent mettre en place des processus plus automatisés pour tester et valider le nouveau code, ainsi que réduire le délai entre la rectification des erreurs et la livraison du code modifié.
Cette métrique mesure le temps qui s’écoule avant que le code validé n’atteigne la production. Alors que la fréquence de déploiement mesure la cadence de publication du nouveau code, le Lead Time for Changes (délai d’exécution des changements) mesure la rapidité de la livraison des logiciels. Il sert à mieux comprendre la durée de cycle DevOps et à savoir comment une augmentation des demandes est gérée. Plus le délai d’exécution des modifications est court, plus l’équipe DevOps est efficace pour déployer le code.
Pour mesurer les délais d’exécution des changements, deux données (ou horodatages) sont nécessaires : l’heure exacte de la réception de la demande et l’heure exacte du déploiement, soit la durée entre début et fin de produit. Le temps moyen est ensuite utilisé comme indicateur de la performance globale.
Question | Très bon performeur | Bon performeur | Performeur moyen | Mauvais performeur |
Combien de temps faut-il pour passer d’un code validé à un code fonctionnant avec succès en production ? | Moins d’une journée | Entre un jour et une semaine | Entre une semaine et un mois | Entre un mois et six mois |
Source: 2019 Accelerate State of DevOps, Google
Si l’on constate que les délais d’exécution des changements sont longs, les équipes DevOps peuvent mettre en place des processus de déploiement et d’examen plus automatisés et diviser les produits et les fonctionnalités en unités beaucoup plus compactes et faciles à gérer.
Le Mean Time to Recover (temps moyen de récupération) mesure le temps qu’il faut à un service pour rebondir après un échec. Peu importe les performances de l’équipe DevOps, des pannes ou des incidents imprévus peuvent survenir. Et comme les défaillances ne peuvent être évitées, c’est le temps nécessaire pour restaurer ou récupérer un système ou une application qui fait la différence.
Si une entreprise dispose d’un temps de récupération court, les dirigeants se sentent généralement plus à l’aise pour expérimenter et innover. En retour, cela crée un avantage concurrentiel et améliore les revenus de l’entreprise.
Cet indicateur est important dans le sens où il incite les ingénieurs à développer des systèmes plus robustes. Il est généralement calculé en suivant le temps moyen entre le signalement d’un bogue et le moment où la correction du bogue est déployée.
Question | Très bon performeur | Bon performeur | Performeur moyen | Mauvais performeur |
Combien de temps faut-il pour rétablir le service après un incident de service ou un défaut ayant un impact sur les utilisateurs ? | Moins d’une heure | Moins de 24 heures | Moins de 24 heures | Entre une semaine et un mois |
Source: 2019 Accelerate State of DevOps, Google
Afin d’améliorer leurs performances en matière de temps moyen de récupération, les équipes DevOps doivent pratiquer une surveillance continue et donner la priorité à la récupération lorsqu’une défaillance se produit. Il est également utile d’établir un plan d’action pour réagir immédiatement à toute défaillance.
Cette métrique mesure le pourcentage de changements qui ont été apportés à un code et qui ont ensuite entraîné des incidents, des retours en arrière ou tout autre type d’échec de production. Ainsi, le Change Failure Rate (taux d’échec des changements) est un véritable indicateur de la qualité et de la stabilité alors que les métriques précédentes, la fréquence de déploiement et le délai d’exécution des changements, n’indiquent pas la qualité du logiciel, mais juste son rythme de livraison. Selon le rapport DORA, les plus performants se situent entre 0 et 15 %.
Le taux d’échec des changements est calculé en comptant le nombre d’échecs de déploiement et en le divisant par le nombre total de déploiements. Lorsqu’il fait l’objet d’un suivi régulier, cet indicateur donne une idée assez précise du temps consacré à la correction des erreurs et des bogues par rapport à la livraison d’un nouveau code. Il va sans dire qu’une équipe DevOps doit toujours s’efforcer d’obtenir la moyenne la plus basse possible.
Question | Très bon performeur | Bon performeur | Performeur moyen | Mauvais performeur |
Quel est le pourcentage de modifications apportées au code entraînent une dégradation du service ? | 0-15% | 0-15% | 0-15% | 46-60% |
Source: 2019 Accelerate State of DevOps, Google
Afin de réduire les taux d’échec élevés, les équipes doivent réduire les échecs de déploiement et les pertes de temps dues aux retards.
Pourquoi toutes les équipes DevOps devraient utiliser les métriques DORA ? La réponse est assez simple : en l’absence de données permettant de mesurer les performances, il est difficile, voire impossible, d’apporter des améliorations.
Les métriques DORA décomposent les processus abstraits de développement et de livraison de logiciels pour les rendre plus tangibles et visibles, afin que les responsables de l’ingénierie puissent prendre des mesures pour simplifier les processus et accroître la valeur des logiciels.
Voici un aperçu des avantages les plus convaincants des métriques DORA.
Les entreprises qui rationalisent leur processus de développement et de livraison augmentent la valeur des logiciels et sont plus performantes à long terme. Le suivi des performances à l’aide des métriques DORA permet aux équipes DevOps d’établir des tendances qui permettent de prendre décisions éclairées qui vont dans le bon sens.
Ces dernières années, le Value Stream Management est devenu un élément important du développement des logiciels. Dans ce contexte, les métriques DORA jouent un rôle important car elles montrent quel type de valeur est fourni au client et quel niveau de performance est nécessaire pour atteindre les résultats métier souhaités. Ainsi, lorsque les équipes DevOps utilisent les métriques DORA, elles constatent généralement une augmentation de la valeur ajoutée au fil du temps.
Lorsque les performances sont mesurées, il y a de fortes chances qu’elles soient manipulées. Autrement dit, les personnes qui se sentent responsables d’un indicateur donné vont adapter leur comportement pour améliorer cet indicateur de leur côté. Bien que cela puisse avoir un effet de distorsion dans d’autres contextes, c’est en fait l’effet recherché du DevOps, il permet de mettre fin aux processus inefficaces et de réduire les gaspillages.
WEBINAIRE
Obtenez des informations pour comprendre comment donner des moyens aux équipes autonomes tout en soutenant la gouvernance et encourager le développement rapide de logiciels en automatisant la détection et le catalogage des microservices.
Si les métriques DORA constituent un excellent moyen pour les équipes DevOps de mesurer et d’améliorer les performances, leur utilisation n’est pas aussi simple en pratique. Pour la plupart des entreprises, les quatre métriques ne sont qu’un point de départ et doivent être adaptées au contexte de chaque application plutôt qu’à celui de l’équipe ou de l’organisation.
Voici quatre défis rencontrés lors de l’utilisation des métriques DORA :
Nous avons déjà mentionné les métriques DORA et leur importance pour le Value Stream Management. De nos jours, de plus en plus d’entreprises n’utilisent pas seulement les métriques DORA pour rationaliser et optimiser le développement et la livraison de logiciels, mais aussi la gestion de la chaîne de valeur pour bénéficier d’une visibilité de bout en bout sur l’ensemble du processus de production.
En contrôlant chaque étape (c’est-à-dire de la demande du client à la livraison du produit) à l’aide de la plateforme de gestion de la chaîne de valeur appropriée, telle que LeanIX VSM, cette technique de gestion permet de s’assurer que la valeur totale du logiciel est livrée au client de la manière la plus efficace possible.
À ce jour, DORA est le meilleur moyen de visualiser et de mesurer les performances des équipes d’ingénieurs et DevOps. Cependant, les entreprises ne doivent pas s’arrêter là. Afin de libérer toute la valeur que le logiciel peut apporter au client, les métriques DORA doivent s’inscrire dans le cadre plus large du Value Stream Management.
En reliant les catalogues de services, la planification agile et les plateformes de livraison par une plateforme telle que la solution LeanIX Value Stream Management, toute entreprise développant des logiciels bénéficiera d’une vue d’ensemble lui permettant de réduire les inefficacités et de simplifier le développement et la livraison de logiciels.
Découvrez les métriques essentielles qui aident les DevOps, les CTO, les chefs de produit et les responsables de l'ingénierie à améliorer l'efficacité de l'ingénierie.
Que sont les métriques « crawl », « walk », et « run » ?
Comment les mesurer ?
Quelles sont les sources permettant de suivre ces métriques ?
Quel est l’impact potentiel de chaque métrique ?
Que sont les métriques DORA ?
Les métriques DORA (DORA Metrics) sont utilisées par les équipes DevOps pour mesurer leurs performances et déterminer s'ils sont de bons ou de mauvais performeurs. Les quatre métriques utilisées sont la fréquence de déploiement (DF), le délai d'exécution des changements (LT), le temps moyen de récupération (MTTR) et le taux d'échec des changements (CFR).
Qu’est-ce que la fréquence de déploiement ?
La Deployment Frequency (fréquence de déploiement) désigne la fréquence des mises en production réussies des logiciels. En d'autres termes, il mesure la fréquence à laquelle une entreprise déploie le code pour une application donnée.
Qu’est-ce que le délai d’exécution des changements ?
Le Lead Time for Changes (délai d'exécution des changements) mesure la rapidité de livraison des logiciels. Il sert à mieux comprendre la durée de cycle DevOps et à savoir comment une augmentation des demandes est gérée.
Afin de mesurer les délais d'exécution des changements, deux données (ou horodatages) sont nécessaires : l'heure exacte de réception de la demande et l'heure exacte du déploiement, soit la durée entre le début et la fin d'un produit. Le délai moyen est ensuite utilisé comme indicateur de la performance globale.
Qu’est-ce que le taux d’échec des changements ?
Le Change Failure Rate (taux d'échec des changements) est une véritable mesure de la qualité et de la stabilité de la livraison des logiciels. Il désigne le pourcentage de modifications apportées à un code qui ont ensuite entraîné des incidents, des retours en arrière ou tout autre type d'échec de production.
Il est calculé en comptant le nombre d'échecs de déploiement et en le divisant par le nombre total de déploiements.
Qu’est-ce que le temps moyen de récupération ?
Le Mean Time to Recover (temps moyen de récupération) mesure le temps qu'il faut à un service pour rebondir après une défaillance. Il est calculé en suivant le délai moyen entre un rapport de bogue et le moment où le correctif est déployé.
Développez des produits numériques fiables plus rapidement