4 règles pour les diagrammes système que les gens comprennent réellement


Les diagrammes système sont conçus pour créer une compréhension partagée entre les développeurs avant d'écrire une seule ligne de code, mais ils finissent souvent par dérouter les parties prenantes qu'ils sont censés informer. Parfois, ce n'est pas trop un problème d'information, c'est qu'ils contiennent des informations, présentées d'une manière qui viole la façon dont nous traitons les hiérarchies et les relations visuelles. À long terme, ces schémas mal construits augmentent le risque de défauts de conception. Si votre équipe est confrontée à ce problème, vous pouvez le résoudre avec ces quatre règles.

Utilisez des symboles et des étiquettes cohérents

Lorsque chaque forme et chaque étiquette suivent la même logique, les lecteurs cessent de deviner et commencent à comprendre

Lorsque les symboles et les étiquettes sont incohérents, le diagramme cesse d’être une source fiable de vérité. J'ai déjà examiné un système de traitement d'événements de journaux dans lequel les bases de données étaient représentées par trois icônes différentes : un cylindre, une boîte rectangulaire avec une base de données écrite à l'intérieur et un nuage avec une icône de base de données. Lorsque j'ai demandé pourquoi à l'architecte, il m'a fait comprendre que les formes représentent trois outils et instances de stockage différents dans le système. Il pensait être utile en les rendant différents, mais il a plutôt créé un puzzle visuel qui obligeait le public à mémoriser les symboles avant de comprendre l'architecture.

Un diagramme système montrant le mouvement et le stockage des événements avec différentes icônes de composants Crédit : Dada Doyin / How-To Geek

Il s’agit d’un piège de cohérence qui attrape même les architectes expérimentés. Certains architectes système supposent que la variété ajoute de la clarté, mais en réalité, elle ajoute une charge mentale. Chaque symbole unique devient un nouveau terme que votre public doit apprendre tout en essayant de comprendre la logique du système.

Une approche plus efficace consiste à utiliser un seul symbole pour une catégorie donnée et à s'appuyer sur des étiquettes pour y ajouter un contexte supplémentaire.

Une image schématique montrant le mouvement et le stockage des événements Crédit : Dada Doyin / How-To Geek

Rendre visibles les relations et les flux de données

Un diagramme qui ne montre pas comment les choses se connectent n'est qu'une liste avec des cases

Selon le cadre bien architecturé de Microsoft pour la conception de systèmesles diagrammes doivent communiquer d'un seul coup d'œil les décisions de conception clés et ne pas s'appuyer sur de nombreuses explications textuelles pour être compris. L’objectif principal de la conception de systèmes est de montrer comment les objets sont connectés et comment les données circulent. Masquer ces relations est le moyen le plus rapide de rendre un diagramme inefficace.

La conception de votre système doit répondre en un coup d’œil aux questions critiques. Où commence une demande d’utilisateur ? Quel service est-il concerné ? Où les données sont-elles stockées ? Voici comment je définis les relations entre mes composants.

  • Mon flux principal suit le sens naturel de lecture des parties prenantes, c'est-à-dire de gauche à droite ou de haut en bas. Cela permet à mon public de mieux comprendre.

  • J'étiquete mes lignes pour une explication adéquate.

  • J'essaie de minimiser autant que possible les croisements de lignes pour éviter toute confusion.

  • J'utilise des flèches dirigées pour afficher le flux de données.

Image d'un service de streaming d'événements montrant les flux de données et les relations entre entités Crédit : Dada Doyin / How-To Geek

Outre les flèches de base, j'annote les connexions avec des protocoles et des formats de données. Par exemple, marquer une ligne avec HTTP ou MQTT indique immédiatement aux ingénieurs à quoi s'attendre. Pour les flux asynchrones, j'utilise des lignes pointillées pour les distinguer des appels synchrones. Ces petits détails empêchent d’innombrables réunions de clarification ultérieures.

Privilégiez la clarté à l’exhaustivité

Tout regrouper dans un seul diagramme ne le rend pas complet, cela le rend illisible

Je sais qu'il est tentant d'ajouter chaque composant, dépendance et cas limite à votre diagramme système. Mais si vous concevez des diagrammes qui tentent de tout capturer, ils deviennent difficiles à lire et à comprendre. J'aime suivre des approches modernes comme le modèle C4. Il donne aux concepteurs de systèmes un guide pour séparer l'architecture en différents composants. Au lieu de tout regrouper dans un seul visuel, ce modèle rend les systèmes clairs grâce à une abstraction structurée.

D’après mon expérience en matière d’examen de propositions d’architecture dans des entreprises technologiques de taille moyenne, les diagrammes qui sont approuvés le plus rapidement sont rarement les plus complets. Ce sont ceux où un chef de produit peut y jeter un coup d'œil pendant trente secondes et comprendre le flux de données.

J'aime penser à un diagramme comme à une carte. Lorsque vous conduisez à travers le pays, vous n'avez pas besoin de voir toutes les rues secondaires et toutes les allées, vous avez seulement besoin des autoroutes et des principales intersections.

Si une partie prenante ne parvient pas à identifier les principaux composants et flux de données dans un délai de deux minutes, cela signifie que le diagramme doit être simplifié. Dans la plupart des cas, je crée des diagrammes séparés : un pour l'architecture de haut niveau, un autre pour les interactions détaillées des composants.

Validez votre diagramme par rapport à la réalité

Testez votre diagramme avec quelqu'un qui utilise réellement le système

Après avoir suivi les trois règles énoncées précédemment, le diagramme du système peut encore sembler incomplet. La question principale est : est-ce que cela fonctionne dans le monde réel ? Une erreur courante que commettent les ingénieurs système est de créer des diagrammes basés sur la conception et les hypothèses prévues plutôt que sur l'état actuel du système.

Valider les diagrammes signifie les recouper avec le système réel, parler aux ingénieurs qui maintiennent les composants et confirmer que les interactions, les flux de données et les dépendances sont exacts. Ce processus final permet de découvrir les incohérences, les éléments manquants ou les hypothèses incorrectes avant qu'ils ne se transforment en erreurs coûteuses.


Concevoir pour comprendre, pas pour applaudir

Le test d'un bon diagramme système n'est pas de savoir s'il impressionne les autres architectes, mais plutôt de savoir si vos parties prenantes peuvent comprendre votre flux de données en trente secondes, si un nouvel ingénieur peut s'intégrer plus rapidement et si votre équipe peut détecter les défauts de conception avant qu'ils n'atteignent la production. J'utilise des outils comme application lucideet diagrammes.net pour visualiser mes systèmes. Ces quatre règles ne visent pas à dessiner de plus jolies cases et flèches, elles visent à respecter la façon dont les gens lisent et prennent des décisions.



Vous pouvez lire l’article original (en Angais) sur le sitewww.howtogeek.com