mardi 18 avril 2023

La nature hybride du système d'information

La domestication du cheval a fait naître le personnage du cavalier, être hybride, ou encore celui du chevalier, cavalier expert dans le maniement de ses armes1.

Le couple que forme l’être humain avec son « ordinateur » fait lui aussi émerger un être hybride, le « cerveau d’œuvre » qui résulte de la symbiose de l’informatique avec un être humain2. L’informatisation d’une société, d’une institution ou d’une entreprise réalise une autre symbiose : celle de l’informatique avec une organisation ayant une histoire, des valeurs, sa sociologie intime et un comportement collectif. Comme toute symbiose, cette dernière fait émerger un être nouveau : le système d’information.

L’intelligence humaine qui a été stockée dans les processeurs, mémoires, logiciels et réseaux, rencontre dans le système d’information une intelligence humaine vivante, active mais emmaillotée dans la sociologie de l’organisation. La complexité de cette hybridation ne peut être surmontée que par une technique particulière, qui ajoute aux techniques de l’informatique des exigences analogues à celles du métier des armes ou de la diplomatie, arts confrontés tous deux aux aléas et incertitudes des comportements.

Ces aléas et ces incertitudes n’empêchent pas qu’il existe, pour répondre à ces exigences, des principes qui certes ne suffisent pas à garantir le succès, mais dont on ne saurait s’écarter sans courir à l’échec. On pourrait croire qu’une intuition éclairée par le bon sens puisse suffire pour posséder et appliquer ces principes, mais la décision risque d’errer – et, en fait, errera fatalement – si elle n’est pas guidée par un intellect qu’ont armé l’expérience et la réflexion.

On rencontre parfois, trop rarement, des entreprises admirablement informatisées – Amazon, Décathlon, etc. Elles ont été organisées, elles sont animées par des entrepreneurs : lorsqu’on s’enquiert auprès des salariés des raisons d’une telle réussite, ils répondent invariablement « le patron s’est impliqué personnellement ». C’est en effet nécessaire pour que l’entreprise puisse surmonter les obstacles que les habitudes et la sociologie des pouvoirs opposent toujours à l’informatisation.

La construction et le fonctionnement d’un système d’information obéit à quelques ingénieries dont chacune apporte son lot de principes et que l’on peut délimiter ainsi : l'ingénierie sémantique définit le langage de l’entreprise avec l'administration des données et les référentiels ; l'ingénierie des processus structure l'action productive avec la pensée procédurale et la modélisation ; l'ingénierie du contrôle éclaire le pilotage avec les indicateurs et tableaux de bord ; l'ingénierie d'affaires éclaire l'orientation stratégique et le positionnement de l'entreprise en interprétant les données que procurent le système d’information et l’observation du monde extérieur.

L'ingénierie du système d’information ne se confond donc pas avec l'ingénierie de l'informatique qui, avec l'architecture des logiciels et le dimensionnement des ressources, fournit sa plate-forme physique et logique à l'informatisation : l'informatique et l'informatisation sont dans un rapport dialectique analogue à celui qui existe entre la construction navale et la navigation.

Cette dialectique est cependant masquée par la simplicité illusoire de la vie quotidienne :

– les personnes, équipées à leur domicile d’un ordinateur et d’un réseau WiFi, accompagnées par un smartphone qui leur procure un accès permanent à la ressource informatique, peuvent croire celle-ci banale et « naturelle » ;

– les salariés, dont l’activité passe par l’interface qui les relie au système d’information, ignorent la complexité de son architecture et s’irritent de ses éventuels défauts ;

– parmi les dirigeants, rares sont ceux qui possèdent une intuition exacte de ses exigences et de ses apports ;

– de grands informaticiens, fascinés et passionnés par leurs techniques, ne s’intéressent pas aux systèmes d’information dont la nature hybride les contrarie ;

– l’enseignement de l’informatique ignore souvent les systèmes d’information et n’explique donc pas aux étudiants à quoi sert l’informatique ;

– des méthodes pompeusement nommées « méthodologies » proposent des garde-fous, mais ils ne peuvent être respectés que par des personnes conscientes de leur raison d’être ;

– alors que la qualité des systèmes d’information est cruciale pour l’efficacité des services publics comme pour la compétitivité des entreprises, elle ne figure pas parmi les priorités de l’État.

Il résulte de cette situation une surprenante abondance d’erreurs dans la démarche de l’informatisation et dans l’ingénierie des systèmes d’information. Le bon sens devrait suffire, semble-t-il, pour s’en prémunir et les corriger quand elles se révèlent. Il n’en est rien : il faut donc connaître et expérimenter les principes techniques propres à l’informatisation.

La série « ingénierie du système d’information » en contient une description schématique.

____

1 Marc Bloch, La société féodale, Albin Michel 1939.

2 « The hope is that, in not too many years, human brains and computing machines will be coupled together very tightly, and that the resulting partnership will think as no human brain has ever thought and process data in a way not approached by the information-handling machines we know today » (Joseph Licklider, « Man Computer Symbiosis », IRE Transactions on Human Factors in Electronics, mars 1960).

samedi 15 avril 2023

Prévisible ≡ programmable

Je dis que tout ce qui est prévisible est programmable, et que tout ce qui est programmé est prévisible. Il y a donc identité entre « programmable » et « prévisible ».

Qu’est-ce que cela veut dire ? Il est clair qu’un programme peut parfois fournir un résultat surprenant, donc imprévu. Comment puis-je alors dire que « programmable » et « prévisible » sont des mots pratiquement synonymes ?

Ce qui est prévisible, c’est le fait que l’exécution d’un programme consiste à effectuer l’une après l’autre les opérations qu’il prescrit au processeur, opérations qui sont inscrites dans les lignes de son code et donc, oui, prévues.

Cependant les résultats que donne le programme peuvent être imprévus car les données qui sont insérées dans le programme y introduisent un aléa, celui du monde extérieur, de l’Existant que ces données reflètent. Ainsi ce qui est prévisible, c’est l’exécution du programme et non son résultat, lequel dépend certes du programme mais aussi de l’aléa qu’y introduisent les données.

Ce qui est prévisible est programmable, mais il ne s’agit pas de prévoir un événement : on ne peut prévoir que la succession des opérations que le programme accomplira sur l’événement initial que lui apportent les données (succession compliquée parfois par des branchements if… then… ou par des interventions humaines qui insèrent des données en cours d’exécution), et comme cet événement initial introduit un aléa dans l’exécution du programme il se peut que celle-ci donne comme résultat un événement imprévu et surprenant : les résultats de l’intelligence artificielle peuvent ainsi nous sembler parfois magiques.

Résumons : ce qui est prévisible, c’est la suite des opérations, des actions, que le processeur exécute automatiquement en obéissant aux instructions que contient un programme. Le résultat dépend bien sûr du programme, mais aussi des données qui y sont introduites et qui sont une image du monde réel, de l’Existant dont elles partagent la complexité sans limite : il est donc naturel que souvent (et non toujours, certes) les résultats soient imprévisibles.

Ajoutons une réserve : si tout programme est un produit de la pensée humaine la plupart des grands logiciels, construits par fusion d’éléments dont le programmeur ne peut connaître que l’interface de programmation, sont le produit d'une pensée en cascade dont la compréhension ne se transmet pas d'un étage à l'autre. Cela les rend aussi complexes devant l’intellect qu'un être naturel ou matériel et leur exécution, pourtant automatique, peut donc comporter des surprises (les « bogues »).

La phrase « tout ce qui est prévisible est programmable » donne cependant une règle utile pour délimiter le domaine propre de l’informatisation : les tâches prévisibles et en particulier les tâches répétitives, qui sont éminemment prévisibles, ont vocation à être informatisées et automatisées sous la seule contrainte de la rentabilité de l’investissement nécessaire.

Il est vrai que l’on peut programmer une production de nombres pseudo-aléatoires, donc imprévisibles en principe. Ce qui sera prévisible alors, ce ne sera pas les nombres que le programme fournit mais le fait qu’il exécute une instruction (comme par exemple $RANDOM sous Linux) dont le résultat, pseudo-aléatoire, peut avoir une influence elle-même programmée sur l’exécution des instructions suivantes.