Développer avec l’IA

Développer avec une IA, c'est non seulement confortable, mais c'est d'une puissance inimaginable...

L’utilisation de l’Intelligence artificielle dans le développement de logiciels offre des avantages multiples, que j’ai déjà évoqués dans plusieurs articles, notamment ici et surtout . L’IA offre un confort et une souplesse inégalés, et pour un vieil informaticien comme moi, cela représente un saut technologique d’une ampleur encore jamais vue, et je suis heureux d’avoir vécu assez longtemps pour vivre cette évolution. Et pourtant, j’en ai connu des sauts technologiques, passant du mainframe aux stations de travail, des stations de travail aux PC modernes, passant de l’éditeur de code FORTRAN à l’état brut sur un mainframe à l’éditeur Emacs sur Unix, puis à Visual Studio et Eclipse… Bref, j’ai vu ce monde changer plusieurs fois. Mais aucun de tous ces changements ne ressemble aux changements introduits par l’IA.

Trois raisons pour développer avec une IA

Je veux revenir, ici, sur les principaux changements : la vitesse et la réduction des coûts. On parle souvent de la vitesse avec laquelle on peu désormais concevoir un logiciel ou un bout de logiciel, et c’est particulièrement vrai. Il m’a fallu moins d’un moins en temps elapsed (et probablement le tiers en cpu…) pour développer des versions fonctionnelles de SEOlovely et Geneafree. Il me faut quelques dizaines de minutes ou à peine plus d’une heure pour développer un petit script quelconque sur mesure, à partir d’un prompt bien léché, pour traiter des données spécifiques. Bref, on peut tout faire en un rien de temps et c’est assez incroyable. On finit par avoir l’impression de rejoindre une communauté de divinités, capables de créer ce qui leur passe par la tête en un claquement de doigts.

On parle aussi souvent, hélas, de la réduction des coûts et notamment de ceux induits par la taille des équipes de développement impliquées dans la conception, le développement ou la maintenance de logiciels et de solutions informatiques. C’est vrai, et on voit déjà quelques charrettes apparaître chez de grands éditeurs comme Microsoft. Cet effet doit cependant être pondéré par les salves de recrutements massifs qui ont eu lieu depuis une demi-douzaine d’années, dans la continuité de l’épidémie de Covid-19, à un moment où l’effort sur la transformation digitale des entreprises pouvait justifier un accroissement des effectifs. Accroissement qui aurait dû être ponctuel, et qui trouve, dans l’IA, une ponctuation bien à propos.

Mais je voudrais évoquer ici un autre aspect de l’IA, qu’on aurait tort de négliger : sans IA, on se contente souvent du strict nécessaire, du cahier des charges fourni en amont, sans vraiment viser plus haut. Avec l’IA, le cahier des charges évolue au fil du temps, à une vitesse astronomique. Sans IA, la durée d’un développement, de quelques jours à quelques mois, implique qu’on doit nécessairement passer à l’étape prévue précédemment dans le cahier des charges qu’on nous demande de respecter. Il n’y a pas – ou peu – de place pour des écarts, des innovations ou des améliorations substantielles non justifiées.

Mais avec l’IA, on va si vite, qu’on peut tester les nouveautés alors que la réflexion sur ce qui doit être produit réside encore toute fraîche dans notre tête. On peut beaucoup plus facilement challenger le cahier des charges, et introduire des évolutions qui n’auraient sans doute pas été envisagées au préalable. On repousse les limites à tout instant, jusqu’à les faire disparaître.

L’exemple de Geneafree

J’en veux pour illustration la genèse de Geneafree. Ce logiciel est sorti de nulle part, et si on lui cherche une origine, il faut la chercher vers 2017-2018, à l’heure où je faisais mes premiers pas sur MyHeritage. À l’époque, j’étais déjà confronté à deux questions importantes : que faire de mon arbre le jour où j’arrêterai d’utiliser MyHeritage, dont la version payante que j’utilise finit par revenir cher (260 euros / an) ? Et comment éviter, quand on gère un arbre de plusieurs milliers de personnes de créer, des doublons ?

À l’époque, la solution pour moi s’appelait – et s’appelle toujours GEDCOM. C’est le format d’export des arbres généalogiques (pour plus d’explication, lisez Le guide pratique de la généalogie 2.0…) et très vite, alors que je m’étais mis à coder en python pour des besoins internes à l’agence (un logiciel de gestion des flux sur les réseaux sociaux), je me suis lancé dans un petit projet perso : lire un fichier GEDCOM, et être capable de l’interpréter.

Le fichier GEDCOM assurait la pérennité des données représentées (mis à part les photos et documents attachés). Cela permettait de résoudre le premier problème. Pour résoudre le second, j’ai développé une interface en mode texte pour chercher des individus, à partir de leur nom, de leur prénom ou de leur conjoint, sortir des statistiques par ville ou par date, etc. Adepte du shell Unix et du mode texte, j’étais heureux et très à l’aise avec cet outil. Mais dès que j’en parlais à mes proches, cela ne leur disait rien. Et quand j’expliquais à mes neveux que je pouvais sortir la liste de 600 et quelques descendants de leur ancêtre commun, le listing que je leur mettais sous les yeux ne leur parlait pas vraiment.

Bref, il fallait passer à quelque chose de plus graphique. J’ai donc amélioré mon outil pour offrir une interface web, permettant de lancer des recherches ou d’extraire des statistiques. Fort bien, mais en termes de visualisation, j’étais toujours avec un listing peu séduisant.

Pas très sexy, je l’avoue…

J’ai donc essayé de me lancer dans une version graphique, dans le même genre que MyHeritage. Sauf que développer un truc qui gère des arbres de tailles variées, avec des liens pour développer telle ou telle branche, faire varier la profondeur, gérer les mariages multiples, les mariages entre cousins, les changements de proportion… c’est vraiment sciant, comme Claude Deschamps. Bref, je n’ai jamais réussi à sortir quelque chose de convenable.

C’est alors que l’IA est apparue.

D’abord avec Codex, j’en ai parlé ici. J’ai ainsi pu m’appuyer sur un module de décodage du format GEDCOM, au lieu de m’appuyer sur mon propre code, encore largement buggé. Et j’ai sorti un résultat graphique. C’était sympa, pratique et le résultat était vraiment très parlant. Les neveux ont tout compris. Et là, ça m’a donné des idées. Et c’est ce que j’évoquais plus haut : en passant d’un développement 100% humain à un développement assisté par l’IA, j’ai commencé à réfléchir à autre chose tout en laissant l’IA travailler pour moi.

Ce qui me gêne chez MyHeritage, Geni et d’autres outils de généalogie, c’est que leurs interfaces suffisent certes à gérer des arbres, mais n’assistent pas suffisamment le généalogiste dans son quotidien. Et dans son quotidien, il y a la commande de documents d’état-civil, par exemple. Ou la recherche de doublons. Ou la comparaison de bouts d’arbre pour déterminer les liens possibles. Bref, il y a plein de choses qui me trottaient dans la tête et que je me suis mis à coder. En commençant par la commande d’actes.

Commander un acte de décès, en France, c’est très simple. On va sur le site Service Public, et on suit le processus en 4 ou 6 écrans. C’est gratuit et super efficace. Mais ça ne gère pas 100% des communes françaises. Certaines n’offrent toujours pas d’autre moyen de commander un acte que par courrier. D’autres offrent un moyen numérique (pour la commande, mais pour la livraison, hélas, on reste sur du papier dans la quasi totalité des cas…) mais ce moyen informatique, un site internet, varie selon la commune. Il existe donc des sites dédiés pour Paris, Marseille, Villejuif, Grenoble, Bondy, etc. À ce jour, j’en ai décompté une cinquantaine pour ce qui m’intéresse, les actes de décès de personnes issues de familles juives et nées en Tunisie.

Je me suis donc mis à développer, toujours avec l’aide de l’IA (ChatGPT à l’époque), un script python qui prend une liste d’individus dont je connais la date et le lieu de décès (liste établie en scrappant les données de l’INSEE, toujours avec l’aide de l’IA…) et qui, selon la ville, déroule le dialogue d’une commande en ligne, dans un navigateur Chromium. Ce n’était pas une mince affaire, et même avec l’aide d’une IA, cela m’a pris plusieurs heures. Au final, je gérais tant bien que mal Paris, Neuilly, Marseille et Villejuif.

Si c’était possible avec ces villes là, ça devrait aussi l’être avec d’autres villes ayant leur propre système de commande, et là encore, c’est l’IA qui a été mise à contribution, dans le respect d’une architecture souple et évolutive que je lui ai demandé de respecter. Il me suffit désormais de lui fournir une liste ed villes et le point d’entrée du site de commande d’acte pour chaque ville, pour que Claude Code détermine la plateforme utilisée puis teste la navigation par lui-même, analysant le code JavaScript et les types d’informations requis. Au final, la cinquantaine de villes dont je parlais plus haut est parfaitement géré. Et ce qui m’est utile peut désormais être utile à d’autres personnes.

Mais je m’égare, revenons à nos moutons. Voyez-vous où je veux en venir ? En partant d’une simple idée pour un usage personnel, je suis parvenu à un logiciel généraliste en un rien de temps, couvrant bien plus que mon cahier des charges initial.

C’est cela qui , pour moi, représente le principal apport de l’IA pour un développeur de logiciels.

Sky is the limit…

Herve Kabla
Herve Kabla

Hervé Kabla, ex-DS, ancien CTO de start-up, ancien patron d'agence de comm', consultant très digital et cofondateur de la série des livres expliqués à mon boss.

Crédits photo : Yann Gourvennec

Articles: 5352

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *