Le low-code, comment ça marche ?
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, tel M. Jourdain, 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 ou l'un de ses concurrents, 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 pour entrer des valeurs, d’afficher des résultats 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é.
Les tableurs, premières killer app du PC… après les jeux
Historiquement, les premiers tableurs développés sur Mac et Windows furent les "killer apps", qui contribuèrent très largement au succès et à l'adoption rapide des technologies naissantes d'ordinateurs personnels (PC). Leur réussite tient au fait qu’ils ont permis à tout un chacun de résoudre tout un tas de problèmes sans avoir à programmer !
D’ailleurs VisiCalc sur l'Apple II, distribué dès 1979,a été inventé par Dan Bricklin parce que celui-ci pensait que sa carrière de programmeur allait toucher à sa fin : il s'imaginait que programmer allait devenir tellement simple, que sa compétence ne serait plus recherchée sur le marché ! À 26 ans, fin 1977, il s'inscrivit alors en formation dans un école de management (Harvard Business School) pour préparer sa reconversion professionnelle !
C'est alors qu'il devait remplir à la main les grands tableaux de planification des opérations de production qu’il eut l'idée d'informatiser ces tableaux gigantesques (découpés en ligne et colonnes, et remplissant parfois plusieurs salles contiguës). Le premier prototype de tableur pour PC était né, écrit en BASIC, et qui fut implémenté de façon industrielle avec Bob Frankston, et vendu à 100$ la copie, en octobre 1979.
La vision de Bricklin de l'arrivée du Low-Code / No-Code serait-elle finalement devenue réelle aujourd'hui, 40 ans après ?
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 pour nous permettre de réaliser ces différentes tâches sans pour autant devoir écrire une ligne de code.
Un tableur met à la disposition du développeur un modèle basé sur la notion de grilles qui 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 oeuvre 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 graphique : changer la couleur de fond des cellules, changer la taille, changer la police, masquer des cellules, mettre en forme des tableaux. Il est possible de créer des interfaces utilisateurs extrêmement riches incluant en particulier des graphiques.
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 oeuvre 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, de connecter des systèmes via des API en mode REST, de 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é, qui 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 pression induite par la digitalisation des activités, pousse les entreprises à gommer la division qui a longtemps été 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 a 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, comme remplacement de nos tableurs historiques_._ 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 oeuvre 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 coeur 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, à 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.
Quelles offres no-code/low-code permettront à l’utilisateur métier d’aller au delà d’Excel ? Quelles offres permettront à l’entreprise d’améliorer sa capacité d'innovation ? Quelles offres permettront d'augmenter la productivité des équipes IT ? Nous vous livrerons la vision Octo dans notre prochain article.
Et, rassurez-vous, le métier de développeur d'application n'est pas près de disparaître : pas la peine de vous ruer sur une formation de MBA comme Dan Bricklin en 1977 !
Références
- Gartner : Magic Quadrant for Enterprise Low-Code Application Platforms
- The Forrester Wave™: Low-Code Development Platforms For AD&D Professionals, Q1 2019
- The Forrester Wave™: Low-Code Platforms For Business Developers, Q2 2019
- Robert X. Cringely, Accidental Empires: How the Boys of Silicon Valley Make Their Millions, Battle Foreign Competition, and Still Can't Get a Date, HarperBusiness, 1996, p. 64 - 72.