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.
Afin de mettre en place des KPIs qui permettent d'évaluer la qualité d'un projet DevOps nous recommandons de :
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é.
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.
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 :