Demandes de changement d'architecture : des Pull Requests pour votre modele C4 - Archyl Blog

L'architecture evolue. Desormais, elle peut evoluer avec la meme rigueur que votre code. Nous introduisons les Demandes de Changement d'Architecture, un workflow de pull request pour proposer, examiner et fusionner des modifications de votre modele C4.

Demandes de changement d'architecture : des Pull Requests pour votre modele C4

Le mois dernier, un ingenieur d'une equipe que je conseille a renomme un service central sur leur diagramme d'architecture. Pas de discussion. Pas de revue. Le changement etait en ligne instantanement, et trois equipes ont passe le standup suivant a se demander si le vrai service avait ete renomme ou juste le diagramme. Ce n'etait pas le cas. Quelqu'un avait simplement trouve le label peu clair et l'avait "corrige".

Cet incident a cristallise quelque chose a quoi nous reflechissions depuis un moment. Le code a ses pull requests. L'infrastructure a plan/apply. Les schemas de base de donnees ont leurs migrations. Mais les diagrammes d'architecture ? N'importe qui avec un acces en edition peut modifier n'importe quoi, a n'importe quel moment, et le reste de l'equipe le decouvre... un jour.

Aujourd'hui, ca change. Les Demandes de Changement d'Architecture apportent le workflow de pull request a votre modele C4.

Comment ca fonctionne

Le concept est volontairement familier. Si vous avez deja ouvert une pull request sur GitHub, vous savez deja comment ca marche.

Vous commencez par creer une demande de changement. Donnez-lui un titre, decrivez ce que vous proposez et pourquoi. Puis ajoutez vos modifications : creer de nouveaux systemes, mettre a jour des conteneurs existants, supprimer des composants inutilises, modifier des relations. Chaque changement est une operation discrete : creation, mise a jour ou suppression sur un element C4 specifique.

La demande de changement commence en brouillon. Vous pouvez continuer a ajouter et affiner les changements jusqu'a ce que vous soyez pret. Quand la proposition est complete, vous l'ouvrez pour revue.

Vos collegues voient la demande ouverte dans la liste des demandes de changement du projet. Ils peuvent examiner chaque modification proposee, voir exactement ce qui est cree, modifie ou supprime. Ils laissent des revues : approuver, demander des modifications ou commenter. Une fois le nombre d'approbations requis atteint, la demande peut etre fusionnee, appliquant tous les changements au modele C4 en une seule operation atomique.

Apercu visuel

Une chose que nous ne voulions pas, c'etait une vue diff qui ressemble a un blob JSON. L'architecture est visuelle, et la revue des changements d'architecture devrait l'etre aussi.

Chaque demande de changement inclut un apercu en direct du diagramme. L'apercu rend le modele C4 actuel avec toutes les modifications proposees superposees. Les nouveaux elements apparaissent avec un surlignage vert. Les elements modifies recoivent un anneau ambre. Les elements supprimes affichent un indicateur rouge. Vous pouvez naviguer a travers les niveaux C4, systeme, conteneur, composant, code, et voir l'impact complet de la proposition a chaque profondeur.

C'est le meme canevas interactif React Flow que vous utilisez pour le diagramme en direct, avec le meme drill-down, zoom et panoramique. La seule difference, ce sont les donnees : c'est une projection calculee de ce a quoi l'architecture ressemblera apres la fusion.

Le processus de revue

Les revues suivent un modele simple. Un relecteur peut :

  • Approuver — "Ca me va, fusionnez quand c'est pret."
  • Demander des modifications — "J'ai des preoccupations, discutons avant que ca soit integre."
  • Commenter — "Pas d'objection, mais voici un peu de contexte."

Chaque revue inclut un champ texte libre pour des retours detailles. La demande de changement suit son nombre d'approbations par rapport au seuil requis du projet. Par defaut, une approbation est necessaire, mais vous pouvez configurer cela par projet : zero approbation pour les petites equipes qui veulent un suivi leger, deux ou trois pour les grandes organisations qui ont besoin d'une validation formelle.

Mode demandes uniquement

Pour les equipes qui veulent aller plus loin, nous avons ajoute un Mode demandes uniquement dans les parametres du projet. Lorsqu'il est active, les modifications directes du modele C4 sont verrouillees. Le seul moyen de modifier l'architecture est via une demande de changement.

Cela ne signifie pas que le diagramme devient en lecture seule. Vous pouvez toujours naviguer, explorer, lier des ADR et de la documentation aux elements, ajouter des commentaires. Vous ne pouvez simplement pas deplacer, renommer, creer ou supprimer des elements sans passer par le workflow de demande de changement.

Nous avons construit cela pour les organisations ou la gouvernance de l'architecture compte : les industries reglementees, les grandes equipes d'ingenieurs, les equipes plateforme gerant une infrastructure partagee. L'architecture devient un artefact controle, avec chaque modification tracable et revue.

Suivi d'activite

Chaque evenement du cycle de vie d'une demande de changement apparait dans l'onglet Activite du projet. Quand une demande est ouverte, fermee, rouverte ou fusionnee, une entree d'historique est enregistree avec l'auteur, l'horodatage et le titre de la demande. Cela vous donne une chronologie de l'evolution de l'architecture, pas seulement a quoi elle ressemble aujourd'hui, mais la sequence de propositions et de decisions qui l'ont faconnee.

Combine avec les ADR et les liens de documentation, vous obtenez un recit complet : ce qui a change (la demande de changement), pourquoi ca a change (l'ADR), et comment ca s'integre dans le contexte plus large (la documentation).

Construire des changements

Le constructeur de changements vous permet de construire des propositions element par element. Pour chaque changement, vous specifiez :

  • Operation : creation, mise a jour ou suppression
  • Type d'element : systeme, conteneur, composant, element de code, relation ou overlay
  • Donnees de l'element : la specification complete de l'element, nom, description, technologie, type, et tous les champs que vous rempliriez en le creant directement

Pour les mises a jour, le systeme capture a la fois l'etat actuel et l'etat propose, pour que les relecteurs voient exactement ce qui change. Pour les suppressions, les donnees de l'element existant sont conservees dans la demande pour reference.

Vous pouvez melanger les operations librement. Une seule demande de changement peut creer deux nouveaux conteneurs, mettre a jour une relation et supprimer un composant obsolete. Lors de la fusion, tous les changements s'appliquent ensemble.

Ce que ca signifie pour les equipes

Les demandes de changement d'architecture ne sont pas la pour ajouter de la bureaucratie. Elles sont la pour rendre l'evolution architecturale intentionnelle.

Dans un codebase, la pull request n'est pas qu'une barriere, c'est un outil de communication. Elle dit "voici ce que je propose, voici pourquoi, qu'en pensez-vous ?" Elle cree un moment naturel pour le partage de connaissances, pour detecter les erreurs tot, pour construire une comprehension partagee.

L'architecture merite le meme traitement. Quand quelqu'un propose d'ajouter un nouveau service, c'est une conversation qui vaut la peine d'avoir avant qu'il apparaisse sur le diagramme. Quand quelqu'un veut restructurer la hierarchie des composants, l'equipe devrait voir l'ensemble du tableau avant que ca devienne la nouvelle realite.

La demande de changement, c'est cette conversation, rendue structuree et tracable.

Pour commencer

Les Demandes de Changement d'Architecture sont disponibles des maintenant sur tous les plans equipe. Naviguez vers n'importe quel projet, et vous trouverez la section "Demandes" dans la barre laterale. Creez votre premiere demande, ajoutez quelques changements, et ouvrez-la pour revue.

Si vous voulez imposer le workflow, activez le Mode demandes uniquement dans les parametres de votre projet. Configurez le nombre d'approbations requis selon les besoins de gouvernance de votre equipe.

Votre architecture est une decision d'equipe. Maintenant, vos outils le rendent explicite.


Vous voulez en savoir plus sur l'architecture collaborative ? Decouvrez la Collaboration en temps reel sur les diagrammes C4, ou apprenez comment les Architecture Decision Records completent les demandes de changement en capturant le "pourquoi" derriere chaque evolution architecturale.