Générer du code n’a jamais été la partie la plus difficile
2023 a été toute une année pour l’IA générative et, en particulier, pour les grands modèles de langage (LLM). Tout le discours sur l’IA générative s’est accompagné d’une reprise familière :
est-ce la technologie qui remplacera les développeurs de logiciels ?
À première vue, je comprends tout à fait. Si vous ouvrez ChatGPT et lui donnez comme prompt « Écrit moi une fonction qui additionne en typescript », il générera consciencieusement le code suivant :
function add(a: number, b: number): number {
return a + b;
}
// Exemple d'usage:
const sum: number = add(3, 5);
console.log(sum); // 8
Impressionnant! Mais voici le problème : générer du code n’a jamais été la partie la plus difficile.
La valeur que j'apporte à mon travail n'est pas de générer du code. Je veux dire, je suppose que cela en fait partie en fin de compte, mais ma valeur réside en grande partie dans le travail qui se produit avant de générer le code : des choses comme la clarification des exigences, la négociation, la conception technique et l'analyse des compromis.
L’une des meilleures caractéristiques que j’estime apporter est de comprendre rapidement où les exigences ne sont pas à la hauteur : soit en étant sous-spécifiées, soit en étant trop prescriptives d’une solution. Dans mon exemple simple, le modèle aurait probablement dû me poser des questions telles que « combien de nombres devront être ajoutés ? » ou « que se passe-t-il si aucune entrée ou une entrée non valide n'est utilisée ? » Même avant cela, le modèle aurait dû comprendre le cas d'utilisation pour déterminer si une fonction add était vraiment nécessaire. Une fois qu’il aura déterminé qu’une fonction add est nécessaire et comment la mettre en œuvre, il devra alors probablement déterminer la meilleure façon d’intégrer la fonction dans une grande base de code.
Imaginez maintenant ce genre de questions de clarification des exigences et de considérations de conception technique, mais à une échelle beaucoup plus grande : l'exigence n'est généralement pas d'écrire une fonction add mais plutôt quelque chose de beaucoup plus complexe et de l’intégré dans une base de code existante et complexe.
Bien sûr, tout cela est un peu injuste : ChatGPT est un modèle d’IA générative et n’a pas été conçu pour être un développeur logiciel. Mais c'est là le point - aussi impressionnant que cela puisse être de voir du code généré, je n'ai pas encore vu d'IA capable de faire ces autres choses - les aspects les plus difficiles du métier de développeur logiciel.
Et d’ici à ce que cela arrive, je ne crois pas que le métier de développeur sera en danger.
Merci de m’avoir lu!