Publié le 30 novembre 2021, mis à jour le 14 septembre 2022.
Dans le monde de la gestion de projet, on a pour objectif de délivrer des projets de qualité, le plus rapidement possible avec un ROI positif. Bien que ces objectifs soient communs à tous projets, les enjeux associés pour y parvenir sont uniques à chaque industrie.
Dans l'écosystème DevOps, on s'intéresse au monitoring de KPIs pour mesurer la qualité, au niveau d'autonomie des développeurs pour quantifier le ROI et à la fluidité de communication des équipes pour éviter les retards.
Cet article propose des conseils pratiques pour aider les managers DevOps à mettre en places des stratégies efficaces pour faire face à ces trois enjeux.
Comment s'assurer de la qualité d’un projet DevOps ?
Établir des KPIs - Pourquoi ?
Il est nécessaire d'avoir des KPIs DevOps clairs pour établir une stratégie de gestion de risques au sein d'une entreprise. Par exemple, on associe souvent un risque élevé à une infrastructure de faible qualité, car un crash de l'application peu impliquer un manque à gagner conséquent. Il en va de même pour les failles de sécurité critique.
Les KPIs sont également très utiles pour visualiser les progrès effectués par l'équipe. Les objectifs basés sur les KPIs sont le meilleur moyen de suivre l'avancée et la réussite d'un projet. Cela permet d'avoir une visibilité sur l'écart entre l'objectif à atteindre et la situation actuelle.
Le temps des ingénieurs DevOps est précieux, il est important d'investir leur énergie dans les services les plus importants pour votre entreprise. Des KPIs DevOps clairs peuvent vous aider à déterminer le travail à prioriser.
Dans le livre "The Site Reliability Workbook" l'équipe SRE Google explique qu'au centre de leur stratégie se trouve un KPI - SLO (Service level objectives). Pour Google définir un objectif de service chiffré est essentiel. Cela leur permet de prendre des décisions en matière de fiabilité qui s'appuie sur des données concrètes.
Comment établir des KPIs ?
Afin de mettre en place des KPIs qui permettent d'évaluer la qualité d'un projet DevOps nous recommandons de :
- Sélectionner des KPIs adaptés au cadre du service et qui permettent de mesurer la qualité. Les indicateurs les plus fréquemment retrouvés dans les projets DevOps sont :
- Le % de disponibilité de l'application - c'est le KPI le plus facile à traquer
- Le MTTR (Mean Time to Restore) - c'est-à-dire le temps moyen pour relancer le service quand celui-ci est interrompu
- Le délai d'exécution - c'est-à-dire le temps moyen pour livrer en production une modification de code.
- Le nombre de failles de sécurité - c'est-à-dire le nombre de failles tolérées suite à un pentest
- Évaluer les risques pour chaque KPI afin de s'accorder sur un niveau minimum en dessous duquel on identifie un risque critique ou majeur ;
- Mesurer les KPIs définis dans l’état actuel d'avant-projet ;
- En s'appuyant sur les risques identifiés et l'état actuel du service, choisir les priorités pour le projet ;
- Pour chaque KPI, définir des objectifs à atteindre grâce au projet DevOps.
- S'assurer que l'équipe de développement et l'équipe DevOps sont alignées sur les objectifs ;
- S'assurer que l'équipe DevOps investit du temps dans des outils de monitoring et d'alerting adapté pour pouvoir mesurer les KPI au fur et à mesure du projet.
Comment s'assurer du ROI d'un projet DevOps ?
Rendre les développeurs autonomes - Pourquoi ?
Afin de calculer le ROI d'un projet, il faut pouvoir déterminer le gain lié à cet investissement. Les gains associés à un projet DevOps sont le plus souvent liés à un accroissement de la vitesse de mise en production des développeurs.
Afin d'augmenter la vitesse de mise en production, il faut pouvoir faciliter le travail du développeur tout en leur faisant gagner en autonomie. Un développeur autonome n'est plus dépendant des ingénieurs DevOps pour effectuer ses tâches, il gagne alors en productivité et augmente ainsi le gain d'investissement.
Pour rendre un développeur autonome, l'ingénieur Devops, automatise un maximum de tâche, diminuant ainsi le besoin de ressources humaines. Il s'assure également que les documents nécessaires sont accessibles et à jour pour que le développeur puisse régler les problèmes fréquents par lui-même et ainsi éviter de se retrouver bloqué.
Comment rendre les développeurs autonomes ?
- S'assurer que les User Story sont centrées autour de l'utilisateur final - dans le cas d'un projet DevOps il s'agit des développeurs.
- S'assurer que les tâches sont orientées vers un accroissement de la vitesse de mise en production. Par exemple en automatisant certains processus ou en diminuant les dépendances des développeurs vis-à-vis des ingénieurs DevOps.
- S'assurer que l'équipe prend le temps de créer de la documentation adaptée et de la mettre à jour. Organiser des workshops pour évaluer si la documentation permet au développeur de faire le geste en autonomie.
- Dédier du temps des ingénieurs DevOps au soutien des équipes de développements. Mettre en place des stratégies de suivies pour régler les problèmes rencontrés fréquemment par les développeurs.
- Mettre en place des questionnaires de satisfaction de développeur pour connaitre les problématiques qu'ils rencontrent.
Comment s'assurer qu'un projet DevOps reste dans les temps ?
Faciliter la communication des équipes DevOps - Pourquoi ?
La communication entre les développeurs (dev) et les ingénieures (Ops) dans un projet DevOps est primordiale pour rester dans les temps. Le DevOps est une collaboration entre plusieurs équipes interdépendantes et le nombre de dépendances entre ces équipes est élevé. De nombreux retards sont causés par des dépendances non levées en début de sprint.
À la différence d'autres projets digitaux, les projets DevOps sont principalement composés de techs (développeurs ou ingénieurs) qui comprennent les enjeux techniques. Les équipes se comprennent facilement, et il n'y a donc pas besoin de vulgariser ou de passer par des intermédiaires pour discuter des problématiques rencontrées.
En pratique, il n'est pas nécessaire pour eux de connaitre les fonctionnalités qui sont développées, ni même le rôle de chaque service. Toutefois, il est important de comprendre l'impact de ces services ainsi que les problématiques rencontrées par les développeurs.
Comment faciliter la communication des équipes DevOps ?
- Organiser des meetups informels entre les différentes équipes qui sont amenées à travailler ensemble pour construire une confiance réciproque et favoriser le sentiment d'appartenance au sein du même groupe.
- Impliquer les ingénieurs DevOps dans les événements des développeurs pour s'assurer qu'ils comprennent les problématiques et enjeux actuels des développeurs : les prochaines deadlines, les priorités, le workflow de mise en production, les chantiers de maintenance en cours, ...
- Bannir toutes demandes informelles des développeurs vis-à-vis des ingénieurs DevOps.
- Établir des objectifs communs entre développeurs et ingénieurs DevOps
- Mettre en place des flows pour tracker et lever les dépendances à temps
Afin de garantir un projet de qualité, livré rapidement avec un bon ROI, les managers de projets doivent garder en tête certains enjeux clefs. Dans le cadre des projets DevOps, ces enjeux sont :
- Le monitoring des KPIs
- Le niveau d'autonomie des développeurs
- La communication des équipes