Tuesday, November 29, 2016

L'évolution darwinienne des Systèmes d'information

Dans un monde qui semble imprévisible, avec des bouleversements économiques, sociaux, technologiques, les certitudes et rationalités passées sont remises en cause.
De quoi le monde de demain sera-t-il fait ? Un monde hyper-connecté, mais avec quelle redistribution du travail et des richesses ? Quels "business models" à succès, au delà des ubérisations de facilité ?

On prédit que d'autres grandes entreprises globales suivront le sort de Kodak, vont disparaître, qu'une multitude d'emplois traditionnels seront exclus de l'économie, que des légions de start-up vont tailler des croupières aux groupes les plus puissants...

Dans l'économie des systèmes d'information, qu'elle soit interne à l'entreprise, ou plus globale, le "bouillon de culture" d'une évolution darwinienne est aussi à l'oeuvre, dans une remise en cause généralisée des architectures, méthodes et outils traditionnels.

Cette métaphore de l'évolution nous ouvre une double perspective : celle de l'effet déterminant des aléas, et celle des répercutions "systémiques" aux conséquences souvent violentes.

Cette vision s'applique particulièrement bien aux systèmes d'information.

L’Écosystème et ses cycles de vie


Infographie d'un écosystème
Le terme d'écosystème caractérise un ensemble dont les composants sont :

  • variés : par exemple des entreprises et organisations multiples, ou, dans le SI : des composants (micro-services, composants d'intégration, APIs, ...), ou en biologie des cellules, des bactéries, ...
  • vivants en symbiose forte, avec des interactions synergiques : tissus de PME, systèmes complexes, biotopes, ...
  • en mutation continuelle : démographie des entreprises, création de composants logiciel, mutations génétiques,... 
On peut analyser le fonctionnement d'un écosystème, quel qu'il soit, à plusieurs niveaux :
  • celui des opérations individuelles, cycles qui font vivre les organes, individus, entreprises, avec leurs diversités et leurs symbioses...
  • celui de l'ensemble constitué par l'écosystème, dans une vie globale, en abstraction des vies détaillées, comme on observe la vie d'un corps humain en abstraction de ses vies cellulaires, des vies bactériennes qui l'habitent.
Cette analyse, qu'elle soit individuelle ou globale, est faite "à système constant". En quelque sorte comme si les règles de fonctionnement étaient figées. Mais il y a aussi, dans l'échelle temporelle d'un écosystème, d'autres évolutions, fondamentalement distinctes des précédentes, de ces transformations opérationnelles que nous venons d'illustrer, ce sont :
  • celles des mutations qui modifient les caractéristiques "génétiques" (gènes, business model, logiciel...) des individus, 
  • les changements d'équilibre de l'écosystème, soit par l'effet des mutations, créant de nouvelles compétitions entre les espèces et une sélection naturelle, ou par l'impact de changements exogènes.
Dans le langage courant on utilise les termes de transformation (transformation numérique) de changement (conduite du changement), d'évolution (théorie de l'évolution), de mutation (mutation génétique). Il faut les relier dans une perspective systémique.

La théorie darwinienne  fournit une explication de ces transformations et évolutions des écosystèmes, dans une telle perspective.

L'Architecture d'Entreprise et la vision darwinienne des "système d'information"


La complexité des systèmes d'information n 'a cessé de croître depuis l'apparition de l'informatique. L'extension de ces systèmes, la dynamique de leur évolution, leur interaction de plus en plus intime avec le monde vivant, rend les modélisations, la maîtrise, le contrôle, la prospective de plus en plus difficiles. Pourtant les enjeux sont majeurs et dépassent la technologie.

L'Architecture d'Entreprise, sensée procurer les leviers de compréhension et de maîtrise des SI, est face à un défi. Une vision darwinienne des systèmes d'information, de leurs populations de composants, de leurs mutations continuelles, peut s'appliquer. Certes l'Architecte n'est pas un biologiste, mais il doit appréhender l'infiniment petit des micro-services, l'infiniment multiple des technologies et des solutions, dans un marais logiciel qui repousse toutes les limites.

Le courant de pensée de l'Architecture d'Entreprise est celui d'une pensée rationnelle, qui voit le SI comme un tout cohérent, décrit selon différentes vues par des cartes fidèles de son état (cartographie des fonctions, des processus, architecture technique, ...). Cette pensée rationnelle peine maintenant à saisir tout le SI et toutes ses évolutions. Elle peine à décrire la complexité des interactions systémiques, car elle utilise des prismes d'analyse classiques, figés, devenus doctrinaires.

Pourtant une vision globale des systèmes d'information, comme l'Architecture d'Entreprise a l'ambition de restituer, doit être systémique, car par delà l'apparente complexité, les interactions suivent des lignes invariantes, comme nous l'avons maintes fois expliqué sur ce site.

Par ailleurs, la culture de l'ingénierie des SI, n'admet pas les aléas, qui sont pourtant la règle constatée en pratique.

Au centre de la théorie Darwinienne de l'évolution, se trouve l'hypothèse de mutations aléatoires des espèces. Cette idée, appliquée au SI et à ses populations de logiciels mutantes, amène à penser que, dans le SI comme ailleurs, d'impondérables aléas jouent un rôle déterminant. Nous allons en donner l'explication.

L'effet Bolos "tombeur" des projets SI complexes


Le bolos est un lasso terminé par des brins de longueur différente et affublés de boules de diverses masses. Ce lasso, manié correctement, est très efficace pour capturer un animal, car les boules bloquent par exemple les pattes de la victime. L'explication est simple: lors du jet du lasso, parmi l'infinité de parcours des boules possible, et des enroulement provoqués, il y a une probabilité voisine de 1 qu'un des enroulements soit bloquant autour du membre de l'animal visé...

Dans le souffle en partie erratique d'un projet SI complexe, les opportunités que se crée, suite à divers aléas, dont l'origine est imprévisible, mais l'émergence une certitude, des situations malencontreuse, sont légion : communication catastrophique, déploiement de solution de rupture, choix d'infrastructure IT malheureux et inadapté, conception amont s'avérant trop tard erronée, volte-face d'un éditeur, Big Bang imprudent, ... autant d'états imprévus et souvent difficilement réversibles.

Transposons le lancer de lasso au cas de la migration induite par un projet SI complexe. La "capture de la cible" réussira-t-elle ? Supposons qu'un être supérieur, pleinement rationnel, par exemple un Architecte d'Entreprise (!) ait pu objectiver la migration de ce système complexe, et ait formalisé tous les chemins en un labyrinthe (voir par exemple l'articulation proposée ici) : selon ce plan, beaucoup de chemins de migration n'aboutissent pas, et seul un petit nombre amène au résultat.

En réalité, bien que la rationalité soit un axiome de base de la culture IT, on ne dispose pas d'un tel plan, ... en pratique, assommés par les prérequis de tout décrie et cartographier, faute de temps,de clairvoyance, face à une complexité incommensurable, les acteurs projet partent "à la découverte" de la cible, sans fil d'Ariane. C'est un péché d’optimisme, voire une croyance aveugle en l' "agilité" capable de parer à tout... Dans une cette précipitation optimiste, le parcours de migration prend la forme d'une succession de tirages aléatoires, à chaque embranchement imprévu du labyrinthe. Il faudra énergie et retards pour, par tâtonnements, trouver les bons passages. Le projet subit une inflation des coûts et délais. Qui a vécu des projets complexes pourra relater les multiples anecdotes, voltes-faces et stériles détours qui émaillent l'histoire erratique du projet. Pire, la probabilité d'être confronté, en cours de route, à une situation irréversible, un effet bolos, est forte.

Tous ces parcours de projet erratiques expliquent les statistiques d'échecs de projets, dont on connait l'accablante reproduction depuis que les projets SI existent (cf. rapport Chaos) ! Alors que seulement 2 % des grands projets aboutissent, ce phénomène perdure (voir le projet Louvois). La sélection naturelle darwinienne s'applique aux projets SI !


Le coupable est l'Architecture


Au sein du mouvement brownien des composants logiciel, avec leurs empilements coralliens, et leurs mutations constantes, que l'agilité logiciel permet de créer à tout propos, il y a 2 types de composants :
  • ceux dont les évolutions ont des effets qui se limitent à un petit nombre d'autres composants,
  • ceux dont les évolutions ont un impact général sur une vaste population de composants.

De fait, tout patrimoine SI peut être discriminé selon ce filtre. Tout patrimoine SI a une épine dorsale, qu'elle soit voulue ou subie, qui en est l'Architecture, avec un grand A. Les composants d'Architecture font partie de la classe des composants à fort impact.

Un système logiciel complexe est donc bien plus sensible aux aléas pervers affectant les composants d'Architecture, qu'aux mêmes effets s'appliquant aux composants ordinaires. Un échec, une étreinte fatale, un effet bolos, concernant des composants ordinaires ne se propage pas au sein du patrimoine, et son impact reste local. Il en va bien sûr autrement pour les composants d'Architecture.

La sinistralité des projets trouve ainsi son origine dans des erreurs d'Architecture : absence de vision systémique, ambition d'une exhaustivité illusoire, croyance en une rationalité pourtant impossible.

Pour l'Architecture, la tradition rassurante est de vouloir tout décrire, laissant ainsi agir une combinatoire infernale : on préfère une description extensive irréaliste et molle, à la rigueur se focalisant sur le noyau structurant. Dès lors les aléas se propagent de façon incontrôlée, et systémique.

En conclusion, la métaphore de l'urbanisme a déjà utilement fécondé les approches d'Architecture d'Entreprise en France. Celle de l'écosystème darwinien ouvre une perspective pour :

  • en terme d'Architecture, bannir la rigidité, la complexité, et le laisser faire : avec un minimum d'effort de conception ciblée, l'offre technologique permet une flexibilité jusqu'alors inconnue (cf. ici l'Architecture Flexible)
  • en terme de développement de composants : l'agilité permet d'accélérer le processus et d'en améliorer l'adéquation à des "besoins" locaux.

La flexibilité d'Architecture (pour aller plus loin: voir le site dédié) est indispensable à la pérennité de l'écosystème du SI.