Introduction
Il se dit beaucoup de choses sur l'IA, mais concrètement à quoi ça sert pour un développeur. Je devrait peut être commencer par présenter mon travail en tant que développeur et administrateur système, afin de mieux expliquer comment je peux utiliser l'IA pour améliorer mon travail, et le service rendu à l'entreprise qui m'emploi ou à mes clients.
pendant ma carrière dans l'informatique, j'ai acquis des connaissances très diverses. Je suis à la fois développeur de logiciels de gestion, d'outils génériques et administrateur système.
Les logiciels de gestion que j'ai développés répondent à tout le spectre de la gestion d'une entreprise. À savoir la comptabilité, la facturation client, y compris la gestion des commandes et livraison, la gestion de stock, la gestion de la fabrication/production (GPAO), la gestion des matières premières, des commandes et livraison fournisseur, le rapprochement des factures fournisseur, la valorisation du stock, le rapprochement bancaire, l'impression de chèques, l'émission de virements. Mais aussi la gestion dans la banque pour les comptes bancaires, les comptes titres, les déclarations règlementaires, la comptabilité. La gestion de documents, que ce soit le suivi de courriers ou le traitement de documents pdf. Tous ces domaines font appels à des connaissances fonctionnelles différentes, mais techniquement les développements peuvent en partie faire appel aux mêmes technologies.
La seconde partie est plus technique et regroupe le développement de framework et d'outils nécessaires au développement informatique. À savoir des outils génériques pour la création de menus, écrans de saisie et de requête, des outils plus spécialisés pour l'impression de documents ou la transformation des impressions en pdf, mais aussi la gestion des livraisons des développements avec un repository (CVS ou git), le transfert de fichiers, l'accès aux données depuis le web. Cette partie fait appel à des technologies et des langages plus divers.
La troisième partie concerne l'administration système. À savoir l'installation système, le contrôle de l'état du serveur, l'installation des applications et leur mise à jour, la gestion des logs, la planification des traitements. Cette partie fait appel à des connaissances plus diverses, mais les langages de développement sont plus simple et en nombre plus réduit que pour la seconde partie.
Ce qu'il faut retenir de cet liste que j'ai souhaité détailler, c'est que j'interviens dans des domaines très divers et qu'il n'ai humainement pas possible de tout savoir faire sans une mise à jour régulière de ses connaissance. Avant internet, il fallait lire la documentation et passer du temps à tester. Avec l'arrivée d'internet et l'amélioration de ses moteurs de recherche, il était possible de trouver plus rapidement l'information. Quand internet a grandi, cette recherche est devenue plus complexe, car il y a beaucoup de sources d'informations qui ne contiennent pas toutes la bonne réponse. L'arrivée de l'IA permet d'obtenir un résumé des informations disponibles. L'IA ne sait pas dire quelle est la bonne réponse, n'indique pas quel niveau de confiance il faut accorder à sa réponse, contrairement à une recherche sur le web lors de laquelle on peut évaluer le nombre de réponse et comparer les différentes sources.
Histoire
Après le lancement des premières IA généralistes, je n'ai pas tout de suite utilisé ces outils. J'ai suivi l'actualité, soit via un magasine scientifique d'information soit via des médias généraliste. J'en ai surtout retenu le manque de compréhension que la communauté scientifique a du fonctionnement intime de l'IA. Les concepteurs ne savent pas pourquoi cela fonctionne dans un cas et pas dans un autre. Ils ne savent pas justifier les réponses. C'est très déroutant pour l'esprit cartésien que je suis. J'ai vu l'IA comme étant le résultat d'un calcul probabiliste, mais sans raisonnement. Devrait-on l'appeler générateur de réponse probabiliste
au lieu d'intelligence artificielle
?
J'ai commencé à utiliser l'IA il y a environ 18 mois. L'entreprise pour laquelle je travaillais venant d'être rachetée par un groupe Américain, le CTO nous a expliqué son expertise en IA et nous a annoncé ces objectifs. L'utilisation de l'IA devait nous permettre de doubler notre productivité tout en générant moins de bug. Ils nous a fait une présentation générale de l'IA, avec ChatGPT, nous montrant comment elle peut extraire des informations, résumer une présentation, traduire un texte et réaliser des développements. Je dois dire que les résultats sont assez impressionnants.
Le seul problème c'est que je suis développeur Pick. Pour développer avec cette base de données multi-dimensionnelle on utilise un Basic de gestion. Ce Basic n'est pas similaire au Basic Microsoft (le Quick-Basic, le Visual-Basic ou le VBA). La première démonstration ne m'a pas convaincu. L'IA ne maitrise absolument pas la déclaration des variables, des routines, l'utilisation des conditions et encore moins l'utilisation des tableaux dynamique. Un tableau dynamique c'est comme un tableau dimensionné, mais il n'y a pas de déclaration à faire et on peut utiliser un nombre de dimensions variable selon la valeur du premier indice. L'IA a tendance à utiliser la syntaxe d'autres langages, à déclarer le tableau. Pour les conditions, le Basic Pick est le seul langage qui nécessite un END avant le ELSE, l'IA n'y arrive pas non plus.
Dans les premier mois, j'ai utilisé l'IA pour les traductions les emails reçus ou envoyés aux équipes Anglophones, et pour développer dans des langages plus courants (pages web - html/css/javascript -, Shell, Perl, C/C++). Avec ces langages, c'est vrai que l'on gagne énormément de temps. Surtout pour la conception de pages web complexes, je connais les principes, mais j'ai du mal à créer le bon rendu rapidement. L'IA permet de réaliser la mise en page beaucoup plus rapidement et le gain de +100% est certainement atteint. La seule contrainte c'est qu'il faut réaliser la mise en page par étape et ne pas demander à l'IA de respecter un modèle avec des zones de taille fixe, l'IA n'a pas de vision
.
J'ai essayé quelques demandes simple en Pick Basic, mais sans arriver à gagner du temps. J'ai essayé, en vain, deux méthodes :
- Fournir à l'IA la documentation de l'éditeur de la BDD Pick, mais j'ai relevé deux problèmes. La documentation est très volumineuse et l'IA ne semble pas arriver à en extraire l'essentiel. Pour cela, il faudrait certainement utiliser d'autres outils pour spécialiser l'IA, lui apprendre comment fonctionne le langage, mais ces fonctions nécessitent d'autres compétences que la simple utilisation du
chat
. La documentation est écrite en anglais et quand je pose une question c'est en Français, il est difficile de faire la correspondance entre les termes utilisés dans la documentation et ma question. - Rédiger un cours de programmation en Basic Pick avec des exemples. Cela donne de bon résultats, mais l'IA n'applique pas les règles à chaque demande. En cas d'erreur, il faut lui indiquer de relire la règle afin qu'elle se corrige.
Pour le Basic Pick j'en suis resté là pendant près d'un an. Ça a été une période décourageante, mais la solution est venue ensuite, un peu par hasard.
Entre temps, j'ai du répondre à un autre challenge. Il a fallu migrer des vieux serveurs. Ils étaient hébergés sur des serveurs physiques chez un FIA local et utilisaient un logiciel de virtualisation du commerce. Il fallait les migrer vers une plateforme cloud, chez un grand fournisseur qui a des centres de données partout dans le monde. Cette migration à nécessité de remplacer le système de virtualisation par un autre et de reconstruire le réseau. Ces deux parties ont nécessité beaucoup de tests, la création des scripts pour automatiser la migration et l'analyse de l'existant pour regrouper les informations qui n'étaient pas bien documentées. Pour toutes ces actions l'IA a été d'un grand secours. Sans IA, il faut rechercher sur le web pour trouver une page qui décrit le même problème, vérifier si elle contient la description d'une solution. Souvent il faut lire de nombreuses pages ou de nombreuses discussions, afin de trouver une solution qui fonctionne. L'IA fourni une réponse synthétique qui permet d'appliquer avec une ou plusieurs solutions. Cela fonctionne assez souvent. Dans ce cas le gain est certainement supérieur à une production doublée.
Ensuite j'ai changé de travail pour devenir prestataire indépendant. Pour présenter mon activité, j'ai créé un nouvelle version du site web dans lequel j'ai décrit mon expertise un peu comme un CV interactif. Cela me permet aussi de montrer que je sais créer un site web dynamique. L'IA m'a bien aidé pour obtenir le rendu et l'interactivités souhaités. Sur mon serveur, j'ai retrouvé un miroir du site du regretté Bruno Béninca, son libre datant de 1994 Advanced Pick & Unix. Ce livre décrit l'utilisation et la programmation de Pick, y compris le Pick Basic. C'est un cours beaucoup plus léger que la documentation de référence et surtout écrit en Français. Dans un premier temps j'ai laissé ces pages de coté sans savoir à quoi cela pouvait me servir.
À suivre...