Depuis quelques mois les offres sur les technologies no-code/low-code montent en puissance. Google, Microsoft, SalesForce ont tous une offre sur le sujet, et ils ne sont pas seuls. D’autres acteurs venant des outils de RAD (Rapid Application Development), du mobile, ou du BPM (Business Process Management) proposent aussi leurs solutions no-code/low-code.
Implémenter une application sans code semble être une gageure. En effet, un développeur est bien souvent assimilé à un programmateur, un codeur… en somme, un producteur de code ! Pourtant, le low-code ne relève pas de la recherche de la pierre philosophale. Le développement sans code est une pratique largement répandue ! Vous-même, faites du low-code sans même en avoir conscience.
L’outil de no-code le plus utilisé au monde
Faire du low-code/no-code c’est construire une application sans coder (no-code) ou avec peu de code (low-code). Si vous avez déjà manipulé un tableur comme Excel, alors vous avez déjà fait du low-code.
Les tableurs sont des applications particulières qui permettent de construire nos propres applications. Lorsque nous ouvrons le tableur Excel, il ne fait rien ! C’est après avoir créé une feuille de calcul que nous obtenons une application opérationnelle. En soi, une feuille de calcul a toutes les caractéristiques d’une application. Elle contient des informations, elle les traite, elle permet d’interagir… et dans l’absolu de stocker les résultats.
Alors comment un tableur réussit-il ce tour de force de nous permettre de créer des applications sans coder ? Tout simplement en permettant à l’utilisateur (qui peut être assimilé à un développeur) de définir de manière interactive et visuelle, l’organisation des données, les traitements associés et l’affichage souhaité.
Développer une application sans code
Développer une application revient à définir des structures de données, des traitements et une interface homme/machine. Pour comprendre comment les outils de low-code fonctionnent nous allons examiner les recettes qu’utilise un tableur.
Un tableur met à la disposition du développeur un modèle basé sur la notion de grilles. Ces grilles permettent à l’utilisateur d’organiser ses données. Ainsi, l’utilisateur-développeur peut disposer ses données en lignes et en colonnes, définir que certaines cases seront des constantes, d’autres des titres de colonnes ou de lignes. De même, il peut indiquer de manière interactive si des cellules doivent contenir des nombres, des dates ou des chaînes de caractères.
L’outil interprète les demandes, les expose graphiquement à l’utilisateur et les met en œuvre automatiquement. Il n’y a qu’une contrainte : toute information doit être rangée dans une cellule d’une grille.
La définition des traitements se fait au moyens d’expressions. Ici encore le tableur propose de travailler de manière interactive : le développeur indique l’expression à calculer directement dans la cellule où le résultat est désiré. Le tableur offre une approche descriptive, l’utilisateur modifie un chiffre ou change une formule et le tableur effectue les calculs nécessaires de manière automatique.
Les tableurs modernes proposent des fonctionnalités plus élaborées. Par exemple la possibilité de définir des tris, des filtres ou encore de réaliser des analyses de type Business Intelligence via des tableaux croisés dynamiques. Il n’est pas neutre de remarquer qu’utiliser des fonctionnalités avancées nécessite un effort d’apprentissage de l’outil.
Sans surprise, le développement de l’interface utilisateur se fait aussi de manière interactive. En indiquant à l’outil les effets désirés au travers d’une IHM (Interface Homme Machine), il est possible de créer des interfaces utilisateurs extrêmement riches.
Du tableur à l’outil de low-code moderne
Les outils de low-code reposent exactement sur les mêmes mécanismes. Ils fournissent des modèles génériques, souvent appelés méta-modèles (méta-modèles de données, méta-modèles de traitements, méta-modèles d’IHM, méta-modèles de flux) et des outils, appelés modelers, qui permettent à l’utilisateur de décrire (modéliser) de manière interactive le besoin fonctionnel en s’appuyant sur ces méta-modèles. Ces outils prennent en charge la complexité technique sous-jacente à l’exécution de ces modèles.
Par exemple pour la partie modélisation des données, de nombreuses solutions de low-code proposent une méta-modélisation de données reposant sur les principes d’entités et de relations (et non de grilles à l’instar des tableurs). Rien de révolutionnaire à ce niveau… pour un informaticien. A la différence d’une approche classique de développement, l’outil de low-code va permettre à un utilisateur de définir interactivement son modèle de données, puis va décharger complètement ce dernier de la mise en œuvre technique de ce modèle.
Typiquement, la création d’un serveur de base de données, la création des structures de la base de données, ou encore l’alimentation des données dans ces structures seront faites de manière automatique. Le développeur n’a pas à s’en préoccuper… Plus encore, c’est l’outil qui fera des choix techniques. Par exemple, il se peut même que l’outil n’utilise pas une base de données relationnelle ! C’est exactement ce qui se passe avec votre tableur lorsque vous enregistrez votre feuille de calcul. Les données, formules, graphiques et instructions de mise en page sont enregistrés dans un fichier sans que vous n’ayez à vous préoccuper d’autre chose que de son nom et de son emplacement.
De manière similaire un méta-modèle d’IHM et le modeler associé permettent de définir les IHM et de relier les éléments graphiques à des données ou des traitements.
Ces approches à base de méta-modèles ne sont pas nouvelles, les outils de type RAD (Rapid Application Development) utilisant des approches similaires ont eu un moment de gloire à la fin des années 90. Le renouveau actuel est, comme souvent dans l’informatique, dû à un contexte technologique qui a évolué.
Dans le cas des outils low-code le contexte technologique a fait évoluer, concomitamment, l’offre et la demande. L’offre s’est améliorée grâce aux technologies cloud qui permettent entre autre :
- de publier des applications de type Web sur des serveurs provisionnés automatiquement,
- connecter des systèmes via des API en mode REST,
- partager des données de manière sécurisée (par exemple via OAuth2).
La demande quand à elle est tirée par la digitalisation de la société. Elle se traduit par un mouvement général de dématérialisation de nombreux processus, internes ou non aux organisations.
Digitalisation et low code
La digitalisation des activités induit une pression qui pousse les entreprises à gommer la division qui est faite entre les services informatiques et les services métiers.
En effet, ces derniers sont en attente d’une plus grande rapidité dans la réponse à leurs besoins. Les outils de low-code, en masquant la complexité technologique, participent à ce mouvement. Ces technologies permettent aux personnes non-informaticiennes de “digitaliser” leurs activités avec un niveau de connaissances technologiques réduit. Leur action sur le système d’information amène la société Gartner à nommer ces personnes les citizen developers.
La vague du low-code va au delà de l’utilisation du low-code par les seuls citizen developper. En effet certains outils de low-code s’adressent aux développeurs professionnels. D’ailleurs Forrester propose deux grilles d’analyse des outils low-code :
- une pour les utilisateurs non informaticiens
- et une pour les informaticiens (Advanded Developers and Pro).
A l’instar de leurs homologues destinés aux citizen developers, ces outils visent à abaisser la complexité technologique visible par les développeurs, de manière à mettre en œuvre des applications en se libérant des complexités techniques sous-jacentes.
Ce faisant, les développeurs peuvent se focaliser sur ce qui constitue le cœur de leur activité, à savoir la conception du produit souhaité.
Pour les entreprises, même si une formation spécifique à l’outil de low-code est nécessaire, la réduction du temps de formation et des connaissance techniques pré-requises est un avantage séduisant en cette période de manque de développeurs.
Quelles opportunités pour le no-code
Développer des applications avec peu de code, voire sans code, est tout à fait possible. C’est une démarche qui existe depuis des années. Que ce soit avec les tableurs, des outils de type RAD ou encore des générateurs d’applications mobiles.
L’évolution des techniques du cloud et la pression du marché favorisent l’émergence d’une offre riche et renouvelée. A la fois pour les utilisateurs non informaticiens et les informaticiens expérimentés.
L’enjeu consiste à déterminer quels outils et quels cas d’utilisations sont pertinents pour les différentes populations d’une compagnie. C’est une question cruciale car les solutions de low-code sont efficaces tant que les besoins sont nativement couverts par leurs modelers respectifs.