Aller au contenu
JournalPublié le 14 août 20266 min de lecture

La portée est la véritable décision architecturale

architectureportéeingénierieproduitSaaS

La plupart des systèmes n'échouent pas parce que l'équipe a choisi le mauvais framework. Ils échouent parce que l'équipe a essayé de construire trop de choses avant de comprendre ce que le système devait réellement faire. J'ai vu ce schéma se répéter dans le fintech, le SaaS et le secteur public : une portée large traitée comme de l'ambition, alors que c'est vraiment juste du risque avec une feuille de route attachée. La décision architecturale qui compte le plus n'est pas le choix de la base de données ou du modèle de déploiement. C'est de décider ce que le système ne fera pas encore.

La portée est une contrainte, et les contraintes produisent une meilleure architecture

Quand la portée est indéfinie, chaque ingénieur de l'équipe fait une hypothèse différente sur les limites. L'un construit pour la cohérence éventuelle parce qu'il imagine un avenir distribué. Un autre ajoute une couche de cache parce qu'il anticipe une charge qui n'existe pas. Un troisième abstrait une limite de service autour d'une fonctionnalité qui changera trois fois avant de se stabiliser. Aucune de ces décisions n'est mauvaise isolément. Ensemble, elles produisent une base de code qui est véritablement difficile à comprendre, et le système n'a même pas encore été livré.

Une portée serrée force la question : quel est le plus petit workflow qui prouve la thèse ? Pas le plus petit ensemble de fonctionnalités, le plus petit workflow complet. Cette distinction compte. Un ensemble de fonctionnalités est une liste. Un workflow est quelque chose qu'un vrai utilisateur fait du début à la fin, avec un vrai résultat à la fin. Quand je peux décrire ce workflow en deux phrases, je peux tracer la limite logique autour de lui. Tout ce qui est en dehors de cette limite est une décision future, pas une responsabilité actuelle.

C'est cohérent avec où l'industrie a atterri. À travers 2025 et dans 2026, le consensus autour des monolithes modulaires s'est solidifié. L'argument n'est pas que les microservices sont mauvais. C'est que définir des limites logiques strictes dans une seule base de code vous donne une vélocité à long terme que la séparation physique ne peut pas fournir, jusqu'à ce que vous ayez assez de preuves opérationnelles pour justifier le coût de cette séparation. La discipline de portée est ce qui fait fonctionner le monolithe modulaire. Sans elle, vous obtenez un monolithe distribué, qui est le pire des deux modèles.

À quoi cela ressemblait sur un vrai projet

Quand j'ai construit Fursa, le moteur d'éligibilité des routes de visa, la tentation était de couvrir tous les pays de destination dès le premier jour. L'idée du produit était large : aider les utilisateurs à comprendre quelles routes de visa leur étaient disponibles en fonction de leur profil. Il y a des centaines de combinaisons de routes à travers des dizaines de pays. Les construire toutes aurait pris des mois et produit un système que personne n'avait validé.

J'ai réduit la portée à quatre pays de destination. Ce n'était pas un compromis. C'était la décision architecturale. Avec quatre pays, je pouvais définir la logique d'éligibilité d'une manière véritablement testable, construire le modèle de données autour d'un ensemble connu de structures de règles, et livrer quelque chose qu'un vrai utilisateur pouvait parcourir de bout en bout. La contrainte a révélé la forme du problème. Il s'est avéré que le moteur de règles devait être beaucoup plus composable que je l'avais initialement prévu, car même dans quatre pays les combinaisons de règles n'étaient pas triviales. Je n'aurais pas découvert cela proprement si j'avais géré quarante pays en même temps.

Le même principe s'appliquait à OptimalTax, le système de déclaration fiscale automatisé construit pour un contexte du secteur public. Le calcul fiscal est un domaine où les cas limites sont infinis si vous les laissez être. La décision de portée était de cibler un profil de contribuable défini et un type de déclaration spécifique, et d'atteindre 99 % de précision de calcul dans cette limite avant d'élargir. Ce chiffre de précision est réel et vérifiable. Il provient de la construction de la bonne chose précisément, pas de la construction de tout grossièrement.

Où les systèmes sur-dimensionnés échouent réellement

Le mode de défaillance est presque toujours le même. Une équipe élargit la portée, construit en parallèle sur plusieurs workflows, et atteint l'intégration. Les interfaces entre les workflows ont été conçues par des personnes différentes à des moments différents avec des hypothèses différentes. Le travail d'intégration prend plus de temps que la construction originale. Le système est livré tard, avec des bugs concentrés aux limites, et l'équipe passe le trimestre suivant à éteindre des incendies au lieu d'itérer.

J'ai aussi vu la version plus subtile : un système qui est livré à temps mais avec tellement de chemins de code qu'aucun ingénieur ne peut tenir le tout dans sa tête. Les changements deviennent lents parce que chaque changement nécessite de comprendre trop de contexte. Le système n'est pas cassé, mais il est fragile, et l'équipe le ressent même si elle ne peut pas le nommer.

La discipline de portée prévient les deux. Quand le workflow initial est serré, la surface d'intégration est petite. Quand la surface d'intégration est petite, les interfaces sont plus faciles à définir et plus faciles à tester. Le système qui est livré est plus petit, mais l'équipe le comprend complètement. Cette compréhension est le vrai atout. C'est ce qui rend l'itération suivante rapide.

Comment j'applique cela en pratique

Quand je prends un nouvel engagement, la première chose que je fais est de remettre en question la portée. Pas pour réduire l'ambition, mais pour trouver la thèse. Chaque produit a une thèse, une affirmation sur ce qu'il fera pour un utilisateur spécifique dans une situation spécifique. La portée devrait être le workflow minimum qui prouve ou réfute cette thèse. Tout le reste est une hypothèse pour plus tard.

En pratique, cela signifie :

  • Écrire le workflow en langage clair avant d'écrire du code
  • Identifier le seul résultat qui vous dit si la thèse est vraie
  • Tracer la limite logique et traiter tout ce qui est en dehors comme hors de portée pour cette itération
  • Revisiter la limite seulement après que le workflow soit complet et la thèse testée

Ce n'est pas un processus en cascade. La limite peut bouger. Mais elle bouge délibérément, après une décision, pas parce que quelqu'un a ajouté une exigence en milieu de sprint sans ajuster la portée.

La Plateforme de Services Financiers que j'ai construite pour un client fintech est un bon exemple de ce que cela produit. La portée initiale était étroite : un flux de paiement spécifique pour un type d'utilisateur spécifique. L'architecture qui en est sortie était assez propre pour que les temps de réponse baissent de 30 % par rapport au système précédent. Cette amélioration ne venait pas de l'optimisation des performances. Elle venait de la construction d'un système avec une limite claire, où le flux de données était évident et le chemin de traitement n'avait pas de branchement inutile.

La perspective d'ingénierie compte plus que le choix du framework

Les débats sur les frameworks sont partout. Ils sont aussi largement à côté du point. Le framework que vous choisissez affecte la syntaxe et l'écosystème. La portée que vous choisissez affecte tout : la complexité du modèle de données, le nombre de points d'intégration, la charge cognitive sur l'équipe, la vitesse de l'itération future. La portée est la décision qui se compose.

Si vous évaluez un travail d'ingénierie, la question à poser n'est pas quel stack a été utilisé. C'est : quelle était la décision de portée, et pourquoi a-t-elle été prise de cette façon ? Une équipe qui peut répondre à cette question clairement a fait du vrai travail d'architecture. Une équipe qui ne peut pas le faire construit sur une fondation qui vous coûtera plus tard.

Si vous voulez voir comment cette réflexion se déploie sur différents types de problèmes, la perspective d'ingénierie est le bon endroit pour commencer. Ou si vous avez un système spécifique en tête et que vous voulez travailler ensemble sur la décision de portée, le formulaire de contact est la route directe.

Envie d'en discuter ?

Parlons-en.

Démarrer la conversation