Agilité versus Flexibilité

Une capacité typique de l’architecture : la flexibilité

Le concept d’agilité s’est banalisé et les démarches agiles se généralisent, donnant une capacité déterminante aux projets. L’agilité concerne le projet, et impacte les acteurs des projets SI.

La flexibilité est un concept différent qui s’applique au résultat des projets : le produit, ou l’ensemble des produits qui sont intégrés, y compris ceux issus des anciens projets.

La flexibilité est une capacité d’adaptation de cet ensemble de produits, face à des évolutions. Ces évolutions, de toutes natures, peuvent être imprévues, imprévisibles, voulues, anticipées, aléatoires, en rupture, …

En regard de chaque évolution, dans la durée, un observateur objectif constate une flexibilité qui peut être :

  • Nulle, par exemple pour des raisons technologiques (la technologie n’est pas disponible pour le produit), ou pour des raisons socio-techniques : le personnel n’est pas formé dans les délais, les utilisateurs refusent la rupture, …
  • Totale : il suffit de modifier un paramètre, couramment pratiqué, testé, déployé,
  • Et toutes sortes de situations intermédiaires sont possibles, dans lesquelles un projet agile a du sens.

L’Architecture d’Entreprise ambitionne une vision globale, transcendant les systèmes, elle se préoccupe donc de tous les types de flexibilités, celles qui sont purement technologiques, mais aussi celles qui sont de l’ordre « fonctionnel », ou « métier », voire « business ».

Dans ce contexte, les capacités technologiques (ubiquité, connectivité généralisées…) s’accroissent, les capacités d’agilité des projets passent à l’échelle : ceci étend le domaine des possibles pour des apports de valeur, bien au-delà des frontières de l’entreprise.

En parallèle la flexibilité du produit s’améliore, sur certains aspects. Mais il n’y a pas de certitude que cet accroissement de flexibilité se porte sur tous les cas d’adaptation qui apparaitront comme nécessaires au cours du temps.

L’expérience du passé démontre qu’une dette d’urbanisme se crée naturellement, sauf effort d’anticipation. Et même avec de tels efforts, il y a un pari qui n’est pas toujours gagné. Ce phénomène est bien connu pour les grands projets, avec leur important taux d’échec (voir Standish Group Chaos Report), en partie amélioré avec les approches agiles.

La flexibilité résulte pour une part des choix de développement que peuvent faire les projets, et des choix techniques. Mais elle met en cause les choix d’architecture. Une mauvaise architecture, même avec les développements les plus agiles, et la technologie la plus performante, aboutira à un produit rigide. Par exemple parce que le même concept est inscrit au cœur du produit sous mille formes incohérentes. La remise en cohérence d’un tel produit peut, en termes de réingénierie, dépasser largement les coûts de développement initiaux.

Pour le dire autrement, la flexibilité du produit résulte de l’association de ces différentes flexibilités (architecture, applicative, technique, …), et la rigidité est transitive.

L ’Architecture Flexible

L’ «Architecture Flexible » permet d’accroître la composante flexible d’une architecture d’entreprise.

Elle est exploite une autre notion, historiquement bien connue dans la profession : celle d’invariant.

De fait, tous les systèmes socio-techniques sont l’objet d’évolutions constantes, parfois extrêmement complexes. Par contre, si on recherche en leur cœur les invariants de toutes ces évolutions, on retrouve toujours les mêmes types d’invariants :

  • Sur les chaînes de valeur une trame typique, facile à objectiver, en s’abstrayant des processus, des algorithmes et projets SI
  • Sur les données, un cœur invariant, autour du référencement des principaux objets du monde réel (clients, intervenants, produits, services, composants, réseau, …)
  • Sur les événements qui provoquent les transformations et le développement des chaînes de valeur (événements clients, logistique, cycles produits, ..).

En centrant l’Architecture sur de tels invariants, dont l’évolution est lente, l’Architecture Flexible n’est pas remise en cause, même par des évolutions imprévues ou aléatoires. Elle répond ainsi pleinement à la capacité recherchée, pour garantir une résilience aux systèmes, et les adapter aux aléas au moindre coût, dans des délais courts.

L’Architecture Flexible est ainsi un outil précieux à la main de l’Architecte d’Entreprise.

C’est aussi un outil fédérateur pour tous les acteurs, car il se focalise sur ces invariants, dont la définition est à la base du fonctionnement cohérent et harmonieux de l’entreprise, ou de l’écosystème. En ce sens, il contribue à la légitimité des Architectes, car ceux si se focalisent sur :

  • Une cohérence a minima, non invasive, ouverte à la subsidiarité,
  • Une projection sur du long terme par le choix des bons pivots de l’évolution.

Enfin, cette Architecture est « « Data Centric », ce qui correspond à l’Etat de l’Art actuel, et, plus fondamentalement, elle est « Event Centric », permettant un alignement aux exigences d’instantanéité et connectivité généralisée actuelle. Le traitement des événements, est un des piliers majeurs de cette méthode avec les patterns de Puits d’événements, et de Tri-datation.

En conclusion la flexibilité est une capacité clé pour l’Architecture d’Entreprise. Elle ne doit pas être confondue, ni opposée, à l’agilité.

Les démarches « agiles » posent un défi de légitimité, et d’évolution métier, aux Architectes d’Entreprise. Avec l’Architecture Flexible ils disposent d’un outil puissant qui conforte leur apport de valeur.