L’IA, Indispensable Assistante du développeur

L’Intelligence artificielle ne va pas remplacer les développeurs de sitôt, elle n’est pas une menace pour eux. Elle pourrait bien au contraire devenir leur meilleure alliée ! Car l’IA sera de plus en plus présente dans le cycle CI/CD.

En avril 2017, les chercheurs de l’université de Cambridge et de Microsoft Research présentaient DeepCoder, une IA capable d’écrire des programmes. Si cette recherche était potentiellement intéressante, les séquences de 5 lignes de DSL (Domain-Specific Language) générées par DeepCoder n’avaient pas de quoi impressionner un développeur.

Le Français Ponicode propose un outil qui génère automatiquement les tests unitaires du code JavaScript qui lui est soumis. Une technologie aujourd’hui complétée par la génération des Docstrings Python.

L’IA de plus en plus omniprésente dans les IDE

L’Intelligence artificielle pourrait bien s’avérer être une aide irremplaçable. Les développeurs Microsoft connaissent déjà l’autocomplétion IntelliSense de Visual Studio. Microsoft est allé plus loin avec IntelliCode, algorithme qui suggère de compléter une ligne de code avec une IA entrainée sur GitHub. Aujourd’hui, de nombreux éditeurs proposent des outils mettant en œuvre des modèles d’Intelligence artificielle afin de repérer les bugs dans le code source. C’est notamment le cas d’Altran qui propose Code Defect AI, un algorithme qui repère les zones de code qui lui semble problématique par rapport à ce qu’il a pu apprendre. De son côté, la start-up Ponicode propose une IA qui génère automatiquement les tests unitaires correspondant au code JavaScript qui lui est soumis. Récemment, elle a dévoilé un outil de génération automatique de Docstrings, l’entête de commentaires qui décrit le rôle d’une fonction.

« Notre produit se présente sous la forme d’une GitHub Action », explique Patrick Joubert, le fondateur de Ponicode. « Lorsque le développeur fait un Pull Request de son code Python, notre IA fait une proposition de Docstrings pour un ensemble de fonctions. L’IA va comprendre quels sont les paramètres d’une fonction, comprendre ce à quoi sert la fonction et va proposer un commentaire en anglais.» Ponicode vient de dévoiler ce nouvel outil et va le développer, notamment pour décrire le rôle de chaque paramètre d’une fonction. La start-up travaille désormais sur une IA qui pourrait effectuer du refactoring de code ou encore pour repérer des failles de sécurité, ce que l’on appelle de la Threat Detection.

Avec CodeGuru, Amazon Web Services propose un outil de profiling de code assisté par l’IA.

Dans la même veine, Amazon Web Services a dévoilé CodeGuru. Là encore, l’outil ne cherche pas à Avec CodeGuru, Amazon Web Services propose un outil de profiling de code assisté par l’IA. générer du code, mais réalise un profiling de la fonction et l’IA va conseiller le développeur sur la façon dont il pourrait améliorer son code.

Quand l’IA analyse les retours des utilisateurs

L’intervention de l’IA ne se limite pas à l’analyse du code source, mais peut se montrer utile dans l’analyse des besoins des utilisateurs. C’est la conviction de Victor Arfi, co-fondateur et CEO de WeLoop, un éditeur qui a mis au point un outil collaboratif pour collecter les avis des utilisateurs : « Notre idée est que le backlog du développeur doit être cohérent avec le besoin réel des utilisateurs. Il doit développer les bonnes fonctions dès le premier coup et non pas passer son temps à retravailler des fonctionnalités ne correspondant pas tout à fait aux demandes des utilisateurs.» Dans une fenêtre pop-up, chaque utilisateur peut commenter le fonctionnement de l’application, faire des suggestions aux développeurs. Une IA va analyser les demandes et les prioriser. « L’Intelligence artificielle analyse en temps réel les messages échangés par les utilisateurs et va pousser les idées les plus pertinentes auprès des utilisateurs qui ont des centres d’intérêt similaires. D’un clic, le Product Manager veut lancer le développement d’une fonctionnalité, il n’a plus qu’à pousser la demande vers Jira, Tribo ou GitLab.»

L’IA s’infiltre dans tout le cycle CI/CD

De facto, l’IA peut intervenir tout au long du cycle de développement et d’intégration d’une application. Les plates-formes de CI/CD contiennent en effet beaucoup de données qui peuvent nourrir les algorithmes. Ainsi, l’éditeur Dynatrace exploite l’IA pour constater d’éventuels écarts de performances d’une version à une autre et repérer les fonctions qui pourraient pénaliser l’application en production. « L’IA peut intervenir très tôt dans le cycle de vie d’une application, c’est-à-dire au moment du développement, notamment lorsque le développeur va livrer son code à une étape de test », argumente Jérôme Thomas, Sales Engineer chez Dynatrace. « Une IA peut exploiter ces données de test pour comparer les différences entre versions, comparer la consommation de ressources de chaque version. Le but est d’éviter que ce soit lors de la mise en production que les ops doivent compenser d’éventuels problèmes de performances et de mauvaise qualité de code par l’ajout de serveurs.»

Si les développeurs peuvent être rassurés sur l’avenir de leur profession à moyen terme, nul doute qu’ils auront à l’avenir de plus en plus d’IA pour les assister dans leur quotidien : quoi qu’il en soit, ce ne sera pas du luxe pour faire face à l’effet ciseau de l’accroissement du rythme de production des applications et la montée en complexité des architectures logicielles.

 

WeLoop exploite l’Intelligence artificielle afin de trier et valoriser les retours des utilisateurs sur l’application en phase de développement.