Recherche de site Web

La génération AI permet aux développeurs de logiciels d'augmenter leur productivité, mais ce n'est pas pour tout le monde


L’IA générative apporte des avantages en termes de productivité, mais les professionnels de l’informatique doivent se méfier de l’adoption massive de ces outils dans leurs incarnations actuelles.

Pour quiconque crée des logiciels, l'IA générative (Gen AI) - en particulier un outil comme GitHub Copilot - est un moyen de créer, tester, documenter et déboguer rapidement du code, ce qui entraîne d'importants avantages en termes de productivité.

Ce coup de pouce libère du temps, des ressources et de l'intelligence des développeurs de logiciels et des professionnels des opérations pour qu'ils puissent intensifier et remplir des rôles consultatifs et de leadership au sein de leurs organisations.

Cependant, même si les avantages en matière de productivité sont évidents, l’IA pourrait ne pas profiter à tout le monde, et les experts du secteur conseillent d’avancer avec prudence dans l’automatisation.

Tout d’abord, un peu de contexte. Les outils de suggestion de code Gen AI peuvent augmenter la productivité des développeurs de logiciels, selon une étude multipartite réalisée par des chercheurs de Microsoft, du MIT, de l'Université de Princeton et de l'Université de Pennsylvanie.

L'étude a analysé les résultats de 4 867 développeurs de logiciels répartis dans trois entreprises, tous ayant accès à Copilot, et a découvert une augmentation de productivité de 26 % du nombre hebdomadaire de tâches terminées, ainsi qu'une augmentation de 14 % du nombre de mises à jour de code et une augmentation de 38 %. % d'augmentation du nombre de fois que le code a été compilé.

D’autres dirigeants et professionnels du secteur ont convenu que la génération AI peut générer une augmentation considérable de la productivité des développeurs de logiciels.

"La génération AI et les outils copilotes ont un impact significatif sur la vitesse de développement", a déclaré à ZDNET Brett Smith, un éminent développeur de logiciels chez SAS.

"L'IA peut aider à écrire du code passe-partout, des tests unitaires et de la documentation, permettant ainsi au développeur d'accélérer la résolution des solutions réelles. L'IA générative a incontestablement révolutionné le jeu pour le développement de logiciels, servant de programmeur en binôme aux développeurs du monde entier."

Les outils génératifs peuvent être utiles pour diverses tâches de développement, telles que « l'introduction de nouvelles fonctionnalités dans les bases de code existantes ou le portage des bases de code vers de nouveaux langages de programmation », a déclaré Flavio Villanustre, directeur mondial de la sécurité de l'information chez LexisNexis Risk Solutions.

« Ces outils d'IA facilitent également l'archéologie logicielle nécessaire à la compréhension des bases de code mal documentées. De plus, l'IA peut constituer une ressource utile lorsque des cas de test doivent être créés, en particulier dans les environnements de développement de logiciels pilotés par les tests. Dernier point, mais non le moindre. , les outils d'IA peuvent aider à identifier les bibliothèques et les frameworks tiers qui pourraient être utiles dans des projets particuliers.

Cependant, ce ne sont pas toutes de bonnes nouvelles - et les chercheurs de l’étude Microsoft/MIT/Princeton/UPenn ont souligné une mise en garde majeure : les avantages de la génération IA diminuent chez les développeurs plus expérimentés.

"Les développeurs moins expérimentés ont montré des taux d'adoption plus élevés et des gains de productivité plus importants", ont-ils déclaré. "Copilot augmente considérablement l'achèvement des tâches pour les recrues les plus récentes et celles occupant des postes plus juniors, mais pas pour les développeurs ayant une ancienneté plus longue et occupant des postes plus élevés."

Les outils basés sur l'IA "sont incroyablement utiles pour les développeurs moins expérimentés", a reconnu Edward White, responsable de la croissance chez beehiiv, un service de newsletter numérique.

"Ils proposent des suggestions en temps réel de refactorisation et d'optimisation, guidant les développeurs juniors à travers les meilleures pratiques pendant qu'ils codent. Ces outils peuvent identifier les inefficacités ou les modèles répétitifs et recommander des améliorations, rendant le code plus propre et plus efficace. Les commentaires instantanés aident les développeurs à apprendre à écrivez du code maintenable, suivez les conventions de dénomination appropriées et utilisez de meilleures structures.

Cependant, malgré l'accent mis sur les développeurs moins expérimentés, Smith a déclaré que les professionnels de longue date peuvent également voir les avantages de la génération AI. "D'après mon expérience, les développeurs chevronnés ont grandement bénéficié de l'assistance de l'IA", a-t-il déclaré.

« L'IA est incroyablement efficace pour écrire du code passe-partout, et elle libère le développeur pour qu'il puisse effectuer des tâches complexes sur mesure pour lesquelles l'IA n'est pas douée. En général, les développeurs moins expérimentés ont du mal à résoudre des problèmes complexes, et l'IA est généralement incapable de les aider. cet aspect-là."

Les preuves fournies par les experts de l’industrie suggèrent qu’un équilibre doit être atteint. Que la Gen AI soit déployée par des développeurs expérimentés ou inexpérimentés, les professionnels et dirigeants informatiques doivent se méfier de l’adoption massive de ces outils dans leurs incarnations actuelles.

"Bien que l'assistant soit généralement capable d'écrire certaines fonctions courantes, d'interagir raisonnablement avec les bibliothèques existantes, d'écrire des cas de test et d'expliquer le code existant, il commet certaines erreurs qu'un programmeur compétent éviterait", a déclaré Villanustre.

« Ces outils basés sur l'IA rencontrent également des difficultés lorsqu'ils traitent des algorithmes plus complexes et peuvent écrire du code dangereux ou non sécurisé. À mon avis, les outils d'IA actuels sont à la hauteur d'un programmeur débutant et nécessitent toujours une surveillance par des professionnels du logiciel plus expérimentés. "

Smith a également déclaré que la vitesse accrue des outils Gen AI est une arme à double tranchant. "Les développeurs écrivent du mauvais code ; l'IA les aide à écrire du mauvais code plus rapidement", a-t-il déclaré.

"L'augmentation de la quantité de code produit par une équipe pourrait introduire plus de bugs et de vulnérabilités que d'habitude. Cette vague de nouveau code peut rapidement submerger les équipes de test et de sécurité. Les équipes devront automatiser les points de contrôle, les tests et les analyses de sécurité pour suivre le rythme des combats. les aspects pervers de l’IA générative qui vont de l’avant. »

La qualité du code généré est également un problème. "La qualité de l'IA dépend de sa formation", a déclaré David Brault, expert chez Mendix. Les données de formation peuvent inclure « une combinaison de code bien écrit et de qualité inférieure ». Cette combinaison peut conduire à un code de qualité et de cohérence variables et peut même s'appuyer sur une dette technique.

Un autre défi lié au code généré par l’IA est le risque d’incompatibilité avec les systèmes existants, en particulier les architectures complexes ou héritées.

"Bien que les outils d'IA puissent produire du code efficace pour des tâches spécifiques, ils ne prennent pas toujours en compte les dépendances, les cadres ou les structures uniques des systèmes plus anciens", a prévenu White.

"Cette inadéquation peut entraîner des problèmes tels qu'un comportement inattendu ou même provoquer des perturbations si le code généré par l'IA est implémenté sans tests approfondis."

Les professionnels de l’informatique doivent également se méfier des problèmes juridiques qui peuvent surgir en cours de route. "L'utilisation de code généré par l'IA nécessite de faire preuve de prudence en ce qui concerne la duplication, la propriété intellectuelle et les problèmes potentiels de licence", a déclaré Mira Nathalea, directrice du marketing de SoftwareHow, un fournisseur de critiques de logiciels.

"Les développeurs et les entreprises doivent être conscients des risques associés aux suggestions de code non vérifiées. Il existe un risque d'incorporer sans le savoir du code qui pourrait ne pas correspondre aux exigences de licence du projet, ce qui pourrait entraîner des conflits de propriété intellectuelle. Les développeurs doivent examiner attentivement les suggestions générées par l'IA pour maintenir qualité du code et conformité légale.

Les professionnels et les dirigeants du logiciel doivent également gérer avec soin les problèmes éthiques qui peuvent découler de la génération de code basé sur l’IA.

« Négliger les considérations éthiques peut entraîner des problèmes involontaires, tels que des risques pour la vie privée, une mauvaise utilisation des données ou des biais au sein des algorithmes », a déclaré Joel Popoff, PDG d'Axwell Wallet, un fabricant d'articles de transport quotidiens conviviaux.

"Lorsque le code généré par l'IA n'est pas soigneusement évalué, il peut ne pas être entièrement conforme aux réglementations ou aux normes éthiques, en particulier dans des domaines tels que la confidentialité des utilisateurs et le traitement équitable."

Popoff a déclaré qu'il était important de mettre en œuvre des procédures d'examen éthique adaptées au code généré par l'IA pour atténuer ces risques. "Cela implique d'auditer régulièrement les résultats de l'IA, de garantir que les données sont traitées de manière responsable et de vérifier activement les biais dans les décisions automatisées", a-t-il déclaré.

« Établir de la transparence sur la manière dont l'IA traite et utilise les données permet de maintenir la confiance et de maintenir le processus de développement aligné sur les principes éthiques. »

Il existe donc toute une série de questions et de préoccupations dont il faut tenir compte. Cependant, lorsqu’elle est utilisée de manière responsable, l’IA pourrait révolutionner le métier du développement.

"L'un des plus grands avantages de l'utilisation de l'IA dans le développement est la possibilité d'automatiser les tâches fastidieuses et répétitives que les développeurs détestent car elles perdent du temps et ajoutent peu de valeur commerciale à la solution", a déclaré Brault.

« Au lieu de cela, en automatisant ces routines de bas niveau grâce à l'IA, les développeurs peuvent consacrer plus de temps à trouver des moyens créatifs de résoudre les problèmes commerciaux complexes qui affectent leur entreprise. Au contraire, les développeurs deviendront encore plus précieux car leur expertise sera nécessaire pour valider et sécuriser le code généré par l'IA et créer des composants, des modèles et des cadres réutilisables pour établir des normes de gouvernance pour l'intégration de l'IA à leurs systèmes existants.

Articles connexes