L’IA générative peut écrire du code informatique. Aurons-nous encore besoin de développeurs de logiciels ?
Nous assistons à une vague de nouveaux outils d’IA générative capables d’écrire du texte, de générer des images, de créer de la musique et bien plus encore. Certains peuvent même écrire du code informatique, ce qui est logique si l’on considère que le code informatique n’est qu’un autre type de langage. D’un outil générique bien connu comme ChatGPT aux outils de codage d’IA spécifiques créés pour les développeurs, de nouveaux outils émergent rapidement qui proposent des suggestions de code et écrivent même du code entier. Et tout cela peut être fait sur la base d’invites en langage naturel ou en apprenant du code existant.
Naturellement, cela change déjà le travail des développeurs de logiciels. Mais quelles en sont les implications à long terme ? Aurons-nous même besoin de développeurs de logiciels à l’avenir ? Continuez à lire pour le découvrir.
Que peut faire l’IA générative ?
L’IA générative peut accélérer et automatiser le processus de développement logiciel de plusieurs manières :
- Recueillir les exigences: Tout développement logiciel commence par l’identification des exigences (telles que l’utilisateur souhaite faire X, Y et Z). L’IA générative peut faciliter ce processus en générant une liste d’exigences. Il peut également être utilisé pour revoir les exigences et vérifier que rien n’a été oublié.
- Génération de code: L’IA générative peut transformer les instructions en langage naturel en code fonctionnel, ce qui transforme essentiellement l’anglais (ou quelle que soit votre langue maternelle) en un langage de programmation informatique.
- Compléter le code: Au fur et à mesure que les codeurs tapent, un outil d’IA générative peut suggérer des complétions de code, ce qui fait gagner du temps aux codeurs, en particulier lorsqu’ils travaillent sur des tâches répétitives ou banales. Autre avantage, cela peut contribuer à réduire les erreurs humaines.
- Révision du code: L’IA générative peut également être un outil utile lorsqu’il s’agit de réviser des logiciels. Par exemple, un outil d’IA générative peut vérifier le code existant et suggérer des améliorations ou créer des alternatives plus efficaces. Il peut également analyser le code conformément aux directives de style de codage pour garantir la cohérence du code.
- Correction de bugs: L’IA générative peut être utilisée pour identifier et corriger les bogues dans le code afin de créer un meilleur produit final.
- Logiciel de test: L’IA générative peut effectuer de nombreuses phases de test, telles que la génération de cas de test, la génération de code de test et l’analyse des résultats des tests.
- Prédire comment un logiciel pourrait échouer: À l’avenir, l’IA générative pourrait également être capable de prédire comment les systèmes et les logiciels pourraient échouer avant que le code ne soit mis en production et d’indiquer aux développeurs comment y remédier.
Tout cela signifie que l’IA générative peut faciliter le travail des codeurs, des programmeurs et des développeurs et accélérer le processus de développement logiciel. Dans un exemple, les codeurs de la société de logiciels Freshworks ont utilisé ChatGPT pour écrire du code et, ce faisant, ont réduit le temps de développement d’environ 10 semaines à moins d’une semaine. Selon une étude de GitHub, les développeurs qui ont utilisé l’outil d’IA générative GitHub Copilot ont codé jusqu’à 55 % plus rapidement que ceux qui ne l’ont pas fait.
Mais quelle est l’efficacité de l’IA générative dans la création de code informatique ? Eh bien, lorsque le laboratoire DeepMind, propriété d’Alphabet, a opposé son modèle d’IA AlphaCode à des codeurs humains, les performances d’AlphaCode correspondaient à peu près à celles d’un programmeur novice ayant quelques mois à un an de formation. Ce n’est pas mal du tout pour une IA. Étant donné que les capacités de l’IA générative progressent si rapidement, nous pouvons nous attendre à ce que la technologie rattrape les développeurs plus expérimentés dans un avenir pas si lointain.
À quoi ressemble l’avenir pour les développeurs de logiciels ?
Cela signifie-t-il que nous n’aurons plus besoin de développeurs de logiciels humains à l’avenir ? Non, je ne le crois pas. Mais cela signifie qu’ils travailleront de plus en plus aux côtés de l’IA, tout comme le feront d’autres professionnels. Presque tous les emplois seront affectés ou améliorés dans une certaine mesure par l’automatisation basée sur l’IA, et le développement de logiciels n’est pas différent.
Certes, le travail des codeurs débutants pourrait être menacé à mesure que davantage de tâches de développement sont automatisées par l’IA. Cependant, je vois une application encore plus grande de l’IA générative que la simple automatisation du travail que les codeurs débutants feraient autrement. Je vois l’IA générative ajouter une valeur énorme en tant que copilote ou co-codeur, même pour les programmeurs les plus expérimentés, surtout si l’on considère que l’IA générative peut être utilisée pour rassembler les exigences et déboguer les codes, s’assurer que le code respecte certaines exigences et écrire le code lui-même. Cela supprime certaines des tâches les plus répétitives et banales des tâches des développeurs, leur permettant de se concentrer sur des tâches plus précieuses.
Et n’oublions pas que, pour quelqu’un comme un développeur ou un programmeur de niveau supérieur, écrire du code n’est pas la tâche principale qu’il fait toute la journée. En fait, l’écriture de code peut ne prendre que 20 % de leur temps, le reste étant consacré à la collecte des exigences, aux tests, aux réunions, à la collaboration avec les utilisateurs, à la supervision de projets et à d’autres tâches.
De plus, même lorsque vous utilisez des outils d’IA générative pour automatiser ou faciliter le travail de programmation, vous avez toujours besoin de développeurs expérimentés pour rédiger des invites détaillées qui tirent le meilleur parti de l’IA. (Vous pourriez argumenter en écrivant des invites détaillées indiquant à l’IA exactement ce que vous voulez qu’il fasse, c’est juste une autre forme de programmation.)
Mais le plus important à retenir est que plutôt que de simplement automatiser les aspects les plus fastidieux du développement logiciel et d’accélérer le développement logiciel, l’IA générative aidera les développeurs à travailler plus intelligemment, à résoudre des problèmes plus complexes et à proposer des solutions plus créatives. Il pourrait donc s’avérer être un outil révolutionnaire pour les programmeurs.