Le dev simple, efficace et élégant.

Les enseignements que je tire de ma collaboration avec l'IA

Dernière édition :

Table des matières

Dans mon article précédent, je décrivais ma première expérience de Gemini Code Assist, l'assistant de codage de Google qui s'intègre dans VS Code. Pour le tester sérieusement, j'ai recréé à partir de zéro une version monolingue de mon blog. Aujourd'hui, je partage les enseignements que je tire de cette expérience, et comment j'améliore ma collaboration avec l'IA.

Les enseignements de ma collaboration avec Gemini Code Assist

Prendre le temps de bien décrire le projet 🖋

Au démarrage d'un nouveau projet, prendre le temps de bien analyser le projet dans son ensemble et de créer un fichier readme précis et assez complet. Cela permet tout d'abord d'être bien clair soi-même sur ce qu'on souhaite faire, puis cela facilite la tâche de l'IA et permet d'obtenir des réponses plus pertinentes.

Ne pas être trop fainéant 🥱🏖️

Lors de mon essai, Gemini a produit dans l'ensemble un code de très bonne qualité, mais tout de même perfectible à certains moments. Le conseil qu'on voit partout concernant la relecture du code produit par l'IA est donc justifié. En particulier, il est important d'avoir du recul et de se demander si l'approche adoptée par l'IA est pertinente dans le contexte.

Parfois, il est plus rapide de coder certaines choses simples soi-même que d'écrire un prompt et d'attendre la réponse de Gemini, qui peut prendre plus d'une minute pour s'afficher. En plus, cela évite de devenir soi-même trop paresseux et cela consomme moins d'énergie !

Être tolérant avec l'IA et l'éduquer 🫂

Lorsque l'IA ne répond pas à certaines requêtes comme on le souhaiterait, on peut vite s'agacer et être tenté de lui parler plus sèchement 🤬 au lieu de chercher à comprendre pourquoi elle produit ce genre de réponse.

Ce qu'il faut bien garder en tête, c'est qu'en faisant ça, on se met soi-même dans un état émotionnel qui rend le travail désagréable. Généralement, si l'IA répond à côté de la plaque, c'est que la demande n'était pas assez précise ou qu'on n'a pas fourni tout le contexte nécessaire.

Dans ce cas, il y a 2 possibilités : soit préciser ou découper davantage la demande, soit faire le travail soi-même. Si l'on produit soi-même le code, on peut en profiter pour éduquer l'IA en lui disant "voilà ce que j'attendais", et en lui fournissant le code en contexte. C'est aussi une excellente occasion de permettre à l'IA de nous faire des suggestions d'amélioration !

Tip

Finalement, il n'y a que du bénéfice à rester dans un état d'esprit de collaboration. Cela permet de rester soi-même dans une dynamique positive et agréable, et cela donne à l'IA l'occasion de s'améliorer et de nous fournir des suggestions utiles.

Ne pas être trop gourmand 🍰

Pour aller vite, on peut être tenté de demander à l'IA d'implémenter une grosse fonctionnalité en une seule fois. Mais cela ne marche pas, à cause des limites imposées par l'IA 😏. Et il n'est pas facile d'avoir une vision claire de ces limites. C'est pourquoi, vers la fin du projet, j'ai posé la question suivante à Gemini :

Quelles sont tes limites sur le nombre de fichiers et la quantité de code que tu peux générer en une seule fois ? Par exemple, si je te donnais les maquettes d'un blog complet, serais-tu capable de générer tous les fichiers en une seule fois ?

Voici sa réponse :


Bonjour ! C'est une excellente question qui touche au cœur de la meilleure façon de collaborer avec une IA comme moi.

Pour répondre directement : non, je ne serais pas capable de générer tous les fichiers d'un blog complet en une seule fois à partir de maquettes. Il y a deux raisons principales à cela :

  1. Limite de taille de la réponse : Chaque réponse que je génère a une taille maximale. Un projet complet, même un blog statique simple, contient de nombreux fichiers (HTML, CSS, JavaScript, configuration, etc.) et dépasserait très certainement cette limite.
  2. Complexité et qualité : La création d'un logiciel est un processus itératif. Demander de tout générer d'un coup est une tâche extrêmement complexe qui laisse place à beaucoup d'ambiguïté. Pour obtenir un résultat de haute qualité qui correspond vraiment à tes attentes, il est beaucoup plus efficace de procéder par étapes.

L'approche la plus productive est de me considérer comme un partenaire de "pair programming". Voici comment nous pouvons collaborer efficacement sur un projet d'envergure :

En résumé, il faut m'utiliser non pas comme un "générateur de site web en un clic", mais comme un assistant très rapide et compétent qui t'aide à construire ton projet brique par brique. Cette collaboration itérative garantit que tu gardes le contrôle total sur l'architecture et la qualité du code final.


Important

La dernière phrase me semble particulièrement importante : "une collaboration itérative qui garantit qu'on garde le contrôle total sur l'architecture et la qualité du code final". Cela sous-entend qu'il faut déjà bien maîtriser soi-même l'architecture et les technologies qu'on met en œuvre !

Mes conseils perso pour les débutants👉

Si tu débutes avec l'IA, pour avoir une première expérience positive et ne pas être déçu dès le départ, je te conseille vivement ce qui suit :

Tip

Analyse bien ton projet au départ, en prenant le temps d'écrire un fichier readme par exemple. Cela t'apportera 3 bénéfices :

  • Tu seras toi-même bien plus clair sur ce que tu veux faire
  • Le fichier readme sera un excellent moyen de donner du contexte à l'IA
  • Il t'aidera aussi à découper le travail et à formuler les requêtes à l'IA

Autre bonne pratique que j'ai moi-même adoptée depuis pas mal de temps, et qui m'aide beaucoup :

Tip

Découpe les tâches importantes en tâches plus petites, et écris ces dernières sous forme d'une liste de cases à cocher dans un fichier Markdown nommé par exemple todo.md. Au fur et à mesure que tu termines ces tâches intermédiaires, coche les cases correspondantes.

Cette liste te permettra de ne pas perdre le fil de ce que tu fais, et finalement de ne rien oublier. Elle est d'autant plus utile que ton travail s'étale sur une longue période (plusieurs heures ou jours).

Mon dernier conseil concerne la préparation à la recherche d'emploi. Avec l'IA, il est clair que les développeurs débutants auront de plus en plus de mal à trouver du travail. D'où mon conseil suivant :

Tip

Avant de postuler à un poste de développeur, entraîne-toi tout d'abord sur des projets perso assez importants sans utiliser l'IA, afin de te familiariser avec les langages, frameworks et concepts d'architecture que tu vas utiliser. Si tu n'as pas d'idée de projet, un blog ou un site de e-commerce fictif feront très bien l'affaire.
Dans un second temps, quand tu auras acquis une certaine maîtrise technique, utilise l'IA pour te familiariser avec cet outil.

C'est super important de bien respecter cet ordre ! Car si tu utilises tout de suite l'IA sans maîtriser toi-même l'architecture et le code :

N'hésite pas à partager ta réaction en commentaire. Et si tu as d'autres bonnes pratiques ou conseils sur la façon de bien collaborer avec l'IA, n'hésite pas à les partager également ! 😉