Quand on m’a dit “Et si on utilisait l’IA pour optimiser une application et réduire son empreinte environnementale ?”, j’avoue que j’ai grincé des dents : a priori, utiliser l’IA (très gourmande) pour optimiser un truc moins gourmand, ça ne me paraissait pas très intelligent.

Sauf que l’IA générative a fait beaucoup de progrès, et qu’on sait de mieux en mieux s’en servir pour faire des choses étonnantes.

Il se trouve aussi que deux de mes brillants collègues (chez OCTO) se sont vu confier une mission par un grand client : moderniser une application développée par des stagiaires au fil des années.

Dans une certaine mesure, c’est le pire cauchemar des informaticiens : une application écrite par des débutants qui sont remplacés tous les ans et ont “oublié” de documenter leur travail (parce qu’on avait oublié de leur demander de le faire).

Et effectivement, avec près de 100 000 lignes de code, c’était une horreur.

Un peu comme un plat de spaghetti, mais géant, préparé par des apprentis cuisiniers, avec des dizaines de types de pâtes et de sauces différents.

Je passe les détails de la mission, mais en substance, on a deux ingénieurs OCTO assistés par IA face à cette masse informe de code. Elle fonctionne, mais il faut la moderniser, et bien sûr personne ne comprend comment elle fonctionne. Les stagiaires successifs sont partis depuis bien longtemps.

Cette application, il faudrait aussi la connecter à une nouvelle base de données plus moderne (l’excellent logiciel libre PostgreSQL) et au SSO de l’entreprise. Et si ça pouvait tourner plus vite, ça serait pas mal, parce que la page la plus utilisée a un temps de réponse moyen de 7 secondes.

Je vous passe les détails, mais mes deux collègues s’attellent à la tâche et les résultats tombent :

  1. Le temps de réponse de la page la plus utilisée passe de 7 secondes à 0,6 secondes. 12 fois plus rapide !
  2. En 1/2 journée de travail, on est passé de 8000 requêtes SQL à… 136, soit 60 fois moins ! (et donc une base de données beaucoup moins consommatrice de ressources)
  3. La taille de l’application a été divisée par 2.

Des outils comme SonarQube donnent des indicateurs très révélateurs :

  • Problèmes de sécurité : divisés par 23
  • Indice de fiabilité : amélioré d’un facteur 7
  • Indice de maintenabilité : amélioré d’un facteur 3.

Alors oui, des humains auraient pu faire le job sans IA. Mais cela aurait été une mission vraiment horrible. Et surtout, ça aurait été beaucoup trop cher. Alors on aurait laissé dans l’état, avec des problèmes de sécurité qui ne demandent qu’à nous exploser à la figure, avec des utilisateurs frustrés qui font face à un outil lent et buggé, des ressources informatiques (du temps, de l’énergie, du matériel coûteux) gaspillées.

Bref, mon opinion sur l’utilisation de l’IA pour moderniser une base de code legacy a été sérieusement ébranlée.

P.S. : je ne suis pas en train de devenir un techno-béat de l’IA, j’ai longuement travaillé à recenser et diffuser les différents problèmes posés par cette technologie, par exemple dans la présentation L’humanité a-t-elle les moyens de s’offrir l’IA ?. J’essaye juste de recenser quand un usage raisonné de l’IA pourrait réduire l’empreinte du numérique. Voir par exemple les travaux sur EROOM.