L’IA ne se contente pas de simplifier le codage. Elle le rend aussi plus amusant.

Homme souriant utilisant un ordinateur portable

Auteurs

Tim Mucci

IBM Writer

Gather

L’IA améliore l’expérience des développeurs

L’IA générative change la façon de faire des films, de faire du marketing et de jouer. Alors que les médias se focalisent principalement sur ce que l’IA générative peut apporter à la transformation numérique, à la création de contenu et à la productivité, on accorde moins d’attention à la manière dont elle peut rendre l’écriture de code plus satisfaisante, voire amusante.

Les assistants de codage basés sur l’IA générative permettent non seulement aux ingénieurs logiciels de faire leur travail plus rapidement, mais ils améliorent également la satisfaction et l’engagement des développeurs. Les développeurs utilisent l’IA générative pour écrire du code standard et définir le formatage de base, ce qui leur permet de consacrer plus de temps aux aspects créatifs du travail, tels que la résolution de problèmes, la création d’une nouvelle logique et la conception de systèmes uniques. Ces tâches créatives de plus haut niveau sont souvent celles auxquelles les codeurs aiment se consacrer.

Une étude de McKinsey a révélé que les développeurs utilisant des outils d’IA générative étaient au moins deux fois plus susceptibles de signaler qu’ils étaient satisfaits en général, épanouis et qu’ils étaient concentrés et productifs au travail.

Prenons l’exemple d’un développeur que l’on aurait chargé de créer une nouvelle application web pour une plateforme de commerce électronique. Le développeur doit concevoir une expérience utilisateur et implémenter des fonctionnalités telles qu’un moteur de recommandation et une tarification dynamique. Cependant, avant même de pouvoir commencer à travailler sur les éléments intéressants de la conception, le développeur a une montagne de tâches fastidieuses à accomplir.

Il doit configurer le back-end, ce qui nécessite de rédiger le même code standard que celui qu’il a déjà écrit des dizaines de fois auparavant, d’exécuter des initialisations, de définir des routes de base et de configurer des middlewares. Aucun de ces éléments n’est propre au projet, mais chacun est nécessaire à l’application. Une fois le travail de base terminé, il faut établir une connexion à la base de données dont les pilotes doivent être configurés avec des schémas pour les produits, les clients et les commandes, sans oublier de nombreuses autres tâches n’ayant aucun rapport avec le codage et le développement.

Si le développeur peut être impatient d’en arriver aux fonctionnalités de base qui rendront la plateforme unique et agréable pour les utilisateurs, tout ce travail répétitif occupe déjà une bonne partie du calendrier du projet. Bien évidemment, ce socle est indispensable, mais la productivité des développeurs peut ralentir, car ce travail de routine tient de la corvée par rapport aux aspects plus créatifs du codage.

Design 3D de balles roulant sur une piste

Les dernières actualités et informations en matière d’IA 


La newsletter hebdomadaire Think vous apporte toute l’actualité sur l’IA, le cloud et bien d’autres sujets. 

Les défis inhérents au codage

Le codage est un processus chronophage et source d’erreurs. Et obtenir des résultats de haute qualité nécessite beaucoup de temps et de ressources. Des études montrent que dans le cycle de développement traditionnel, les développeurs consacrent en moyenne 1 heure par jour au codage à proprement parler, tandis que les activités répétitives qui s’enchaînent et se ressemblent consomment la plus grande partie de leur temps. Ces tâches impliquent souvent de gérer les bases de code existantes, de documenter les processus, de rédiger des tests, de gérer les versions, de déboguer les erreurs et d’identifier les failles de sécurité. Par exemple, une journée type pour un programmeur pourrait commencer par des revues de code ou l’examen d’une pull request. Ces tâches pourraient être suivies par la résolution d’un bug signalé par une équipe d’assurance qualité, puis par l’élaboration d’un plan de déploiement, et tout cela sans avoir écrit la moindre nouvelle ligne de code.

« L’IA générative permet aux développeurs d’automatiser les tâches fastidieuses et monotones qui les empêchent de se consacrer réellement à la création de logiciels », explique Anna Gutowska, data scientist chez IBM. « Il pourrait tout simplement s’agir d’un bot qui exécute des scripts à la première heure et génère un « rapport sur l’intégrité » de votre logiciel. Autrement dit, nous passons moins de temps à exécuter des scripts manuels et plus de temps à mettre nos compétences à profit. »

Les développeurs doivent également rester au fait de l’évolution des technologies et des cadres comme React, Kubernetes ou Flutter. Et ce n’est pas une mince affaire, car le paysage du développement logiciel évolue rapidement. Pour suivre le rythme, il faut réellement s’investir dans l’apprentissage et l’expérimentation continus, ce qui laisse moins de temps aux aspects créatifs et gratifiants du développement. La nécessité constante de jongler entre ces différentes responsabilités et la pression pesant sur les développeurs pour livrer un code robuste et sans erreur peuvent faire du codage un travail stressant et accablant.

Les outils d’IA générative jouent également un rôle dans les workflows DevOps pour l’automatisation de déploiement, l’intégration continue et la surveillance. Au-delà de l’assistance au codage, l’IA générative peut analyser les données et aider les programmeurs à interpréter des jeux de données complexes, ce afin de mieux évaluer l’impact des décisions liées à l’architecture et des optimisations apportées au système.

L’IA aime le travail fastidieux

D’accord, on ne peut pas dire que l’IA « adore » les tâches ennuyeuses, mais elle excelle dans la recherche et la réplication de schémas complexes, ce qui en fait une solution idéale pour automatiser les aspects répétitifs du codage. Des tâches telles que la génération de code standard répétitif, ces éléments fastidieux mais nécessaires qui soutiennent la structure de base, peuvent être générées en quelques secondes par les outils d’IA générative. L’IA peut également faciliter l’intégration d’interfaces de programmation d’applications (API) en générant automatiquement des points de terminaison, en gérant l’authentification, en structurant les requêtes et en réduisant les efforts de codage manuel. Décrit dans Wired SWE-agent est un autre exemple d’outil d’IA. Cet outil est parvenu à identifier un bug dans un dépôt GitHub, à localiser le fichier correspondant et à modifier le code en conséquence, permettant aux développeurs amateurs de gagner des heures en débogage potentiel.

Ces outils ne sont pas de simples assistants ; certains s’apparentent à des mentors experts dans leur domaine. Les systèmes d’IA générative peuvent fournir des explications, des exemples et des conseils en temps réel, permettant aux développeurs de passer moins de temps à résoudre les problèmes et plus de temps à innover. Cette évolution leur permet de se concentrer sur l’écriture de code de qualité, pour la conception de solutions créatives ou l’amélioration des architectures système, tout en réduisant la charge cognitive associée à la résolution des mêmes problèmes, encore et encore. En détectant et en affinant automatiquement les modifications de code, l’IA permet de prévenir les régressions et garantit que les nouvelles implémentations s’alignent sur les bonnes pratiques.

« IBM watsonx Code Assistant est parvenu à identifier plusieurs vulnérabilités potentielles, des fuites de mémoire et quelques mauvaises pratiques de codage… et il nous a fourni des recommandations d’amélioration. » - Commentaires client sur IBM watsonx Code Assistant

 

L’IA générative accélère également l’apprentissage pour les développeurs. Elle leur permet de comprendre rapidement de nouveaux langages de programmation, cadres et paradigmes tout en leur offrant des informations sur des bases de code complexes ou inconnues. Pour les développeurs juniors, les avantages sont particulièrement remarquables.

« Nous n’attendions pas un miracle, mais nous avons été agréablement surpris par sa qualité », explique Asher Scott, développeur pile complète chez IBM, en faisant référence à watsonx Code Assistant. « Il m’a permis de faire passer mes compétences au niveau supérieur. »

Les développeurs juniors signalent des améliorations significatives en termes de productivité et d’acquisition de compétences, ce qui les aide à développer leur expertise et leur confiance plus rapidement qu’avec les méthodes traditionnelles. En supprimant les obstacles courants et en simplifiant le processus d’apprentissage, l’IA permet aux développeurs, quel que soit leur niveau, de relever les défis avec plus d’enthousiasme.

Satisfaction au travail et flexibilité

Selon une enquête KPMG, la moitié des programmeurs sondés sont convaincus que l’IA et l’automatisation ont eu un impact positif sur leur carrière en améliorant leur productivité et en leur ouvrant de nouvelles portes. De même, une enquête ChatGPT OpenAI a révélé que 50 % des développeurs déclaraient avoir amélioré leur productivité en utilisant l’IA, 23 % d’entre eux signalant des gains significatifs.

Une enquête GitHub montre que ces gains de productivité améliorent l’efficacité globale du workflow existant des codeurs. Les développeurs qui utilisent des outils de codage basés sur l’IA signalent une plus grande satisfaction découlant de l’automatisation des tâches répétitives ou fastidieuses, qui leur permet de se concentrer sur la conception de solutions plutôt que sur le code de base. Les assistants de codage allègent la charge de travail des programmeurs et peuvent potentiellement prévenir l’épuisement professionnel. Ils aident les développeurs à respecter plus facilement les niveaux de performance requis, ce qui se traduit par une meilleure qualité du code, des résultats plus rapides et des incidents moins nombreux.

L’impact de l’IA générative sur la satisfaction au travail provient en grande partie de sa capacité à fournir des informations utiles et à rationaliser les workflows de développement fastidieux. Par exemple, des outils de développement alimentés par l’IA, tels que watsonx Code Assistant (WCA), GitHub Copilot et SWE-agent, ont démontré la puissance de la génération, du débogage et de l’optimisation de code en temps réel. Les gains réalisés réduisent non seulement la frustration, mais ils libèrent également les développeurs, en particulier les développeurs juniors, qui peuvent se concentrer sur la résolution de problèmes plus complexes et plus gratifiants. En automatisant les tâches routinières, les outils alimentés par l’IA offrent des fonctionnalités améliorées, permettant aux développeurs de se concentrer sur l’innovation plutôt que sur le codage répétitif.

Selon GitHub, 57 % des développeurs sondés indiquent que l’utilisation d’outils de codage basés sur l’IA les aide à perfectionner leurs compétences dans différents langages de programmation, ce qui est pour eux le principal avantage de ces applications (le deuxième avantage cité étant une productivité améliorée). Cela suggère que les développeurs considèrent les outils de codage alimentés par l’IA comme un moyen de se perfectionner pendant qu’ils travaillent, et non comme une énième tâche à ajouter à leur journée pour l’apprentissage et le développement.

L’IA générative accélère la montée en compétences et la requalification des développeurs juniors en leur fournissant des exemples et des conseils contextuels en temps réel, leur permettant d’acquérir les compétences requises et d’apporter leur contribution plus rapidement. Grâce à WCA, les équipes de développeurs travaillant dans des environnements de développement d’entreprise complexes (modernisation du mainframe ou migration Java, par exemple) peuvent automatiser les transformations de code fastidieuses tout en bénéficiant d’informations pilotées par l’IA les éclairant sur les bonnes pratiques à suivre. En d’autres termes, les développeurs débutants peuvent accomplir leurs tâches sans avoir à s’interrompre pour consulter un développeur senior, en tout cas pas aussi fréquemment, ce qui leur permet de gagner en confiance et en autonomie plus rapidement.

L’IA transforme également l’approche des développeurs en matière de prototypage et d’innovation. Des tâches qui nécessitaient auparavant des heures de codage manuel peuvent désormais être achevées en un clin d’œil. Par exemple, un développeur qui conçoit une nouvelle fonctionnalité pourrait utiliser l’IA générative pour créer une implémentation préliminaire, l’itérer rapidement et l’intégrer dans le projet plus vaste. Cette rapidité d’exécution permet d’expérimenter davantage et d’être plus créatif, souvent les aspects les plus satisfaisants du développement logiciel.

En automatisant les tâches de routine, les développeurs peuvent s’adapter plus facilement aux environnements de travail distants ou asynchrones. Les outils d’IA améliorent également la collaboration en générant des suggestions de code et des explications faciles à examiner et à comprendre pour les membres de l’équipe. Ces améliorations contribuent à une expérience positive pour les développeurs, rendant le développement de logiciels non seulement plus productif, mais aussi plus adaptable aux divers besoins du personnel moderne, contribuant ainsi à une plus grande satisfaction au travail et à un meilleur équilibre entre vie professionnelle et vie privée.

Les outils d’IA générative aident également les développeurs à peaufiner leurs compétences en leur fournissant des indicateurs qui leur permettent de suivre et d’améliorer leur productivité. De même, ils leur fournissent, ainsi qu’à l’organisation, les connaissances nécessaires pour adopter les nouvelles technologies de manière efficace et évaluer l’impact global de l’intégration de l’IA. Cela favorise une culture d’apprentissage et d’innovation continus parmi les programmeurs.

Développement d’applications

Rejoignez-nous : développement d’applications d’entreprise dans le cloud

Dans cette vidéo, Dr Peter Haumer explique à quoi ressemble actuellement le développement d’applications d’entreprise modernes dans le cloud hybride en présentant divers composants et différentes pratiques, notamment IBM Z Open Editor, IBM Wazi et Zowe. 

La touche humaine est irremplaçable

L’expertise humaine reste une partie intégrante du processus de développement de logiciels. Même si l’IA est capable d’identifier les bugs et de suggérer des corrections, les capacités de compréhension nuancée et l’intuition d’un développeur chevronné lui font défaut. Les humains sont mieux équipés pour discerner l’intention derrière le code, évaluer son alignement avec les objectifs de l’entreprise et y appliquer le contexte organisationnel pour s’assurer qu'il répond aux exigences du projet. Les machines ont du mal à interpréter les compromis subtils ou à gérer les scénarios ambigus, ce qui rend le jugement humain indispensable.

L’adoption de l’IA générative connaît son lot de défis. L’impact de la technologie n’est pas le même selon les niveaux d’expérience. Les développeurs juniors en retirent souvent les plus grands avantages, car l’IA leur permet d’apprendre et d’apporter leur contribution plus rapidement. Pour eux, l’IA agit comme un mentor qui comble leurs lacunes et accélère leur développement professionnel. À l’inverse, selon le MIT Sloan, les développeurs seniors font état de gains plus modestes, à hauteur de 8 à 13 %. Reste à savoir si cela est dû à une expertise qui surpasse la technologie ou à leur réticence à intégrer l’IA dans leurs workflows.

Une autre préoccupation liée au codage assisté par l’IA est le risque de dette technique. Une dépendance excessive à l’égard de l’IA pour trouver des solutions rapides peut introduire des raccourcis qui finiront par s’accumuler au fil du temps, une complexité à long terme dont la résolution exigera des efforts considérables. Certains craignent également que les outils de codage pilotés par l’IA conduisent à une érosion des compétences, les développeurs s’appuyant trop sur l’automatisation au lieu de peaufiner leurs propres capacités de résolution de problèmes et de codage. Si la pensée critique et les compétences pratiques en codage s’atrophient, les développeurs pourraient avoir du mal à s’attaquer à des défis complexes aux enjeux élevés à l’avenir.

Cependant, les outils de codage basés sur l’IA sont plus puissants lorsqu’ils travaillent en collaboration avec des développeurs humains, et non à leur place. Si l’IA est capable d’accélérer les workflows et d’automatiser les tâches répétitives, sa réelle valeur réside dans l’enrichissement de l’expertise humaine : elle permet aux développeurs de se concentrer sur la résolution créative des problèmes, les décisions d’architecture et l’innovation.

RKube, un fournisseur de solutions informatiques au Maroc qui a utilisé IBM watsonx Code Assistant pour moderniser ses applications Java, en est un bon exemple. En automatisant la transformation du code, les développeurs ont pu se détourner de la refactorisation manuelle et se concentrer sur la résolution de problèmes à plus forte valeur ajoutée, augmentant l’efficacité des workflows et la motivation du personnel.

Solutions connexes
IBM Enterprise Application Service for Java

Service entièrement géré et à locataire unique pour le développement et la livraison d’applications Java.

Découvrir les applications Java
Solutions DevOps

Utilisez les logiciels et outils DevOps pour créer, déployer et gérer des applications cloud natives sur de nombreux appareils et environnements.

Découvrir les solutions DevOps
Services de développement d’applications d’entreprise

Le développement d’applications cloud implique de les créer une fois, de les itérer rapidement et de les déployer n’importe où.

Services de développement d’applications
Passez à l’étape suivante

Les services de conseil en développement d’applications IBM Cloud proposent des conseils d’expert et des solutions innovantes pour rationaliser votre stratégie cloud. Faites équipe avec les experts en cloud et développement d’IBM pour moderniser, faire évoluer et accélérer vos applications, et obtenez des résultats transformateurs pour votre entreprise.

Découvrir les services de développement d’applications Commencez à créer sur IBM Cloud, gratuitement