Les actions irréversibles et les actions réversibles
Dans le chapitre précédent, nous avons abordé la nécessité d'une double vérification (ici : la confirmation par deux parties distinctes avant d'exécuter une action) pour toute opération irréversible. Mais que désigne concrètement le mot « irréversible » ?
Si l'on continue à employer ce terme sans le définir clairement, la question « irréversible, ça veut dire quoi au juste ? » reste en suspens. Dans ce chapitre, nous distinguons directement les actions réversibles des actions irréversibles. Une fois les définitions posées, il devient plus facile de savoir où appliquer des procédures rigoureuses et où l'on peut procéder avec légèreté.
La différence entre réversible et irréversible
Une action réversible est une action que l'on peut défaire.
Par exemple : rédiger un brouillon et le sauvegarder. Modifier une configuration dans un environnement local. Reprendre un texte et l'écraser. Toutes ces opérations peuvent être annulées par la procédure inverse — revenir à la version précédente, réécrire, rétablir le paramètre d'origine.
Une action irréversible est une action qui, une fois exécutée, ne peut pas être annulée — ou dont l'annulation exige un effort considérable.
Par exemple : publier un article sur le web. Supprimer des données. Envoyer une requête à un service externe. Envoyer un e-mail. Ces opérations ne permettent pas de dire « faites comme si rien ne s'était passé » après coup. L'article publié a peut-être déjà été lu. Les données supprimées sont perdues s'il n'existe pas de sauvegarde. L'e-mail envoyé est déjà dans la boîte de réception du destinataire.
« Peut-on annuler ou non ? » — voilà l'axe qui distingue le réversible de l'irréversible.
Où tracer la frontière concrètement
Voici quelques exemples plus précis.
Exemples d'actions réversibles. Sauvegarder un fichier en local. Éditer un article encore en brouillon. Modifier un fichier de configuration (à condition qu'une sauvegarde existe). Vérifier le fonctionnement dans un environnement de staging (ici : un environnement de test avant publication). Dans ces cas, si un problème survient, il reste possible de corriger ou de revenir en arrière. L'impact reste dans le périmètre que l'on maîtrise.
Exemples d'actions irréversibles. Publier un article vers l'extérieur. Supprimer des données en production. Envoyer une requête à une API externe (ici : l'interface de connexion pour communiquer avec un service externe). Diffuser un avis ou une notification à un public indéfini. Dans ces cas, l'impact de l'action sort de notre périmètre. Une fois sorti, on ne peut plus le récupérer.
Cependant, cette frontière n'est pas absolue.
Par exemple, « publier un article » peut avoir un impact faible si le nombre d'accès est quasi nul. Si les sauvegardes sont bien en place, « mettre à jour les données de production » peut se rapprocher du réversible dans une certaine mesure. Le caractère irréversible ou non d'une action dépend de l'état des protections mises en place et de l'étendue de l'impact.
Ce qui importe, ce n'est pas d'établir une table de classification exhaustive, mais de prendre l'habitude de se demander, avant chaque opération : « cette action peut-elle être annulée ? »
Comment adapter le traitement selon le cas
Si la distinction entre réversible et irréversible est nécessaire, c'est pour calibrer le poids des procédures à appliquer.
Pour une action réversible, une procédure légère suffit. On peut avancer en partant du principe que, si un problème se pose, on pourra revenir en arrière. Il n'est pas nécessaire d'insérer une vérification lourde à chaque fois. Interrompre constamment les tâches légères finit par bloquer l'ensemble du flux.
Pour une action irréversible, on impose des procédures renforcées. Concrètement, deux éléments constituent la base : vérifier avec un autre regard avant d'exécuter, et conserver une trace de l'exécution.
Vérifier avec un autre regard avant d'exécuter, c'est éviter qu'un seul jugement passe en force. Des oublis invisibles à soi-même peuvent apparaître lorsqu'un autre œil les examine. C'est là tout le sens de la double vérification.
Conserver une trace de l'exécution, c'est être en mesure d'expliquer après coup pourquoi telle décision a été prise. Les opérations irréversibles ne peuvent pas être annulées ; en revanche, si les justifications sont consignées, on peut y revenir lorsqu'un problème survient. Sans trace, le cheminement de la décision disparaît.
Les opérations réversibles passent avec légèreté ; les opérations irréversibles sont précédées d'une vérification et suivies d'un enregistrement. Cette distinction fait partie des mécanismes qui stabilisent le fonctionnement d'une organisation IA.
En pratique, la grande majorité des tâches sont des opérations réversibles. Rédiger un brouillon, l'éditer, vérifier en local — tout cela peut être confié à l'IA, ce qui permet à l'humain de réduire le nombre de vérifications. Les opérations irréversibles sont, par comparaison, peu nombreuses. C'est précisément pourquoi il est possible d'y concentrer l'attention et d'y appliquer des vérifications ciblées.
Lorsque l'on s'implique avec le même poids sur tout, on finit par ne plus diriger son attention vers les décisions vraiment importantes. Calibrer ce poids selon les cas — voilà le secret pour faire tourner un système sur la durée.