mercredi 8 avril 2015

Les cent fleurs !



Après une année en tant qu’officier travaux au cinquième Génie à Versailles, il était temps de chercher un emploi.

Je tombe sur une annonce de la Direction des Études et Recherches d’EDF pour un poste d’ingénieur en planification des réseaux. En plein mois d’août je postule. Je suis reçu illico par Jean Bergougnoux, alors Chef de Service Adjoint au Service Études De Réseaux, puis par André Merlin alors responsable d’une des divisions du département Méthodes d’Optimisation. Ma spécialisation en Recherche Opérationnelle et en Informatique, plus ma thèse en IA, a dû leur taper dans l’œil.

En tant qu’ingénieur chercheur, je me mets à ravauder et à développer des logiciels d’optimisation de réseaux électriques, pour la planification ou l’exploitation.
Je réalise en particulier un logiciel, Corali, bourré d’heuristiques complexes, avec en particulier un interpréteur d’interpréteur des paramètres d’heuristique. Toujours plus féru d’informatique, j’y instille certains paradigmes de la programmation « robuste » : vérification d’invariants, de pré et post conditions, zones de contrôle, « blocs de recouvrement » (mauvaise traduction de « recovery blocks »). 

Il faut dire que je n’avais que Fortran sous la main, dont je poussais le compilateur dans ses derniers retranchements. Une des caractéristiques désagréables de l’implémentation de ce langage sur IBM 360 était l’aisance avec laquelle on pouvait générer des écrasements mémoire des données et même des instructions. 
Devenu débuggeur hors pair, je tombais sur au moins sur deux erreurs du compilateur. Cela m’a couté quelques jours et nuits de recherche, penché sur les dumps et le code assembleur généré par le compilateur.
Au bout du compte le programme était d’une fiabilité hors pair et fut utilisé pendant une dizaine d’années. Quasiment sans maintenance du cœur ! Et pour une mauvaise raison ! J’avais fait quelque chose de si compliqué qu’il était pratiquement impossible de le maintenir… Cela me servit de leçon ; « keep it as simple as possible » ; on écrit un programme pour une machine, mais il ne faut pas oublier ceux qui viendront derrière.
Pour me racheter, je créais à la DER, le GOM (Groupe Outils et Méthodes), une sous-commission de la commission interservices Génie Logiciel. C’était la grande époque des premiers projets d’AGL (ateliers de génie logiciel), ce qui m’a permis de rencontrer plein de monde hors d’EDF. La quasi-totalité de ces ateliers sont morts en bas âge, à peu près en même temps que le « plan calcul ».

Après d’aussi bons débuts, on me confia la responsabilité, au sein du Service Études De Réseaux, du petit groupe AISE : Algorithmes, Informatique et Systèmes Experts.

Il faut dire, qu’au milieu des années 80, la DER découvrait enfin « l’Intelligence artificielle ». S’ensuivit une période frénétique : une dizaine d’équipes réalisait une centaine de systèmes experts ou d’intelligence artificielle. Une équipe reconstruisait un moteur d’inférence pour des raisons bonnes ou moins bonnes (il y en avait déjà un tas sur le marché).
Des méthodologies sophistiquées étaient utilisées pour essayer de capturer l’expertise des experts, de créer des ontologies… las ! Les cent fleurs fanèrent assez vite car l’expertise que l’on figeait dans les systèmes était toujours trop limitée. On était très loin de Watson… et de sa capacité à « analyser » des millions de pages.
À ma connaissance, seuls deux systèmes, initiés dans mon équipe au début des années 90, ont survécu… puis ont enfin été utilisés, au bout d’une vingtaine d’années dans un système d’aide à la conduite des réseaux moyenne tension, accolé à un système de conduite lui aussi issu des travaux de mon équipe. Finalement, tout arrive ! Mais j’étais déjà ailleurs.

À noter en parallèle : à peu près contemporaine de la vague des AGL, des « SE », la programmation « objets » ; ce qui avait été moi l’occasion de créer un nouveau groupe, le GLOO, qui outre les langages cultivait également les Méthodes Orientées Objets, les BDOO… 

C’était aussi l’époque où apparaissaient les stations de travail : mon équipe mis sur pied un des tout premiers réseaux de station de travail à la DER. Très vite cela fit tâche d’huile. On était en plein down sizing : pour un coût 10 à 20 fois moindres on arrivait mieux, plus efficacement, et plus agréablement pour l’utilisateur, que ce que l’on faisait sur les IBM360 de la DER.

Après tout cela, quelques années en tant que consultant senior auprès la direction du Service Études de Réseaux, à auditer projets et architectures informatiques. Puis encore quelques années à diriger le groupe qui réalisait pour la Direction de la Distribution le « Poste de Contrôle Commande Numérique ». L’occasion pour moi de découvrir le monde foisonnant des réseaux de communication informatiques et temps-réel, avec leurs empilements de protocoles.
La prochaine fois, un nouveau monde : « le SI » !