Le rôle d’Architecte Fullstack est directement inspiré du mouvement du développement web Full Stack, dans lequel un développeur Fullstack est capable de travailler à la fois sur le front-end et le back-end d’une application web – d’où le nom fullstack. L’idée importante ici est que pour développer une bonne application web, il faut connaître non seulement le front mais aussi le back-end. Nous avons simplement étendu cette idée à l’architecture : pour concevoir une bonne architecture, il faut connaître toutes les couches (de haut en bas) sur lesquelles reposera votre produit. Il ne s’agit pas ici de dire que l’Architecte Fullstack doit être expert dans chacune de ces couches, mais une bonne connaissance d’ensemble est clairement un atout. Et quand nous disons “de haut en bas”, cela inclut l’infrastructure (hébergement et stockage), le réseau (car nous concevons de plus en plus de systèmes distribués), les middlewares (bases de données, middleware orienté message, etc.), les technologies de développement, sans oublier les pratiques d’Intégration Continue et de Livraison Continue.
Encore une fois, définir un rôle est toujours délicat, car chaque entreprise peut avoir son propre jeu de rôles ou sa propre vision. Nous avons tenté de décrire ici les principales activités qu’un Architecte Fullstack devrait couvrir. Il est tout à fait acceptable que, dans votre organisation, ces activités soient réalisées par un autre rôle.
Au sein de l’équipe produit, il ou elle est l’Architecte Technique couvrant l’ensemble des couches techniques (Application, Données, Intégration, Infrastructure, Sécurité…) pour le produit :
- Concevoir l’architecture sur l’ensemble des couches techniques en tenant compte de l’écosystème dans lequel son produit évolue (vision end-to-end avec implication des autres architectes fullstack), du cycle de vie du produit (du berceau à la tombe) et des préoccupations d’opérabilité pour garantir que le produit sera exploitable en production.
- Gérer, avec l’Architecte Produit, le Runway d’Architecture de son produit pour délivrer les enablers nécessaires au support des besoins métier, des exigences non fonctionnelles, et gérer la dette technique du produit (obsolescence des composants techniques sous-jacents par exemple).
- Proposer de nouvelles études (ou spikes) pour traiter des besoins non couverts par les solutions standards. Ces études doivent faire partie du Runway d’Architecture et donc du backlog produit.
- Co-animer le processus de prise de décision pour ses produits : de l’identification à la résolution, jusqu’à la communication. De bonnes décisions sont comprises et soutenues par les équipes, et l’Architecte Fullstack joue ici un rôle clé.
- Fournir la documentation d’architecture « juste ce qu’il faut » pour aider à communiquer sur la conception du produit.
- Supporter, expliquer, promouvoir et communiquer l’architecture technique du produit.
- Organiser les rituels d’architecture recommandés par l’approche Continuous Architecture (tels que les réunions d’architecture hebdomadaires, les ateliers de conception Scoping 360…).
Nous proposons le visuel ci-dessous pour récapituler ces différentes activités et les autres rôles avec lesquels un architecte fullstack interagit.
