Il y a 12 ans -
Temps de lecture 5 minutes
Architecture : Penser grand, agir petit
Nous avons vu dans un précédent billet que le rôle de l’architecture pouvait être remis en perspective au travers de la poursuite de trois objectifs : Etre Connecté aux objectifs métier de l’entreprise ; Assurer la Cohésion des solutions ; Accueillir favorablement le Changement. Voici un nouveau principe à appliquer afin d’atteindre ces objectifs. Il constitue un aspect primordial de la fonction d’architecture et s’intitule « Penser grand, agir petit ».
Développer une vision …
L’un des principaux rôles d’un architecte (ou d’une équipe d’architecture) est de développer une vision d’un Système d’Information (ou d’un sous ensemble de ce dernier). Cette vision constitue, pour l’architecte, son elevator pitch. L’objectif d’une vision est de garantir une compréhension commune des grandes lignes et orientations d’un Système. A l’échelle du Système d’Information, cela peut se traduire par un plan d’urbanisme de très haut niveau, assorti de règles d’intégration de type SOA (mise en place de services HTTP, mode de communication prioritairement asynchrone, politiques de gestion de versions et d’adressage, modalités d’intégration des IHM, etc.).
Une vision doit être connue (et comprise) par l’ensemble des parties prenantes sur le Système concerné. Elle doit donc être exprimée simplement, par exemple à l’aide de métaphores qui proposent une abstraction de haut niveau destinée à décrire les principes d’architecture mis en œuvre (L’utilisation de métaphores est une pratique issue de l’eXtreme Programming). Dans ce cadre, encore plus qu’ailleurs, il est important de voyager léger. Il est du devoir de l’architecte de communiquer efficacement cette vision.
Il est important de noter qu’une vision n’est pas un design. Une vision esquisse les grandes orientations et les contours d’un système alors qu’un design constitue une description détaillée d’une solution technique.
… et itérer
Développer une vision et la communiquer est une chose ; la mettre en œuvre en est une autre. Comment passer d’une vision d’un Système à une implémentation qui la met en pratique ? La réponse se trouve dans les pratiques agiles qui prônent un développement incrémental piloté par les besoins.
Le même principe doit être appliqué à l’architecture : Procéder par petites étapes ; Introduire la vision au fil des itérations des projets. De ces projets doivent résulter des briques du Système d’Information offrant un haut niveau d’isolation (Ces briques sont utilisables indépendamment les unes des autres). Appliquer cette stratégie permet de réduire le gaspillage, chaque projet délivrant des composants qui apportent de la valeur au système.
Pendant les phases d’implémentation, le rôle de l’architecte Lean est de coacher les équipes de développement afin que leur design suive les lignes directrices définies dans la vision. A ce titre, l’architecte Lean propose, dans le cadre de la vision, des paradigmes généraux d’architecture et des patterns de haut niveau. Il est de la responsabilité des équipes de développement de choisir le design qui, à leurs yeux, répond le plus efficacement aux besoins tout en rentrant dans le cadre de la vision.
Penser grand permet à l’architecte de guider les équipes de réalisation dans la voie définie par la vision. Agir par petites itérations permet de résister à la tentation de répondre à des besoins qui ne sont pas exprimés : Il est souvent tentant de se dire « Ajoutons cette fonctionnalité maintenant. De toutes façon, on finira par en avoir besoin … ». Les petites étapes fournissent des périmètres aux frontières clairement établies.
Cette approche itérative permet également de mettre en évidence rapidement les erreurs de conception ce qui permet de les corriger avant qu’elles ne se répandent.
La poursuite des 3 C
L’application de ce principe permet une plus forte Cohésion des solutions parce que le design et la réalisation des différents éléments d’un système sont tous guidés par une même vision. La définition de cette vision, son partage avec l’ensemble des parties prenantes sur le Système concerné et le coaching des équipes permettent de construire, brique par brique, un tout cohérent.
D’autre part, la Connexion aux objectifs de l’entreprise est améliorée puisque, la vision de l’architecture fournit au métier un levier supplémentaire d’échange et de contrôle. En effet, la vision décrit, de façon simple et compréhensible par tous, la façon dont un Système supporte la réalisation des besoins métier. D’autre part, la mise en œuvre incrémentale de cette vision et l’implication permanente auprès des projets permettent de garantir que les retours d’expérience et les leçons apprises sont immédiatement incorporés dans la vision de l’architecture.
Enfin, l’accueil favorable du Changement est simplifié puisque, de la mise en pratique incrémentale de la vision résulte des composants réalisés avec le plus haut niveau d’isolation possible. L’isolation des composants permet de prendre en compte les changements de manière isolée. D’autre part, le fonctionnement par itération offre un plus haut niveau de flexibilité. Il est plus simple d’adapter des composants isolés et de taille modeste pour répondre aux nouvelles orientations métier.
Les apports pour l’organisation
« Penser grand, agir petit » est un principe très important d’un point de vue métier.
« Penser grand » (développer une vision) garantit qu’il existe une vision stratégique partagée qui décrit comment un Système contribue au métier.
« Agir petit » (par itérations successives) garantit que le métier a de nombreuses occasions de contrôler les résultats produits et de fournir des retours. D’autre part, de petits projets nécessitent un investissement initial plus faible, ce qui réduit le risque financier sur la réalisation de grands Systèmes.
Traduction libre du billet « Lean Architecture Principle #3: Think Big, Act Small » publié par Sander van den Berg sur blog.xebia.com.
Commentaire