Aller au contenu

Le test de réversibilité

Aussi en 28 langues

English · Español · 日本語 · Português (Brasil) · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Polski · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A freshly poured concrete slab sets around four anchor bolts on a steel template and upright conduits, bordered by timber formwork, with a wheelbarrow on the ground beyond.
Image générée par IA

Module 3 sur 7 du chapitre Penser comme un architecte de données, le premier chapitre du cours Data Architect. Chaque module se suffit à lui-même. Précédent : Le modèle de données est l’ossature · Suivant : L’architecture est l’art des compromis

La question à laquelle répond ce module : comment distinguer une décision d’architecture d’une décision ordinaire ?

Les architectes prennent beaucoup de décisions.

Mais toutes les décisions ne sont pas des décisions d’architecture.

C’est une distinction importante. Si nous traitons chaque décision comme de l’architecture, nous passerons notre temps à débattre de choses relativement faciles à changer. Si nous ne reconnaissons pas les décisions qui sont vraiment d’architecture, nous pouvons prendre aujourd’hui en cinq minutes une décision qui prendra cinq ans à défaire.

Alors, comment faire la différence ?

J’aime poser une question simple :

À quel point sera-t-il difficile de revenir sur cette décision plus tard ?

J’appelle cela le test de réversibilité.

Plus une chose est difficile à défaire, et plus d’autres choses en dépendront, plus elle mérite d’attention architecturale.

Commençons par quelque chose de simple.

Nous appelons un champ Customer Category (catégorie client). Six mois plus tard, le métier décide que tout le monde l’appelle en réalité Customer Segment (segment client). Nous changeons l’étiquette. Il y aura peut-être de la documentation à mettre à jour et un peu de formation des utilisateurs, mais ce n’est pas un événement d’architecture majeur. Nous devrons toutefois vivre avec le nom d’API d’origine, car le changer a des conséquences bien plus larges. Cela peut donc simplement vouloir dire gérer un changement d’étiquette, et la confusion qui peut l’accompagner.

Nous avons pris une décision. Nous avons changé d’avis. Nous sommes passés à autre chose.

Comparons maintenant avec une autre décision.

Nous créons un identifiant pour les clients. Nous décidons de ce qu’il signifie, de son format et du système qui le crée. Puis nous le publions.

Salesforce l’utilise. L’entrepôt de données l’utilise. La plateforme d’intégration l’utilise. Le portail client l’utilise. Cinq autres applications commencent à le stocker. Des rapports et des pipelines de données l’utilisent. Les clients finissent peut-être par le voir.

Trois ans plus tard, quelqu’un dit :

Nous n’aurions sans doute pas dû concevoir l’identifiant de cette façon.

C’est une conversation très différente.

La différence n’est pas qu’une décision est plus technique que l’autre.

La différence, c’est la réversibilité.

Voici comment cela peut arriver. Disons que l’entreprise construit ses clés à partir d’une partie du nom du client plus un numéro. Ça fonctionne pendant des années, parce que personne n’a jamais eu à changer de nom. Puis, un an ou plus tard, un nom change, et tout à coup les clés ne correspondent plus au modèle attendu par le reste des données. C’est l’une des raisons pour lesquelles une clé ne devrait porter aucune signification intrinsèque.

Une décision d’architecture a tendance à accumuler des choses autour d’elle. Je pense à cela comme à de la gravité.

Choisissez un modèle d’objets, et l’automatisation se construit autour.

Choisissez une clé, et d’autres systèmes commencent à la stocker.

Choisissez où vivent les données de référence, et les intégrations commencent à circuler vers elles et à partir d’elles.

Choisissez un modèle de partage, et les processus métier commencent à dépendre de qui voit quoi.

Choisissez un modèle d’intégration, et les systèmes commencent à dépendre de son rythme et de son comportement.

Plus ces décisions existent longtemps, plus elles développent de gravité. À terme, changer la décision d’origine signifie changer tout ce qui s’est accumulé autour.

L’IA ressent aussi cette gravité. Un outil d’IA travaille à partir de ce qui est déjà dans le système : une fois qu’un élément de conception clé est là, chaque interaction avec l’IA qui suit le traite comme un fait et continue de construire dessus, et de construire dessus, et de construire dessus. La décision résonne à travers beaucoup d’autres décisions, et aucun humain ne revient jamais réexaminer l’originale. Chaque génération ajoute à la gravité.

C’est pourquoi le fait que le modèle de données soit « l’ossature » compte. Nous ne sommes pas prudents parce que le changement est mauvais. Nous sommes prudents parce que les dépendances rendent le changement coûteux.

Quand j’examine une décision de conception, je pose deux questions :

À quel point est-ce difficile à défaire ?

Combien de choses vont en dépendre ?

Elles sont liées, mais pas identiques. Une chose peut être techniquement facile à changer mais avoir des centaines de consommateurs. On renommait autrefois les objets standard pour plus de clarté, par exemple le compte en « Client ». Facile à faire. Puis un autre système a voulu utiliser les comptes pour des partenaires, et ce n’était plus possible. Une autre chose peut n’avoir que quelques consommateurs mais exiger une migration énorme pour la changer, comme le nom d’API d’un objet référencé à de nombreux endroits en interne. Personne à l’extérieur ne le voit, mais un mauvais nom continue de semer la confusion dans l’équipe. Les deux méritent de l’attention.

Pensez à quelques décisions courantes sur les données :

  • Quel objet Salesforce représente ce concept métier ?
  • Quel est l’identifiant unique ?
  • Quel système est le système d’enregistrement ?
  • Ces données sont-elles copiées dans Salesforce ou consultées ailleurs ?
  • Est-ce un seul objet ou plusieurs objets liés ?
  • À qui appartiennent les données, et combien de temps les gardons-nous ?
  • Quelles sont nos frontières d’accès par défaut ?
  • Comment ces données circulent-elles entre les systèmes ?

C’est très différent de décider où un champ apparaît sur une page Lightning. La conception de page compte aussi. Mais le coût de l’erreur est différent.

Le test de réversibilité Une grille de deux sur deux. En abscisse : la difficulté à défaire une décision, de facile à difficile. En ordonnée : ce qui en dépendra, de peu à beaucoup. En bas à gauche, « Décidez, tout simplement » : une étiquette de champ et une présentation de page. En haut à gauche, « Facile à changer, beaucoup en dépend » : coordonnez le changement. En bas à droite, « Difficile à changer, peu en dépend » : planifiez la migration. En haut à droite, mis en évidence, « Décision d'architecture » : l'identifiant unique, le système d'enregistrement et le modèle d'objets ; ralentissez, et écrivez pourquoi. FACILE À CHANGER, BEAUCOUP EN DÉPEND coordonnez le changement Renommer Compte en « Client » puis un autre système veut des comptes pour les partenaires DÉCISION D'ARCHITECTURE ralentissez, et écrivez pourquoi L'identifiant unique Le système d'enregistrement Le modèle d'objets DÉCIDEZ, TOUT SIMPLEMENT changez-le plus tard si besoin Une étiquette de champ Une présentation de page DIFFICILE À CHANGER, PEU EN DÉPEND planifiez la migration Le nom d'API d'un objet interne personne ne le voit, mais il embrouille l'équipe DIFFICULTÉ À DÉFAIRE Facile Difficile CE QUI EN DÉPENDRA Peu Beaucoup À quel point est-ce difficile à défaire ? Combien de choses en dépendront ? Les deux élevés : une décision d'architecture. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Une autre façon de penser la réversibilité est le rayon d’impact : si je change cette décision, qu’est-ce qui bouge d’autre ?

Supposons que quelque chose que nous avons modélisé comme un champ doive en réalité devenir un objet enfant. Ce n’est pas seulement un changement de schéma. Qu’arrive-t-il aux données existantes ? Aux rapports, aux intégrations qui attendent ce champ, à l’Apex et aux flows qui le référencent, à la sécurité, aux analyses, à un agent d’IA dont les actions dépendent de la structure d’origine ?

Plus le rayon est grand, plus nous devrions prendre la décision d’origine avec soin.

C’est aussi pourquoi les architectes doivent regarder au-delà de leur propre partie du système. Vu de l’intérieur de Salesforce, un changement peut paraître facile. Vu de l’entreprise, il peut toucher douze autres systèmes.

Décisions d’entreprise et décisions Salesforce

Section intitulée « Décisions d’entreprise et décisions Salesforce »

Un architecte de données pense à deux niveaux.

Dans Salesforce, nous décidons des objets, des relations, des clés, du volume, de l’accès, de l’automatisation, et de la façon dont les données se comportent sur la plateforme.

À l’échelle de l’entreprise, nous posons des questions plus larges. Où vit réellement le client ? À qui appartient le produit ? Quel système crée une commande ? Quel est notre identifiant de référence ? Quelles informations sont copiées entre les systèmes, et lesquelles restent où elles sont ?

Les deux niveaux doivent se rejoindre. J’ai vu des mises en œuvre Salesforce où le modèle interne était parfaitement logique en lui-même mais ne s’accordait pas avec l’entreprise autour. Ce n’est pas suffisant. Les structures Salesforce doivent être représentées au niveau de l’entreprise, et les décisions d’entreprise doivent redescendre dans Salesforce.

L’architecture est une circulation à double sens.

L'architecture est une circulation à double sens Deux niveaux, l'un au-dessus de l'autre. Dans toute l'entreprise : où vit le client, à qui appartient le produit, quel système crée une commande, les systèmes d'enregistrement, les identifiants qui font autorité, et ce qui est copié par rapport à ce qui reste en place. Dans l'organisation Salesforce : objets et relations, clés, volume, accès, automatisation, et comportement des données sur la plateforme. Une flèche descend, « les décisions descendent » ; une autre remonte, « les structures remontent ». L'architecture est une circulation à double sens. les décisions descendent les structures remontent Dans toute l'entreprise Où vit le client ? À qui appartient le produit ? Quel système crée une commande ? Systèmes d'enregistrement Les identifiants qui font autorité Ce qui est copié, et ce qui reste en place Dans l'organisation Salesforce Objets et relations Clés Volume Accès Automatisation Comportement des données sur la plateforme L'architecture est une circulation à double sens. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

L’un des dangers de la technologie, c’est que les décisions les plus faciles à mettre en œuvre peuvent ressembler aux décisions les plus faciles à prendre. Ce n’est pas la même chose.

Créer un autre objet personnalisé est facile. Créer un autre champ est facile. Connecter une autre API devient de plus en plus facile, et l’IA rend tout cela encore plus facile.

Mais la facilité de mise en œuvre ne nous dit presque rien du coût de la décision d’architecture.

Avant une décision difficile à défaire, ralentissez assez longtemps pour vous demander : quel problème résolvons-nous réellement ? Quelles options avons-nous envisagées ? Que supposons-nous ? Que se passe-t-il quand le volume grandit, et quand le métier change ? Qu’est-ce qui d’autre va en dépendre ? Que se passe-t-il si nous avons tort ?

Nous n’avons pas besoin de six mois de revue à chaque fois que nous créons un objet. Nous avons besoin d’une réflexion proportionnée au coût de l’erreur. S’il s’agit d’un objet pour un seul service ou sous-système, vous pouvez avancer plus vite. S’il s’agit de données de référence, d’un objet client clé ou de quelque chose d’utilisé entre plusieurs systèmes, prenez le temps d’y réfléchir.

Il y a un autre problème avec les décisions importantes : les gens oublient pourquoi elles ont été prises.

Quelqu’un regarde une architecture trois ans plus tard et demande : « Pourquoi diable quelqu’un aurait-il conçu ça comme ça ? » Parfois, la réponse est que c’était une mauvaise conception. Ça arrive. Mais parfois, il y avait une très bonne raison : une limite de la plateforme qui n’existe plus, une exigence réglementaire, un autre système qui ne pouvait pas prendre en charge l’approche préférée, un compromis accepté sciemment pour tenir une échéance.

Si nous ne consignons que ce que nous avons décidé et non pourquoi, l’architecte suivant n’a aucun moyen de le savoir.

Pour les décisions importantes, écrivez-le. Pas besoin d’un document de 50 pages. Un registre de décision utile peut être très court :

Contexte : quel problème résolvons-nous ?

Options : quelles options réalistes avons-nous envisagées ?

Décision : qu’avons-nous choisi ?

Conséquences : que gagnons-nous, et à quoi renonçons-nous ?

Responsable : qui répond de cette décision ?

Révision : quelle raison ou quelle date devrait nous la faire réexaminer ?

La valeur n’est pas dans le document. La valeur, c’est de préserver le raisonnement.

Et quand une décision change, n’effacez pas l’originale. Remplacez-la. La décision qui était juste en 2027 ne l’est peut-être plus en 2030, parce que les volumes, le métier, Salesforce et notre compréhension changent tous. Ce que je veux garder, c’est l’histoire : voici le contexte, voici la décision et pourquoi, voici ce qui a changé, et voici ce que nous décidons maintenant. C’est bien plus précieux que de prétendre que nous avons toujours connu la réponse.

Le registre de décision Deux fiches. Le modèle de registre de décision pose six questions : contexte, quel problème résolvons-nous ; options, quelles options réalistes avons-nous envisagées ; décision, qu'avons-nous choisi ; conséquences, que gagnons-nous et à quoi renonçons-nous ; responsable, qui répond de la décision ; révision, quelle raison ou date doit nous la faire revoir. À côté, la même fiche remplie pour l'exemple des approbations du module 1 : chaque approbation a besoin d'un approbateur et d'une date ; les options étaient plus de champs sur l'opportunité ou un objet enfant Approbation ; la décision a été un objet enfant Approbation ; autant d'approbations que nécessaire, au prix d'un objet de plus à couvrir dans les rapports ; sous la responsabilité de l'architecte de données du projet ; à revoir si les approbations passent dans un autre système. Le registre de décision six questions, une page CONTEXTE Quel problème résolvons-nous ? OPTIONS Quelles options réalistes avons-nous envisagées ? DÉCISION Qu'avons-nous choisi ? CONSÉQUENCES Que gagnons-nous, et à quoi renonçons-nous ? RESPONSABLE Qui répond de cette décision ? RÉVISION Quelle raison ou date doit nous la faire revoir ? Rempli : les approbations du module 1 CONTEXTE Chaque approbation a besoin d'un approbateur et d'une date OPTIONS Des champs Approbateur 2 et 3 sur l'opportunité Un objet enfant Approbation DÉCISION Un objet enfant Approbation CONSÉQUENCES Autant d'approbations que nécessaire, chacune datée Un objet de plus à couvrir dans les rapports RESPONSABLE L'architecte de données du projet RÉVISION Si les approbations passent dans un autre système Quand une décision change, ne l'effacez pas. Remplacez-la, et gardez l'histoire. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Au-delà de l’examen : l’IA raccourcit le temps entre la décision et la dépendance. Un outil d’IA peut proposer un modèle de données en quelques secondes, puis créer par-dessus les objets, l’automatisation, le code d’intégration et l’interface utilisateur. Une décision discutable demandait autrefois des mois de développement avant que beaucoup de choses en dépendent ; maintenant, les dépendances arrivent presque aussitôt. Revoyez donc les décisions sous le résultat, pas seulement le résultat. L’IA peut aider : elle peut lister des options, remettre en cause des hypothèses et rédiger le registre de décision. Mais l’architecte décide toujours, et plus la décision est difficile à défaire, plus ce jugement humain compte.

L’une des compétences que je veux vous voir développer, c’est savoir où porter votre attention.

Ne transformez pas chaque choix de configuration en sommet d’architecture.

Mais ne prenez pas à la légère une décision avec laquelle l’organisation vivra pendant les dix prochaines années.

Demandez-vous :

À quel point sera-t-il difficile de revenir en arrière ?

Combien de choses vont en dépendre ?

Si les réponses sont très difficile et beaucoup, vous avez probablement trouvé une décision d’architecture.

Deux décisions, deux niveaux d'attention Deux décisions côte à côte, chacune soumise aux deux mêmes questions. Renommer l'étiquette d'un champ de Customer Category en Customer Segment : facile à défaire ; un peu de documentation et de formation en dépendent ; donc décidez et passez à la suite. Choisir entre principal-détails et référence sur un gros objet qui contient déjà des données : difficile à défaire, car chaque enregistrement existant doit respecter la nouvelle règle et le partage et les cumuls changent avec ; qui peut voir chaque enregistrement, ce qui est supprimé avec le parent, les récapitulatifs de cumul, les rapports, l'automatisation et chaque intégration qui charge les données en dépendent ; donc ralentissez, explorez les options, et écrivez pourquoi. Renommer l'étiquette d'un champ Customer Category devient Customer Segment DIFFICILE À DÉFAIRE ? Facile : changer à nouveau l'étiquette QU'EST-CE QUI EN DÉPEND ? Un peu de documentation Un peu de formation DONC Décidez et passez à la suite Principal-détails ou référence ? sur un gros objet qui contient déjà des données DIFFICILE À DÉFAIRE ? Difficile : chaque enregistrement existant doit respecter la nouvelle règle Le partage et les cumuls changent avec QU'EST-CE QUI EN DÉPEND ? Qui peut voir chaque enregistrement Ce qui est supprimé avec le parent Récapitulatifs de cumul, rapports, automatisation Chaque intégration qui charge les données DONC Ralentissez, explorez les options Écrivez pourquoi Ne transformez pas chaque choix en sommet d'architecture. Ne prenez pas à la légère une décision avec laquelle vous vivrez dix ans. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Ralentissez. Comprenez l’exigence. Explorez les options. Rendez les compromis visibles. Prenez la décision. Et écrivez pourquoi.

Le but de l’architecture n’est pas de prendre des décisions qui ne pourront jamais changer.

Le but est de reconnaître les décisions pour lesquelles changer d’avis coûtera cher.

  • Quelles décisions sont d’architecture : difficiles à défaire, avec beaucoup de choses qui en dépendent.
  • Combien d’attention reçoit chaque décision, en proportion du coût de l’erreur.
  • Quelles décisions sont consignées, avec leur contexte, leurs options, leurs conséquences, leur responsable et leur point de révision.
  • Comment les décisions Salesforce s’alignent sur celles de l’entreprise.
  • Object Relationships Overview (opens in a new tab), aide Salesforce (en anglais, consulté le 2026-10-09 ; revérifié le 2026-10-12) : dans une relation principal-détails, l’accès et la propriété de l’enregistrement de détail suivent le principal, et supprimer un principal supprime ses détails.
  • Considerations for Object Relationships (opens in a new tab), aide Salesforce (en anglais, consulté le 2026-10-09 ; revérifié le 2026-10-12) : une relation de référence ne se convertit en principal-détails que si chaque enregistrement y a une valeur ; la conversion change le modèle de partage (en Contrôlé par le parent), et le type de relation détermine quels types de rapport standard sont disponibles.
  • Roll-Up Summary Field (opens in a new tab), aide Salesforce (en anglais, consulté le 2026-10-09 ; revérifié le 2026-10-12) : les champs de récapitulatif de cumul n’existent que sur les relations principal-détails, et doivent être supprimés avant qu’une relation principal-détails puisse redevenir une relation de référence.