En 1990, à l’Universidad de Antioquia à Medellín, il y avait une revue IEEE dans la bibliothèque dont les pages n’avaient jamais été coupées. Ce n’était pas une métaphore. Avant l’ère du livre de poche et du tout-numérique, certaines publications arrivaient pliées, les cahiers intacts, et il fallait passer un couteau ou un doigt le long du bord pour ouvrir chaque section. Si les pages étaient encore scellées, cela voulait dire que personne ne l’avait lue. Quelqu’un l’avait reçue, rangée, et oubliée. L’information qu’elle contenait était techniquement disponible et pratiquement inaccessible — un savoir en suspension, attendant que quelqu’un s’y intéresse.

Mon ami et mentor Mario Restrepo s’y intéressa. Nous travaillions ensemble depuis un moment déjà — C, Pascal, les langages de cette époque — et il avait trouvé une référence dans autre chose qu’il lisait et l’avait remontée jusqu’ici. Il me donna la référence et me dit d’aller la chercher. L’article était de Grady Booch.

Je ne savais pas, à ce moment-là, que je tenais une boussole entre les mains.

I. Ce que Booch argumentait

Ce que Booch argumentait dans ces pages — ce qu’il avait soutenu pendant des années dans IEEE Software et dans ses premiers livres sur la conception orientée objet — c’était que le logiciel n’était pas seulement un problème technique. C’était un problème de conception. La question n’était pas seulement peut-on construire ceci ? mais devrait-on le structurer ainsi ?, et répondre à cette question exigeait du jugement, une sensibilité esthétique, une compréhension de ce à quoi servait le logiciel dans le monde au-delà de la machine. Il s’appuyait sur l’architecture — sur Christopher Alexander et l’idée des design patterns comme solutions à des problèmes récurrents, sur le langage que possèdent les bâtiments et que les programmes commençaient à peine à développer. Il insistait sur le fait que la qualité de l’architecture logicielle était lisible, que la bonne structure pouvait se distinguer de la mauvaise, et que la discipline qui consistait à faire cette distinction était quelque chose qui pouvait s’apprendre, s’enseigner et se pratiquer.

Ce n’était pas ainsi qu’on parlait du logiciel en 1990, du moins pas majoritairement. On en parlait comme d’un artisanat technique : on apprenait le langage, on apprenait les algorithmes, on faisait fonctionner le tout. La question de savoir si c’était bien fait était un luxe, quelque chose dont on s’occupait après l’échéance. Booch disait non : la structure était l’essentiel, et se tromper tôt signifiait payer pour toujours. La métaphore à laquelle il revenait sans cesse était l’architecture parce que l’architecture, contrairement à la plupart des ingénieries, produit des artefacts dans lesquels les humains doivent vivre — non pas seulement utiliser, mais habiter.

Un jeune de dix-huit ans à Medellín, dans une bibliothèque d’une ville dont les nouvelles quotidiennes étaient souvent catastrophiques, lisant une revue non coupée sur la conception logicielle : c’est ainsi que les trajectoires changent. Non pas avec fanfare, mais avec un couteau le long d’un pli.

II. La relation asymétrique

Au cours des trois décennies suivantes, je lus ses livres. Object-Oriented Analysis and Design with Applications connut plusieurs éditions à mesure que le domaine évoluait, et chaque édition était Booch qui mettait à jour sa pensée, pas seulement ses exemples. Je suivis ses conférences, ses essais, ses apparitions dans des colloques où il parlait du logiciel non comme d’un produit mais comme d’un projet civilisationnel — de ce que signifie le fait qu’une si grande partie de l’activité humaine soit désormais médiée par du code écrit par des gens qui n’ont jamais réfléchi attentivement à ce qu’est le code. Je le vis devenir l’une des voix qui insistaient pour que le génie logiciel soit une discipline ayant besoin d’histoire, de philosophie et d’éthique aux côtés de ses algorithmes et de ses structures de données.

Rien de tout cela n’était une relation au sens ordinaire du terme. Il ne savait pas que j’existais. La dette était invisible des deux côtés — je lui devais quelque chose qu’il ne savait pas m’avoir donné.

Et puis, des années plus tard, dans une étrange clôture d’un cercle que je ne savais pas ouvert, j’ai contribué à l’un de ses projets — le projet Computing: The Human Experience — dans ce que je ne peux décrire que comme une capacité nano-scopique. Mon nom n’apparaît nulle part qui compte. Mais j’étais là, de la plus petite façon possible, à l’intérieur d’un projet de l’homme dont la revue non coupée avait orienté ma vie dans une direction que je n’aurais pas trouvée autrement. La proportion entre la dette et le remboursement ne valait pas même la peine d’être calculée. Ce qui importait, c’était la clôture.

III. Ce qu’est vraiment un mentor

Mario Restrepo fut mon premier mentor au sens où le mentorat s’entend habituellement : présent, attentif, pointant des choses en temps réel, me disant où regarder. Mais la question de ce qu’est un mentor se complique lorsqu’on essaie de tracer la frontière clairement. Booch m’a mentalisé à travers des textes, à une distance de milliers de kilomètres et d’années. Il ne savait pas qu’il le faisait. Il écrivait simplement avec soin, pensait en public, faisait le travail de quelqu’un qui croyait que les idées comptent et qu’en les articuler clairement est en soi une forme de générosité.

C’est ce que le mot humaniste signifie dans un domaine technique, et c’est plus rare qu’il ne devrait l’être. Le technocrate — et ce n’est pas une critique, c’est une description — résout le problème qui est devant lui. L’humaniste demande quel problème devrait être résolu, et pour qui, et ce que le résoudre coûtera, et si le monde qui en résultera vaudra la peine d’être habité. Booch fut et est les deux. Ses contributions techniques — la méthode Booch, les trois amigos et le Langage de Modélisation Unifié, des décennies d’écriture sur l’architecture logicielle — sont réelles et substantielles. Mais ce qui fit que l’article dans cette revue non coupée saisit un jeune de dix-huit ans à Medellín n’était pas la technique. C’était la sensibilité : l’insistance sur le fait que l’artisanat a une éthique, que la structure a une responsabilité, que les gens qui construisent les systèmes dans lesquels nous vivons devraient réfléchir soigneusement à ce qu’ils construisent et pourquoi.

Nous avons besoin de plus de gens comme lui. Pas plus de prodiges — il ne manque pas de talent dans cette industrie. Nous avons besoin de plus de gens qui comprennent que savoir comment faire quelque chose ne règle pas la question de s’il faut le faire, et qui sont prêts à tenir les deux questions à la fois, en public, pendant des décennies, dans des revues qui resteront peut-être non lues sur des étagères de bibliothèque jusqu’à ce que quelqu’un passe enfin un couteau le long du pli.

Mario, merci de m’avoir passé le couteau.

Grady, je te dois plus que je ne peux calculer, et je suis reconnaissant pour chaque année de cela.

Pour aller plus loin