Mon expérience IA en tant que développeur

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 livre 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 le seul que je connaisse qui soit écrit en Français. Dans un premier temps, j'ai laissé ces pages de coté sans savoir à quoi cela pouvait me servir.

Ma nouvelle mission m'a amené à développer en Python, html/css, puis en Swift et à analyser des applications en Objective C. Pour ces langages l'IA est d'un grand secours. La difficulté est de savoir expliquer l'objectif, d'obtenir un code lisible et d'éviter la duplication de code. J'ai ainsi pu développer des scripts, pages et applications graphiques, rapidement, avec beaucoup de bibliothèques et créer des tests unitaires. Pour ces développements l'IA permet d'avancer très vite. Mais il faut tout de même comprendre le code généré, le relire, tester, et éviter que l'IA ne fasse du copier/coller au lieu de généraliser le code.

Afin de pouvoir former un nouveau développeur, j'ai échangé avec mes collègues et me souvenant du livre Advanced Pick & Unix, je leur ai donné accès à mon site. J'ai aussi essayé d'utiliser Mistral IA avec un pdf issu de ces pages. Le résultat m'a tout de suite étonné. Ce livre étant léger et écrit en Français, je peux facilement échanger avec l'IA en utilisant les termes que je connais. N'ayant jamais développé en Pick avec une équipe de langue Anglaise, je ne sais pas comment nommer les concepts et je pense que c'est un premier barrage à l'utilisation de l'IA dans ce langage peu connu.

Au fil des derniers mois, j'ai pu suivre les évolutions de quelques outils et modèles de développement IA. Les nouvelles fonctions arrivent très vite et permettent d'obtenir des résultats de plus en plus pertinents.

Rôle du développeur IA

Lorsque j'utilise l'IA, mon rôle n'est plus celui d'un développeur, je dois surveiller les résultats, via de nombreux tests unitaires, m'assurer que le code est lisible, que je comprends l'architecture et qu'il n'y a pas de duplication de code inutile. Je vois mon rôle plutôt comme un tech-lead, qui doit fixer les règles de codage, passer beaucoup de temps à relire du code, à effectuer quelques retouches et à demander des corrections. Il est assez difficile d'intervenir sur le code, car l'IA a tendance à continuer avec ce qu'elle a compris de la demande et à remettre son code, même s'il ne correspond pas au besoin.

Comment utiliser l'IA

Pour obtenir un résultat rapidement, qui soit homogène et dont la maintenance sera facilitée, il est nécessaire de prendre en comptes les points suivants (je détaille ces notions plus bas dans la page) :

  • Mettre par écrit toutes les consignes à respecter pour le projet. Pour GitHub Copilot, ces consignes sont appelées instructions.
  • Utiliser toujours la même IA. Changer d'IA c'est comme changer de développeur, la nouvelle IA va coder différemment de la précédente et va avoir tendance à réécrire le code au lieu d'effectuer de petites modifications.
  • Au début je devais découper le travail en petites tâches, ce découpage est moins important avec l'introduction du mode agent, qui permet à l'IA de découper elle même la tâche, mais il permet de mieux maitriser l'architecture créée et d'éviter de longs développements dans la mauvaise direction. Surtout en début de projet, il est préférable, même si cela va nécessiter plus d'interactions ou de remanier le code, de demander à l'IA de commencer l'algorithme, puis de lui donner pas à pas les étapes suivantes.
  • Surveiller que les instructions sont appliquées et si ce n'est pas le cas les répéter (ou demander à l'IA de relire les instructions).
  • S'assurer que l'IA peut lire les fichiers fournis avec les instructions. Par exemple j'avais un PDF avec une copie du livre Advanced Pick & Unix, j'ai mis un certain temps pour comprendre que l'IA ne pouvait pas lire ce format. J'ai du la questionner, longuement, pour avoir cette information. Il ne suffit pas d'écrire une instructions pour qu'elle soit respectée, l'IA ne semble pas savoir dire "non", ou "je n'ai pas compris".
  • Pour des tâches complexes ou difficile à expliquer, les phrases "dis moi si je dois donner plus de détails" ou "dis moi si ma demande n'est pas clair" peuvent permettre d'avoir, de le part de l'IA, une liste de questions ou une analyse à valider.

À suivre...

(dernière mise à jour le 17 mars 2026)

Installer git-credential-libsecret sur Raspbian

Il faut procédfure de la façon suivante : mkdir src cd src libsecret-1-dev libglib2.0-dev mv {,git_}libsecret cd git_libsecret sudo apt install libsecret-1-dev libglib2.0-dev make strip git-credential-libsecret sudo cp git-credential-libsecret /usr/local/bin/ Puis pour chaque utilisateur : git  […]

Continue reading

Analyse et correction de la réplication MySQL

Analyse Le problème est indiqué via la commande slave status;. Le message indique le nom du fichier binlog concerné et la position. La requête précédent cette position n'a pas fonctionné, car les données sur le serveur esclave ne sont pas conformes à celle du serveur maître. Afin d'identifier  […]

Continue reading

Mise à niveau RaspberryPI vers Debian 12 Bookworm

Il n'existe pas de procédure automatique pour mettre à niveau Debian. Ci-après les différentes étapes qui m'ont permi d'effectuer cette mise à jour, afin que le système fonctionne. Attention : Cette procédure manuelle pouvant bloquer le système, il est préférable : De sauvegarder les données avant  […]

Continue reading

Polkit : Modifier qui peut agir en tant que root

Dans une interface graphique de Linux certains paramétrages ou programmes ont besoin des droits root. C'est la configuration de polkit qui gère cette élévation de droits. Suivant la distribution ces droits sont paramétrés pour l'utilisateur root ou pour un utilisateur ayant doit à sudo. Pour ajuster  […]

Continue reading

Partage Samba entre PC Linux et Windows avec Ubuntu 16.04

La configuration par défaut de Samba sous Ubuntu 16.04 ne permet pas de partager des fichiers entre 2 PC Linux Ubuntu 16.04. Pour corriger ce problème il faut modifier smb.conf en ajoutant la lignes suivante : [global] client max protocol = SMB3 Afin d'éviter d'utiliser les vieux protocols j'ai  […]

Continue reading

Partage Samba avec liens symbolique sous Ubuntu 16.04

Ubuntu 16.04 utilise Samba 4.3.11 et la configuration a changé par rapport à Ubuntu 14.04. Si l'on souhaite partager des fichiers avec Windows en suivant les liens symboliques qui vont en dehors du répertoire partagé, il faut ajouter les options suivantes dans smb.conf : [global] unix extensions =  […]

Continue reading

Sur Ubuntu server comment supprimer l'affichage de la charge du serveur et la disponibilité des mises à jour affichés à la connexion

À la connexion sur Ubuntu server le message indique la charge du serveur et si des mises à jour sont disponibles. Pour supprimer ces messages on doit supprimer les paquets avec la commande suivante : sudo apt-get purge landscape-common update-notifier-common sudo rm -rf /etc/update-notifier Le  […]

Continue reading

Installation d'une autre version d'Ubuntu avec un live-CD

Ayant un ordinateur portable dont la carte graphique ne fonctionne plus j'ai créé un live-CD permettant de démarrer un Ubuntu avec support réseau et connexion ssh. J'ai créé mon live-CD il y a quelques années à partir d'une distribution Ubuntu 12.04, mais j'ai voulu installer la version 15.10 sur le disque dur. Voilà comment j'ai fait...

Continue reading

MySQL auto_increment

DescriptionL'auto_increment permet de définir la colonne id de la table comme étant générée automatiquement avec une valeur chronologique.Ajout d'un auto_incrementAvant de modifier la colonne il faut identifier le type de données. Ensuite pour ajouter l'auto_increment il faut utiliser le requete  […]

Continue reading

Installation d'Adobe flash player pour Windows sous Ubuntu Firefox

Sous Ubuntu la version d'Adobe flash player est bloquée au numéro 11.2 alors que beaucoup de jeux et de replay demandent une version plus rescente. Afin de contourner ce problème il est possible d'installer pipelight-multi. Voici comment l'installer proprement sous Ubuntu 14.04 ou 16.04.

Continue reading

Erreur "Echec de l'ouverture de session par le service Service de profil utilisateur. Impossible de charger le profil d'utilisateur"

Sous Windows 7, à l'ouverture de session le message d'erreur "Echec de l'ouverture de session par le service Service de profil utilisateur. Impossible de charger le profil d'utilisateur" s'affiche.Redémarrer le PC et lors du démarrage appuyer sur F8. Dans le menu choisir le mode sans  […]

Continue reading

Recopie d'une machine virtuelle

Nom du serveur Il faut modifier le nom du serveur dans les fichiers suivants : sudo vim /etc/{hosts,hostname,mailname,postfix/main.cf} Serveur ssh Après recopie de la machine virtulle il faut générer de nouvelles clés pour le serveur ssh afin que toutes les machines virtuelles n'aient pas les mêmes  […]

Continue reading

Gestion de disques lvm à partir du live CD Ubuntu 12.04

Installer le paquet lvm2 Créer les pv Créer les vg : Ajout d'un second disque avec la commande sudo vgextend hd1_vg /dev/sdc1 Utilisation des nouveaux vg : Afin que Linux reconnaissance les vg il faut exécuter la commande sudo vgchange -ay. Créer les lv Pour créer un lv sans mirroir et préciser sur  […]

Continue reading

Réinitialiser les paramètres réseau avec Ubuntu 12.04

Si le serveur DHCP n'était pas disponible lors du démarrage de Linux il peut être nécessaire de réinitialiser l'interface afin qu'elle ai une adresse valide. Avec Ubuntu 12.04 la commande est la suivante : sudo initctl restart network-interface INTERFACE=eth0

Hauppauge WinTV-HVR 900 avec Ubuntu 12.04

Dépôt multiverse Installer linux-firmware-nonfree cd /lib/firmware sudo wget http://kernellabs.com/firmware/drxd/drxd-a2-1.1.fw sudo wget http://kernellabs.com/firmware/drxd/drxd-b1-1.1.fw

Page top