Comprendre les apports d'Accelerate dans l'évolution de nos systèmes
Pour aborder cet article, une connaissance préalable des principaux éléments que contient Accelerate est recommandée. Si vous n'êtes pas encore sensibilisé au sujet, vous trouverez une introduction et la vidéo d'une matinale sur le sujet dans cet article.
Pour un bref rappel, Accelerate est un livre. C'est une forme de compte rendu d'une étude qui cherche à définir ce qui permet aux organisations d'atteindre leurs objectifs avec le plus d'efficience. C’est le résultat de l’analyse de 4 années de State of DevOps. Cette étude met en évidence quatres indicateurs permettant de prédire la capacité des organisations à atteindre leurs objectifs. Plus précisément, les organisations les plus performantes, selon ces indicateurs, atteignent deux fois plus souvent leurs objectifs que les organisations les moins performantes.
Dans le cadre de la même étude, un certain nombre de capacités (méthodes, techniques, caractéristiques) souvent déjà bien connues sont énumérées. La particularité ici est que l'étude prédit que leur usage permet d'améliorer le niveau des indicateurs.
Mais qu’est-ce qu’Accelerate par rapport à un système d’information ? Quelle est la portée de cette étude dans nos systèmes ?
Dans cet article, nous aborderons le sujet de façon abstraite, libre de toute spécificité des systèmes techniques. Nous analyserons l'intégration entre le système d'information et le système de production, puis nous mettrons en perspective un système d'amélioration continue pour comprendre en quoi Accelerate peut nous éclairer.
Le système métier
Commençons par une vue conceptuelle du produit du processus de production, le système d'information métier : c'est un ensemble d'éléments humains et techniques qui prend en entrée des stimuli de son environnement et qui produit des effets dans ce même environnement.
Un système d'information : Ici on ignore son fonctionnement interne
Ce système d'information métier a un ou plusieurs buts. Par exemple, il permet de rendre service à ses utilisateurs, d'organiser des tâches, de générer du contenu, mais peut-être aussi de générer des profits. Si ces objectifs sont pertinents dans leur environnement, pour le système, l'efficacité, c'est à dire sa capacité à produire le résultat attendu, et l'efficience, sa capacité à maximiser les résultats avec un minimum de ressources, participent à la survie de l'organisation. Par exemple, un site de vente en ligne qui facilite le choix et la mise au panier de produits ciblés pour les utilisateurs et qui fournit un bon SAV lui permettra probablement d'être plus utilisé qu'un site concurrent moins efficace et/ou efficient sur le même marché. Si ce système comporte des erreurs, comme un design inadapté du parcours utilisateur, alors il réduit ses chances de survie. De la même manière, si l'environnement évolue (ex: les goûts des utilisateurs, ou encore la réglementation) alors le système peut devenir inadapté dans cet environnement.
Le système de production du système métier
On comprend alors que pour qu'un système participe à la survie d'une organisation, il doit être capable de s'adapter. Il faut alors qu'il puisse être observé dans cet environnement pour hypothétiser sur sa pertinence, concevoir son évolution, puis réaliser les-dites évolutions pour qu'une nouvelle version du système d'information soit produite. C’est une boucle d’apprentissage, avec une nouvelle version du SI comme résultat: le système est conçu avec des hypothèses, confronté à son environnement, et on récupère un feedback, c’est-à-dire de l’information, sur l’adéquation du système d’information à son environnement.
Système de production: produit de nouvelles versions du système d'information
On analysera alors si les bonnes entrées sont prises en compte (ex: faut-il compter le volume de biens produits ou le volume de biens vendus ?), ou si le résultat actuel est satisfaisant, et on formulera une hypothèse sur les fonctions nécessitant une évolution pour produire les résultats attendus. Une fois ces évolutions appliquées en production, l'environnement met à l'épreuve le système et les hypothèses, et un nouveau cycle d'apprentissage peut se produire.
Cela ressemble à ce que l'on connaît de nombreux systèmes de production de systèmes d’information, notamment à travers leur outils d’intégration continue, mais également des équipes qui s'assurent continuellement de la qualité et de l'adéquation du produit grâce à des méthodes inspirées du manifeste Agile (ex: "L’adaptation au changement plus que le suivi d’un plan"). On cherche à piloter au mieux les évolutions du SI.
Et qu'en est-il de l'efficience de ce système de production de SI ? Et de son efficacité ?
Pour bien comprendre les enjeux de cette question, observons deux problématiques. D'une part, si l'environnement évolue plus vite que le système d'information métier, alors ce dernier sera en sursis, et finira par devenir inadapté. Par exemple, si la concurrence (qui fait partie de l'environnement) propose de nouveaux produits pertinents plus rapidement que vous, alors c'est elle qui pourra définir les règles de ce marché et l’environnement vous sera moins favorable. De la même manière, si un système de service public tarde à fournir des services adaptés à la réalité de la société, alors le mécontentement augmentera, voire ce système sera probablement contourné.
Et d'autre part, si le système d'information est produit avec des défauts techniques notables, alors il devient impropre à son environnement, il n'y survivra pas. Par exemple, si vos produits et vos hypothèses de parcours utilisateur sont pertinents mais que la mise au panier échoue une fois sur deux, alors les clients pourraient être découragés de l'utiliser. Dans le cadre d'un système sans profit, tel qu'un service public, ce pourrait être le centre d'appel qui risque une surcharge, et le service finira par être impossible à rendre dans les temps. Cela pourrait mettre en faillite des entreprises ou mettre en danger des personnes. Dans ces deux cas, les systèmes socio-techniques de production comportent certainement des outils ou pratiques pour corriger le problème et/ou sa source, mais il faut également se poser la question suivante : qu'en est-il de notre façon d'aborder les problèmes ?
Le système d'amélioration continue du système de production du système métier
La capacité d’adaptation du système d’information n’est donc pas seulement le fait d’une bonne analyse de son adéquation à son environnement, elle est également dépendante de la qualité de l’adaptation et aussi de la vitesse d’adaptation. Elle est donc liée à l’efficacité et l’efficience de son système d’apprentissage.
Nous connaissons également ce type de système. On retrouve leur implémentation dans des pratiques telles que les rétrospectives de Scrum. Par exemple en se demandant si la qualité de notre travail ne bénéficierait pas d'une étape de revue par des pairs. Dans chacune de ces implémentations on retrouve la notion d'amélioration continue du processus de production du système d'information.
À chaque itération de la production du système, on évalue l’efficacité de tout ou partie de la chaîne :
- Mesure-t-on la pertinence du système de la bonne façon ?
- Les spécifications des incréments sont-elles claires ?
- Peut-on livrer plus vite ?
- Utilise-t-on des pratiques adéquates pour corriger la source de bugs récurrents ?
- Observe-t-on correctement la santé du système ?
- Peut-on s’organiser différemment ? Doit-on passer par un comité de validation ou intégrer la compétence dans l'équipe ?
Ces questions ne concernent pas directement le produit, le système métier, mais la façon de le produire, l’efficience du système de production du système métier.
Système d’amélioration du système de production du système d’information (oh une fractale)
C’est à partir de cette échelle, cette dérivée seconde de l’évolution du système d’information, qu’Accelerate nous donne les clés de la performance sur la durée. Par l’observation de la variation de quatre métriques proposées par cette étude, la chaîne de production du SI est continuellement ajustée, en vitesse et en stabilité, pour aider l’organisation à atteindre ses objectifs avec le plus d’efficience. Mais pourquoi aller jusque là ? Quel est l'apport concret d'une telle recherche d'excellence pour les organisations ?
Pour mettre en évidence cet apport, prenons un raccourci du chemin inverse pour comprendre ce que l’on accélère au final. À cette échelle donc, nous avons l’accélération. Mathématiquement c’est la dérivée d’une fonction de vitesse. Et cette vitesse, c’est celle du système d’observation, conception, et production du système métier. Cette fonction vitesse est elle même la dérivée d’une fonction de distance. Et ce déplacement, ou cette intégration, c’est celui d’un état du système métier vers un autre état. On accélère donc sa capacité d’adaptation, ou vu sous un angle mercantile, on accélère le Time To Market.
Nous y sommes : Ce que propose Accelerate, c'est donc une approche systémique d'amélioration de votre Time To Market, sur la base de méthodologies dont l'efficience a été prouvée.
Sortons un peu du conceptuel pour avoir un aperçu des processus touchés.
Portée des études sur nos systèmes
Pour améliorer cette efficience, un ensemble de “capacités” est mis en évidence dans cette étude (et jusqu’à ce jour cet ensemble est continuellement renouvelé). Cet ensemble est large au point d’aller d'un processus précis de développement à des modèles de culture ou encore d’observabilité des systèmes. On y retrouve des pratiques déjà bien connues comme le découplage en architecture ou d'autres moins connues comme les cultures organisationnelles de Westrum.
Une liste grandissante de capacités variées
Cependant, on comprend bien que la mesure d’éléments tels que la culture est impossible, ou serait au mieux réductrice vis à vis de leurs impacts réels dans l’organisation et sur son produit. Pour que la mesure soit plus simple et pertinente, l’analyse de la performance a donc été faite sur des résultats de la chaîne de valeur à améliorer. C'est à dire :
- la fréquence de livraison en production
- le temps d'arrivée d'une modification de code jusqu'à la livraison en production (car la genèse des idées et leur transformation en spécification sont plus difficiles à mesurer)
- le taux de modifications mettant en péril les services en production
- le temps de correction d'un incident de production
Le processus d’amélioration continue est donc le suivant : on relève régulièrement ces indicateurs (de façon automatique ou au jugé), et en les analysant on hypothétise sur la capacité qui permettrait d’améliorer ces indicateurs. Dans le temps, on analyse l’impact de cette mise en place sur les indicateurs et, à partir des résultats, un cycle d’apprentissage reprend.
On ne travaille donc pas immédiatement sur les hypothèses métier elles-même, ou sur la façon de relever au mieux un feedback utilisateur mais on se pose d'abord la question de savoir si on le fait, et on en mesure les impacts. C'est la raison pour laquelle, dans le livre et les études qui ont suivi, les capacités n'étaient pas décrites avec précision, mais plutôt par leurs effets attendus ou évités. Le détail du fonctionnement de ces capacités est donc propre à chaque organisation.
Conclusion
Accelerate est donc une étude sur des méthodes d'accélération des processus d’évolution du système d’information.
À travers les processus touchés, on comprend qu’elle concerne à la fois directement tous les acteurs, outils et méthodes du système de production d’un SI, mais également plus ou moins directement les acteurs du système d’information et plus indirectement encore ceux de l’environnement dans lequel évolue un SI.
Les exemples de cet article étaient essentiellement portés sur le commerce, mais ce n’est pas le seul domaine qui bénéficierait d’une capacité d’adaptation plus efficiente. Prenons par exemple un système de santé ou une chaîne logistique pendant cette période de pandémie, ou encore même le dérèglement climatique. Pour ce dernier par exemple, le temps joue clairement contre nous, et notre survie dépend sans aucun doute de notre capacité à nous adapter (nous et nos systèmes). Au-delà des changements d’échelle ou de nature nécessaires dans le monde physique, nos systèmes d’information eux aussi devront être transformés au plus vite pour répondre aux enjeux du dérèglement climatique. Cela ne fait pas d'Accelerate un outil d'éco-conception, mais un outil capable, dans cet exemple, d'atteindre plus sûrement des objectifs d'éco-conception.
Cette recherche de l’accélération n’est donc ni une nouvelle lubie technique ni une question réservée à un domaine spécialisé. Elle est la confirmation et la validation de ce que nous tentions déjà de faire intuitivement ou à travers des méthodes empiriques.
Si le sujet vous intéresse sous l'angle du machine learning, une série d'articles, débutant avec celui-ci, vous permettra d'aborder la construction de vos modèles de ML selon la perspective d'Accelerate.