Ce billet a été rédigé à l’origine pour l’IMA (Innovation Makers Alliance) sous le titre “Low Code et IA générative, la vision Mendix”, il a été publié en mai 2024 dans le livre blanc “Low Code, No Code & IA Gen : bientôt tous citizens ?” qui rassemble des statistiques, des cas d’usage, des interviews et des tribunes d’experts (éditeurs et intégrateurs). Ce livrable est téléchargeable ici.

Place à la tribune.


Personne ne peut passer à côté de l’engouement actuel pour l’IA Générative, on en entend parler partout et tout le temps, avec en fer de lance le bien connu ChatGPT, qui a pulvérisé les taux de pénétration du web en atteignant, à sa sortie en 2022 les 100 millions d’utilisateurs en 2 mois quand il a fallu ~4 ans à YouTube ou ~7 ans à LinkedIn (selon l’étude « Perspectives from the Global Entertainment & Media Outlook 2023–2027 » de PwC, juin 2023).

Alors oui, l’IA Gén c’est génial (c’est d’ailleurs son anagramme), mais pour quoi faire exactement ? et est-ce que cela impactera, voire remplacera, les outils de développement dans les semaines/mois/années à venir ?

Bien que l’IA Générative soit en mesure de produire sérieusement des lignes de code à la demande, comme peuvent le montrer GitHub Copilot, Amazon CodeWhisperer ou Google Codey, nous allons essayer de voir dans la suite de cette tribune que l’impact sera vraisemblablement plus à l’évolution des outils existants grâce à cette nouvelle commodité qu’à leur remplacement. Puis nous évoquerons comment la plateforme Low Code Mendix a intégré l’IA Générative, aussi bien pour ses développeurs (les makers) que pour permettre son intégration simplifiée au sein des applications à destination des utilisateurs de nos clients.

Pourquoi l’IA Générative ne va pas remplacer les plateformes de développement (et a fortiori les développeurs) ?

Dans un 1er temps parce que la création d’une application ou d’un logiciel, est un processus qui est bien plus large que l’écriture de code. Il y a des réflexions à mener, entres autres, sur l’architecture technique, l’architecture fonctionnelle, sur la sécurité… et en aval sur la chaîne de déploiement, les tests, l’exploitation et il faut aussi tout faire pour avoir une maintenance la plus efficiente. Aujourd’hui, en matière de développement, l’IA Gén se concentre plus sur des choses relativement triviales, mais même si automatiser la génération du code, en prenant en compte tout cela pourrait être envisageable avec une IA bien entraînée et au fait du contexte de chaque organisation, cela risque d’être un cauchemar lors d’un dysfonctionnement. On en viendra à passer plus de temps à vérifier la cohérence et la conformité du résultat qu’il en aurait fallu pour développer.

Dans un 2nd temps, parce que, plus le volume de code généré est important, plus le risque d’introduction d’erreurs et de failles le devient également et nécessite donc une attention accrue. D’ailleurs, McKinsey note que « l’IA Générative peut augmenter la vitesse des développeurs, mais moins pour les tâches complexes » (étude « Unleashing developer productivity with generative AI », de juin 2023) estimant un gain de productivité de 50% pour générer de la documentation, mais inférieur à 10% lorsqu’il s’agit de participer à l’élaboration d’un projet complexe.

Il en résulte alors que l’usage de l’IA pour générer du code doit se faire en mode assistance du développeur, afin d’augmenter sa productivité, par morceaux ou par briques dont le développeur assurera la cohérence. Il est donc nécessaire, pour que les développeurs puissent bénéficier au maximum des apports de l’IA, que les plateformes de développement se voient augmentées de telles capacités. L’IA Générative peut donc devenir au développeur, ce qu’un exosquelette est à un manutentionnaire : un outil lui permettant de travailler plus vite et de traiter des charges plus lourdes tout en étant en contrôle complet de ce qui doit être fait.

Pour le Gartner, en 2027, 70% des développeurs pro utiliseront des outils de développement alimentés/augmentés par IA, contre moins de 10% aujourd’hui (Article « Set Up Now for AI to Augment Software Development », sept. 2023).

Les développeurs Mendix (les makers) font d’ores et déjà partie de ces 10%, car le Low Code et l’IA Générative sont complémentaires plutôt que concurrents ! En effet la promesse d’une plateforme Low Code a toujours été d’augmenter la productivité des développeurs tout en vulgarisant les aspects les plus techniques et sans rogner sur leur satisfaction. Donc il a été très naturel de proposer des fonctionnalités d’IA Générative à nos clients et à nos makers à tous les niveaux possibles de notre plateforme. Pour cela, nous gérons en interne deux branches principales pour tout ce qui a trait à l’IA, et qui ont des objectifs différents :

  • L’intégration de l’IA dans les applications mises en place par nos clients, ce qu’on appelle les Smart Apps, les applications augmentées par IA.
  • L’intégration de l’IA à nos outils de conception et nos services disponibles tout au long du cycle de vie d’un projet, ce que l’on appelle le Smart Dev, le développement assisté par IA.

Les Smart Apps

Pour beaucoup, les clients sont encore au stade de la réflexion… comment utiliser l’IA Gén dans mes applications ou logiciels pour faciliter la vie de mes utilisateurs finaux ? ou pour accélérer les traitements ? Quelques initiatives concrètes commencent à voir le jour et à être utilisées en production et chez Mendix l’idée est de fournir des outils et fonctionnalités complètement packagées qui permettent de créer de telles applications tout en conservant une expérience de conception Low Code : simplement, rapidement et sans nécessiter d’expertise forte. Car on ne va pas se le cacher, en pur développement, intégrer de l’IA Gén dans son projet demande des connaissances techniques avancées.

Il faut donc abstraire cette complexité de configuration, simplifier l’usage (l’accès au compute engine, aux bases de connaissance…). Cela passe par un ensemble de connecteurs prêts à l’emploi qui permettent de s’appuyer sur des services cloud IA et IA Gén existants :

  • les services cognitifs d’Amazon ou d’Azure (comme Textract, AI Vision, Translate…),
  • des modèles fondamentaux tels qu’OpenAI ou au travers d’Amazon Bedrock,
  • des services spécialisés (tels qu’Abbyy, Klippa, stability ai…),

Ou, si l’on ne souhaite pas passer par des services en ligne, il est possible de s’appuyer sur notre Kit de Machine Learning (MLKit) qui permet d’exécuter des modèles entraînés (construits avec des framework ou langages de Deep Learning standard comme Caffe2, PyTorch, PaddlePaddle…) directement au sein des applications Mendix. Il est alors possible de créer, relativement simplement, des applications qui vont proposer des fonctionnalités d’analyses de sentiments, de la détection d’anomalie, des recommandations, de la classification, de la détection d’objets… en s’appuyant sur des capacités de calculs propres à l’application elle-même. L’application et l’IA ne font donc plus qu’un, ce qui simplifie le déploiement dans n’importe quel environnement et devient un argument très fort, notamment dans l’industrie pour le Edge Computing : l’application peut être déployée en un clic sur une flotte de terminaux Edge qui, au plus près des machines, écouteront les téraoctets de données quotidiennes produites et réagiront intelligemment en cas d’événements de déviation.

Chez nos clients, l’IA Gén sur des applications en production commence à voir le jour avec l’utilisation de modèles de prédiction avancés pour l’estimation précise de la date de livraison de colis, ou un ingénieur virtuel qui peut répondre à toutes les questions concernant l’état de santé et les événements d’usines de production afin de faciliter la maintenance ou encore dans le domaine de l’expérience digitale de clients en assurance, des outils permettant de simplifier la compréhension des contrats et faciliter les demandes auprès des agents.

Le Smart Dev

La 2de  branche, bien qu’elle repose sur les mêmes fondamentaux, est dédiée à un usage complètement différent : il ne s’agit pas ici de fournir des fonctionnalités pour les utilisateurs finaux, mais d’augmenter la productivité de nos makers, grâce à l’IA Gén directement et naturellement intégrée dans notre outil de développement visuel sous forme d’assistant (ou de copilote pour reprendre un terme largement utilisé sur le marché). Cela permet de conserver cette capacité à faire collaborer des profils de concepteur complètement différents.

Un ensemble de micro-automatisations est donc mis à disposition du maker tout au long du cycle de vie de son projet afin d’accélérer toujours plus drastiquement le Time-to-Market. Il peut alors demander des générations automatiques d’éléments, généralement depuis le MxChat, le chatbot Mendix accessible depuis déjà de nombreux mois au sein de Mendix Studio Pro, et qui devient de plus en plus « intelligent » au gré des sorties mensuelles de notre plateforme.

En promptant notre IA depuis notre chatbot, cela lui permet (ou, pour certains des exemples ci-après, lui permettra dans un avenir proche) de demander :

  • la génération d’un modèle de données qui correspond à tel ou tel besoin métier,
  • la génération de données de tests pour alimenter ce modèle de données de façon cohérente,
  • la mise à jour les styles de l’application en s’appuyant sur une image, une URL, une description,
  • la génération de pages ou de scripts de validation de contenu,
  • la génération de user stories en fonction de besoins métier
  • la génération de cas de tests en fonction des users stories et de l’application créée,
  • la recommandation de modules utiles de la marketplace,

Bien évidemment, tout ce qui est généré est ensuite modifiable par le maker, puis, à tout moment, qu’il soit en phase de création initiale de son projet ou en phase d’évolution et maintenance, il peut continuer à faire appel à notre IA.

Elle sait également intervenir de manière pro-active :

  • Lors de la configuration de la logique applicative, elle peut proposer le paramétrage automatique d’actions, se basant à la fois sur le contexte du flux et sur ce que nos clients ont l’habitude de faire dans des cas similaires.
  • En analysant, de manière globale et en tâche de fond, ce qui est mis en place par le maker pour le confronter aux bonnes pratiques… et si cela est nécessaire, de recommander des modifications, des façons différentes de faire puis de les implémenter automatiquement si elle a l’accord du maker.

Tout cela, sans oublier que le MxChat est aussi un fort allié pour la montée en compétence des makers, car il permet de conseiller ou d’expliquer des concepts ou des patterns qui ont été mises en place sur le projet !

Notre IA Gén est en perpétuelle amélioration, chaque nouvelle version mensuelle de notre plateforme, apporte son nouveau lot d’automatisations, ses optimisations. D’un point de vue architecture, notre « bot » intègre deux modèles d’IA : un modèle linguistique (LM) pour la recherche sémantique dans la base de connaissances et un large modèle linguistique (à savoir Mistral 🇫🇷 💪) pour résumer et générer des réponses. Pour garantir l’exactitude des données spécifiques à Mendix, MxChat utilise la RAG (Retrieval Augmented Generation) qui s’appuie sur les différences sources de données dont nous sommes garants (documentation produit, académie, bonnes pratiques, forums etc.)

Conclusion

Pour conclure, j’espère vous avoir convaincu, par l’exemple, que l’IA Gén n’a pas d’avenir en tant que développeur autonome, mais est un formidable outil pour assister et alléger les tâches des développeurs dans un contexte qui doit être cadré. La combiner à une plateforme Low Code qui facilite la collaboration entre les différentes parties prenantes d’un projet, apporte de la simplicité avec la conception visuelle et qui, par essence, propose un véritable cadre de conception, est donc complètement naturel et engendre rapidement efficience, productivité et efficacité. Il y a une complémentarité très forte entre les deux et de grandes chances que leur combinaison soit l’avenir du développement.

#

Pas encore de commentaire

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.