Site icon Blog de la Transformation Digitale

Les changements à l’ère de DEVOPS

ITIL propose un processus de gestion des changements destiné à ne mettre en production que des services éprouvés pour éviter les impacts négatifs sur les utilisateurs. A l’heure où les entreprises sont en recherche permanente d’agilité et où DEVOPS s’impose, l’approche ITIL semble dépassée. Mais est-elle vraiment dépassée où n’est-ce pas plutôt un échec de mise en oeuvre des meilleurs pratiques qui est en cause? Dans cet article, nous allons faire un gros plan sur ce que devrait être la gestion des changements. Et nous allons nous intéresser tout particulièrement au CAB (Comité Consultatif des Changements), mal utilisé le plus souvent.

Crédit © rawpixel.com 2018

La seule raison pour laquelle la plupart des personnes et des organisations ont entendu parler du CAB (Change Advisory Board) est qu’il est décrit dans la section sur la gestion du changement des publications ITIL. La plupart des organisations ont alors considéré que si le CAB est décrit dans ITIL, c’est qu’il est obligatoire. Souvent il a donc été mis en œuvre avec enthousiasme comme mécanisme de contrôle de la qualité dans les grandes entreprises. Pour beaucoup de professionnels des opérations non informatiques, le CAB est leur seul contact avec ITIL. Il en est d’ailleurs presque devenu synonyme. Cela signifie également qu’ITIL est lui-même devenu synonyme de douleur récurrente qui revient toutes les deux semaines…

Le conte des trois erreurs

Il en va de la gestion des changements comme de beaucoup d’autres domaines de l’informatique. Il y a une différence significative entre la théorie et la pratique. Pourtant, il est exact que la théorie (dans l’ITSM) a été (partiellement) construite sur la base des pratiques du monde réel. Cependant, il s’agit en fait d’une version idéalisée d’une tentative de description globale destinée à être adaptée à chaque situation particulière. Ce n’est en aucun cas une prescription de ce qui doit être mis en oeuvre tel quel dans les organisations.

Nous allons tenter de mettre tout le monde d’accord pour commencer à travailler à améliorer la pratique de la gestion des changement. A mon sens, c’est une approche à privilégier plutôt que d’essayer de se rassurer dans des initiatives de type «dénigrement» ou «coup de tête». Elles conduisent le plus souvent à des actions de type « paniqué-coupé-renommé-collé » à partir d’une théorie mal comprise..

Il y a trois domaines principaux dans lesquels la confusion à propos du CAB (Change Advisory Board / Comité Consultatif des Changements) et des pratiques de gestion du changement en général ont entraîné des dysfonctionnements importants. Nous allons essayer de les identifier avant de les comprendre dans le détail..

Survol des trois erreurs

Tout d’abord, il y a beaucoup d’incompréhension quant à la signification de la lettre «A» dans l’acronyme «CAB». Deuxièmement, il y a également une incompréhension quant aux changements qui devraient «passer par le CAB». Troisièmement, il existe une confusion relative à la séparation des pratiques de gestion des changements et des pratiques de gestion des mises en production. Cela fait beaucoup pour un seul processus, certes majeur, parmi les 25 processus décrits dans les publications ITIL 2011.

Commençons par rappeler quelques notions issues d’ITIL, mais souvent incomprises :

1 – « A » pour « Advisory » (conseiller)

Comme son nom l’indique, le CAB (Comité Consultatif sur les Changements) a pour objectif de conseiller sur l’évaluation des changements. Il est utile principalement lorsqu’il s’agit de changements à haut risque ou de changements à grande échelle qui vont au-delà du champ de perception d’une équipe particulière. Dans ce cas de figure, ils nécessitent la coordination et la gestion de situations complexes. Il faut alors faire face à des priorités conflictuelles et faire des choix en raison de coûts ou de délais. Le rôle du CAB, dans de telles situations, est essentiel car il permet de recueillir les avis de toutes les parties prenantes.

Pour diverses raisons, le mot «Advisory» (Consultatif) est devenu «Approval» (Approbateur) dans de nombreuses entreprises. Le CAB s’est alors transformé en un mécanisme de création de retard sans valeur ajoutée. Il est censé être là pour des raisons de qualité, mais il atteint rarement son objectif. La différence entre les mots est loin d’être seulement une question pédante de sémantique :

Un mode de fonctionnement inefficace qu’il faut absolument améliorer

De plus, les CAB, dans les entreprises, ont souvent tendance à être statiques. C’est toujours même groupe de managers qui discute de tous les changements qui leur sont apportés, quels que soient l’équipe / l’application / le service concerné. Ils invitent parfois les auteurs de RFC (Request For Change / Demande de Changement) ternes et volumineuses à y ajouter un peu de couleur. Cette approche introduit un niveau d’intermédiation qui perd beaucoup de détails.  Par conséquent le risque est grand de créer un type de pratique, fonctionnel techniquement mais défaillant dans la pratique. L’absence d’avis est une chose, mais l’échec en matière d’approbation en est une toute autre.

La pratique consistant à utiliser des RFC dans l’entreprise semble davantage venir d’un livre de recettes que de l’ITSM. La dynamique de la mise en œuvre repose alors sur un examen minutieux afin de s’assurer que tous les champs du formulaire sont remplis. Elle ne repose pas sur des conseils pertinents. En effet, souvent, les RFC contiennent des informations destinées au CAB. Elles ne contiennent pas les questions et les réponses de / à la personne ou l’équipe recherchant un avis.

Cela ne veut pas dire que des contrôles de qualité ne doivent pas être mis en place. Cependant un mécanisme intervenant tardivement dans le jeu, de type Potemkin, est plus susceptible de gêner que d’aider l’entreprise à atteindre ses objectifs. La réduction du nombre d’erreurs est alors obtenue en évitant les changements plutôt qu’en améliorant la résilience du système. En effet, la dynamique est tellement lourde, coûteuse et chronophage que les « petits » changements seront rejetés. Ceci peut souvent conduire, en retour, à un besoin de changements de grande ampleur. C’est notamment le cas  lorsque le système a dépassé sa date de péremption et échoue sur plusieurs fronts simultanément.

Pour améliorer les pratiques dans ce domaine, une réduction réfléchie et consciente des intermédiaires est nécessaire. Ainsi l’évaluation de l’impact et la prise de décision seront rapprochées du lieu où le travail est réalisé. L’efficacité, les coûts et les délais n’en seront qu’améliorés.

2 – Pratiques obsolètes et manque de confiance

Comme nous venons de le voir, le CAB peut être un élément utile de la gestion des changements pour certains types de changements. Il sera beaucoup moins utile pour d’autres. Notez bien que je dis «peut être», ce qui signifie que le CAB est facultatif et en aucun cas obligatoire. Il ne devrait être introduit que s’il est vraiment utile. Sa conception, sa portée, son rôle et sa valeur doivent être réexaminés de manière continue.

Parmi les autres raisons, il y en a deux concernant le «CAB abusif» que je voudrais évoquer ici. La première concerne les pratiques d’audit. Il s’agit de l’exigence de documenter et d’approuver chaque changement. Il est alors tentant de considérer le CAB comme la seule / meilleure méthode pour y parvenir. La première partie de cette exigence est plutôt raisonnable. Pourquoi ne voudrions-nous pas garder la trace des changements? La deuxième partie, par contre, est un exemple de prédominance du « comment » sur le « pourquoi ». Cette exigence est souvent tellement enracinée qu’elle ressemble à une loi intangible. Elle élimine alors d’autres méthodes de travail qui permettraient d’atteindre le même résultat, mais avec un fonctionnement différent.

Les pratiques obsolètes pour satisfaire les auditeurs

Demander au CAB de signer chaque demande de changement a peut-être été le seul moyen pour l’organisation de répondre aux exigences de la vérification par le passé. Ce n’était certainement pas une préconisation figurant dans les directives ITIL. Il suffit de voir, par exemple, l’autorité de changement et la notion de changement standard. Cela a, très probablement, satisfait les objectifs de la gestion des risques, sur papier uniquement. Et finalement cela a été considéré comme suffisant.

Du matériel coûteux, des temps d’approvisionnement longs et des temps de planification encore plus longs ont rendu les approches, idéales d’un point de vue théorique, plutôt populaires. Cependant, le monde a changé.  La plupart des entreprises disposent maintenant d’un soutien suffisant pour investir dans les méthodes et les pratiques informatiques modernes. Il n’est donc plus nécessaire de continuer à jouer ainsi sur le registre de la gestion des risques.

Evitons donc de compter sur des revues de qualité souvent gérées par des personnes ignorantes du contexte. Nous pouvons plutôt utiliser des pratiques d’automatisation, dans lesquelles la documentation détaillée de chaque changement est fournie par défaut. Outre l’amélioration de la qualité du service, nous disposerons alors d’une grande quantité d’informations, plus fiables. Et nous pourrons fournir ces informations aux auditeurs qui seront satisfaits.

L’option d’automatisation s’applique principalement, à priori, aux changements logiciels. Or, dans le contexte du cloud, ceux-ci incluent des éléments de gestion d’infrastructure (« infrastructure as a code »). Mais ensuite, dans quelle mesure est-il raisonnable de prendre en compte les changements logiciels individuels dans le cadre de la gestion «traditionnelle» des changements?

Le manque de confiance dans les équipes

La deuxième raison pour laquelle les CAB sont si populaires et pourtant mal utilisés est la méfiance. Derrière cela se cache aussi la nécessité de sauver ses fesses au cas où quelque chose se passerait mal. Le CAB devient alors un mécanisme pour imposer un contrôle sur des équipes de spécialistes. En effet, sinon, comment savoir si elles travaillent exactement comme on le souhaite?

Dans ce scénario, plutôt que d’utiliser le concept d’autorité de changement et de laisser les équipes les plus proches du travail prendre des décisions, toutes ces décisions sont transférées au niveau du CAB. C’est là que les responsables du responsable du responsable de l’équipe discutent et décident des changements acceptables. Même si le pouvoir décisionnel revient au CAB, c’est toujours le demandeur du changement qui est tenu pour responsable. C’est-à-dire que, si quelque chose se passe mal, le CAB pourra prétendre avoir demandé des informations complètes et justes. Alors, la raison pour laquelle des résultats inattendus sont obtenus sera qu’il disposait d’informations erronées ou incomplètes. Et, on vous expliquera que dès qu’on identifiera qui est l’individu responsable du fiasco, on s’assurera que cela ne puisse plus se reproduire…

3 – La bataille du RAP

La troisième incompréhension porte sur la confusion entre les changements et les mises en production. Mais elle renvoie également au défi que pose la portée du CAB. La gestion du changement détermine si quelque chose doit être changé et quand. La gestion des mises en production vérifie si le package de modifications, quel que soit son contenu, est prêt à être mis en production et à quel moment. Par souci de simplicité, examinons la gestion des mises en production dans le cadre de la gestion des changements…

La manière dont le CAB a été conçu dans de nombreuses organisations pour les changements liés aux logiciels est en réalité un processus d’approbation de mise en production (RAP : Release Approval Process). D’ailleurs ce processus est assez amusant. Plutôt que d’évaluer l’état de préparation à la mise en production et au déploiement (ce qui est à nouveau une tâche à effectuer, de préférence de manière automatisée avec beaucoup de retours), le RAP/CAB évalue la viabilité du changement lorsque le travail sur ce changement a déjà commencé, ou même le plus souvent, a déjà été achevé. C’est évidemment bien trop tard!

Les processus de prise de décision pour les changements (si une modification logicielle est nécessaire) et pour les mises en production (comment valider au mieux la modification) sont déconnectés et mal alignés. Dans ces organisations, la pratique de gestion du changement – bien que généralement non dénommée ainsi – s’appuie sur« le métier», et« l’informatique » et permet de prendre les commandes une fois la décision prise, de livrer ce qui était prévu (mais rarement décrit correctement), et d’assurer qu’aucune perturbation ne surviendra sur aucun service.

Il y a trop de dysfonctionnements dans ce scénario pour pouvoir les détailler et les intégrer dans cet article. Aussi, ce que je voudrais faire, c’est proposer un point de vue différent pour examiner les changements logiciels. Cela permettra peut-être de supprimer en partie la tension entre la communauté ITSM et la communauté DevOps.

Etendre le mandat

Examinons le développement logiciel agile avec intégration continue (CI: Continuous Integration) et livraison continue (CD: Continuous Delivery). En principe, nous pouvons supposer que le code injecté dans le pipeline CI / CD a été pré-approuvé. C’est-à-dire que le développeur a le mandat de travailler dessus. Il nécessite seulement de passer les contrôles de qualité (automatisés) avant d’atteindre l’environnement de production.

Cette approbation préalable ne signifie pas que quiconque a demandé que le travail de développement soit effectué soit sûr à 100% que ces changements spécifiques produiront les résultats escomptés. Pas plus que le développeur n’est totalement convaincu que le code passera les revues qualité sans problèmes. Le temps de retour pour le développeur se compte en minutes / heures. Il se compte pour le client en heures / jours / semaines, en fonction de la conception du pipeline et de la méthodologie de développement utilisée. Le délai de retour est donc extrêmement long et ne correspond pas aux besoins des métiers.

Si le client a déjà décidé qu’il souhaite le changement, cette décision doit en réalité être une décision du CAB. Mais ce n’est pas le CAB tel qu’il est mis en oeuvre habituellement. Ainsi, plutôt que d’essayer même d’évaluer manuellement chaque version logicielle en cours de traitement dans un CAB (ou RAP), les équipes chargées de la gestion des changements et des mises en production doivent alors travailler ensemble pour concevoir et améliorer le pipeline CI / CD. et des revues qualité automatisées.

Est-il raisonnable de démanteler le CAB?

Quelle que soit la conception de votre CAB actuel ou futur, la question clé à garder à l’esprit est la suivante: aide-t-il à obtenir les résultats attendus des métiers?

Une Gestion des Changements efficace ne peut pas être limitée à un portique de sécurité pour l’accès au service informatique. Cela signifie que la gestion du changement n’est pas basée uniquement sur le CAB. Le CAB n’est pas le processus de gestion des changements. C’est juste un mécanisme qui peut être utile au sein du processus. Il reste probablement beaucoup d’autres choses nécessitant une amélioration dans votre gestion du changement.

S’agissant de votre CAB, s’il s’agit d’un groupe de personnes qui ne connaissent pas les détails des changements / mises en production dont ils discutent mais qui prennent cependant des décisions en évitant de répondre de ces décisions, alors c’est clairement un CAB à éliminer d’urgence.  En effet, ce n’est pas du tout le CAB, préconisé par les bonnes pratiques, dont votre entreprise a besoin..

Mais si c’est un groupe de personnes qui peuvent conseiller sur les changements planifiés, aider à la coordination et à la hiérarchisation, et qui sont là pour aider l’organisation plutôt que leur carrière personnelle, alors conservez-le. Mais améliorez-le de façon continue également.

Vous souhaitez évaluer la viabilité des changements? Alors, vous devez le faire en vous appuyant sur des personnes qui comprennent ces changements. C’est la viabilité des Mises en Production que souhaitez évaluer? Alors, cette tâche devrait être effectuée par des personnes qui comprennent ces Mises en Production.

Pour améliorer la qualité, n’oubliez jamais que vous devez réduire les intermédiaires et automatiser autant que faire se peut.

 

Crédits : cet article est inspiré d’une publication de Kaimar Karu

Quitter la version mobile