Architecture logicielle
L'architecture logicielle désigne l'organisation générale d'un logiciel : comment ses composants sont découpés, comment ils communiquent entre eux, et quelles technologies et quels patterns structurent l'ensemble (monolithe, microservices, architecture hexagonale, événementielle). C'est le squelette sur lequel repose tout le reste du produit.
Deux plateformes SaaS qui font la même chose en apparence peuvent avoir des trajectoires totalement différentes selon leur architecture : l'une ajoute une nouvelle fonctionnalité en deux semaines, l'autre en deux mois parce que le moindre changement a des effets de bord ailleurs dans le code. Le choix entre monolithe et microservices, par exemple, dépend surtout de la taille de l'équipe et de la nécessité réelle de déployer des parties du système indépendamment, pas d'une mode technique.
L'erreur la plus fréquente est de copier l'architecture d'une entreprise beaucoup plus grande (microservices, événementiel) alors que l'équipe et le produit sont encore petits, ce qui ajoute de la complexité opérationnelle sans bénéfice réel. À l'inverse, ne jamais remettre en question une architecture devenue trop rigide finit par bloquer la croissance du produit. L'architecture doit être revue régulièrement à mesure que l'équipe et le produit changent d'échelle, pas figée une fois pour toutes.
