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 » !