Il me semble que lorsque nous manquons de nouvelles choses à discuter dans le monde de la technologie, nous plongeons dans ce vieux sac d’antan et en ressortons quelques classiques intemporels. C’est là que nous jouons à « qui fait mieux » pour montrer à quel point nous maîtrisons l’histoire.
« Je me souviens d’avoir joué à Star Trek sur le vieux TRS-80 (le Trash 80 pour nous, les branchés). C’était écrit en BASIC, et nous changions ce que les personnages disaient… « Oh vraiment, M. Spock ? Ce n’est pas logique. » »
« Ouais, je me souviens d’avoir joué à Beyond Zork sur mon Apple II, je devais taper toutes mes commandes au clavier ! »
« Tu te souviens d’avoir écouté le programme enregistré sur la cassette de l’Atari 800 pour entendre à quoi ressemblait le code source ? »
« J’ai utilisé des cartes perforées et un lecteur de cartes pour exécuter mes premiers programmes sur le mainframe. » ÉCHEC ET MAT !
En tant que programmeur de la vieille école, il est fascinant de voir tant de vieux concepts réincarnés avec une terminologie et une technologie différentes pour résoudre les mêmes problèmes que nous tentions de résoudre au siècle dernier (littéralement, le siècle dernier―j’exagère un peu pour faire passer mon idée).
Le fil conducteur pour comprendre ces concepts n’est pas l’histoire des solutions destinées à résoudre un problème particulier, mais plutôt l’identification du besoin de résoudre le même problème à travers les générations de développement logiciel et l’exploration des raisons pour lesquelles les solutions n’ont pas pu corriger le problème auparavant. Les solutions étaient-elles simplement en avance sur leur temps, ou y avait-il des problèmes plus profondément enracinés ?
Low code sous un autre nom…
Le concept de développement d’applications low code existe depuis… eh bien, depuis les débuts de la programmation. Peut-être que ce n’était pas appelé low code ou no code à l’époque (4GL, CASE, RAD, etc.), mais le besoin de ce qu’une solution low code tente d’accomplir a été une priorité depuis qu’Alan Turing a crié à son équipe : « Pourquoi est-ce que vous mettez autant de temps à coder ça ?!?! » (S’il vous plaît, pas de commentaires sur cette citation―je l’ai inventée―mais cela ne m’étonnerait pas si c’était arrivé.)
Le cœur de la définition de l’approche low code est de répondre à la question de savoir comment réduire la dépendance à des ressources coûteuses pour programmer nos systèmes. De plus, comment y parvenir tout en accélérant le cycle de vie du développement ?
L’approche développemet low code : 2 objectifs
- Comment une entreprise peut-elle réduire le besoin de développeurs ? Les règles de base de l’offre et de la demande s’appliquent ici ; lorsque la demande augmente et que l’offre est limitée, les coûts augmentent. Et comme tout analyste vous le dira, la demande de développement d’applications continue d’augmenter à un rythme record. Une plateforme low code permet à un utilisateur non technique de créer une application via une interface utilisateur graphique point-and-click sans code, ou avec seulement une petite quantité de code nécessaire. L’application low code génère le programme et produit tout code nécessaire en fonction des entrées de l’utilisateur peu technique.
- Comment accomplir cette prouesse magique tout en accélérant le processus ? Une partie de la logique derrière une plateforme low code est qu’au lieu d’avoir les utilisateurs experts dicter leurs exigences à un analyste métier qui documente la demande et la transmet à un développeur (qui peut ne pas comprendre le métier, mais qui crée le code nécessaire de toute façon), ne pouvons-nous pas accélérer le processus en permettant à l’utilisateur final de créer l’application ? Tout ce qu’il aurait à faire est de pointer et cliquer. Appuyez sur le bouton magique et abracadabra… nouveau programme.
Les défis de l’ancienne approche low code
L’approche low code a entraîné plusieurs problèmes majeurs, notamment la prolifération de très nombreuses petites applications non connectées soutenant un champ d’application étroit de fonctions métier. Ces applications étaient construites indépendamment selon ce que les utilisateurs finaux interprétaient comme les règles métier correctes, alors qu’en réalité, ces règles pouvaient être incorrectes ou avoir une validité limitée au-delà de leur domaine métier spécifique.
Bien que cette approche ait probablement rendu de nombreux utilisateurs finaux heureux, ce qui manquait était l’adhésion à une stratégie d’entreprise et une gouvernance garantissant la qualité et la cohérence des données à travers les systèmes.
Les plateformes low code ne soutenaient pas toujours les meilleures pratiques (pensez au contrôle de version, aux tests d’intégration, etc.) et augmentaient souvent les risques de sécurité.
En fin de compte, différentes parties de l’organisation considéraient les données de leur système local comme parole d’évangile, mais les informations correspondaient rarement entre les fonctions métier en raison de logiques différentes. Clairement, ce n’est pas une bonne stratégie de prise de décision.
Un autre défi était le volume d’applications qui pilotait des fonctions métier critiques à travers l’organisation. Avec le temps, les auteurs originaux sont partis, et les départements informatiques se sont retrouvés à essayer de soutenir des centaines, voire des milliers d’applications construites sur des technologies vieillissantes et obsolètes avec une documentation limitée, voire inexistante.
Essayez de retirer des milliers d’applications non documentées sans connaître l’impact du système sur d’autres fonctions métier. (J’ai participé à des efforts comme celui-ci, et cela peut vraiment gâcher vos vacances d’été).
En fin de compte, le manque de supervision, de gouvernance et de meilleures pratiques a créé un désordre plus grand que les avantages de créer des applications rapidement.
Une nouvelle vision du low code : qu’est-ce qui a changé ?
Quelques entreprises ont fait évoluer les concepts de développement d’applications low code vers une approche plus stratégique et holistique. Il existe aujourd’hui des plateformes low code d’entreprise qui permettent à un utilisateur peu technique de gérer le modèle de données, la logique métier et les relations de données de son application en utilisant une interface frontale point-and-click. Ces informations sont ensuite traitées comme des données et stockées dans une base de données ou un autre support.
Cette approche industrielle du low code permet aux utilisateurs peu techniques de construire un modèle de données unique à travers plusieurs applications d’entreprise sur une plateforme tout en gérant les règles métier de toutes les applications de manière cohérente.
Ces informations critiques deviennent portables et permettent à la plateforme d’être mise à niveau et adaptable, car les informations ne résident pas dans une application isolée, mais font partie d’un environnement plus large. Plus important encore, des changements critiques comme les règles métier peuvent être effectués au fil du temps par un utilisateur non technique, et non par des programmeurs coûteux.
Bien sûr, de nombreuses entreprises proposent encore une version modernisée des plateformes low code/no code basées sur les concepts originaux décrits précédemment. Ces solutions permettent aux utilisateurs peu techniques de créer rapidement des applications simples en connectant une source de données à une sortie visuelle pour fournir des informations en temps réel, sans avoir à écrire de code.
Certaines de ces applications offrent également une fonctionnalité d’écriture ou s’intègrent à des fonctionnalités métier typiques, comme un processus de flux de travail. Ce sont d’excellents cas d’utilisation pour ces solutions, et elles sont particulièrement efficaces pour fournir des informations opérationnelles aux utilisateurs en temps réel. Bravo !
Les problèmes que je vois avec ce modèle sont les mêmes que ceux rencontrés dans les générations précédentes de low code. Sans la gouvernance et la stratégie appropriées, les applications sont créées plus rapidement qu’elles ne peuvent être contrôlées. Ces solutions sont tactiques et ne fournissent pas un endroit centralisé pour gérer des règles métier cohérentes, laissant la logique métier critique déconnectée et séparée entre les systèmes.
De plus, lorsque la logique métier change ou que la technologie doit être mise à niveau, l’entreprise est désormais responsable de déterminer l’impact du changement métier sur des centaines ou des milliers d’applications et de commencer le processus de mise à jour nécessaire. (Aïe, j’ai vécu cela, je ne veux pas y retourner).
Aras Innovator avec une nouvelle approche low code
Bien que les solutions low code existent depuis longtemps, réapparaissant sous différentes formes, elles ont eu du mal à maintenir une présence dans les paysages de développement. Cela dit, le besoin de développer des systèmes moins chers et plus rapidement n’a pas changé, et le fait que les gens reviennent toujours aux concepts low code est une bonne indication qu’il existe une solution valable à en tirer.
De nombreuses plateformes low code aujourd’hui se concentrent sur la création rapide de petites applications simples qui peuvent fournir des informations à un utilisateur en temps réel. La question n’est pas de savoir s’il existe des cas d’utilisation valables (il y en a) ou si la solution fonctionne (elle fonctionne), mais plutôt si les entreprises ont le courage de gouverner les efforts de développement avant que le paysage ne dépasse leur capacité à le gérer. Le temps nous le dira, mais s’il vous plaît, ne m’appelez pas pour nettoyer le désordre.
La nouvelle approche industrielle du low code amène le concept de low code à un niveau supérieur. Des entreprises comme Aras ont conçu leurs plateformes low code en utilisant le concept low code, réduisant considérablement la quantité de code nécessaire pour construire des applications.
En modélisant l’entreprise et ses processus, Aras Innovator crée un modèle de données qui soutient les règles métier et les relations de données, le tout réalisé par des utilisateurs peu techniques via une interface utilisateur facile à utiliser.
La solution industrielle low code d’Aras est construite sur un ensemble riche de services de plateforme qui permet de créer des applications d’entreprise, le tout sur une seule plateforme. Cette plateforme résiliente fournit un environnement sécurisé, évolutif et adaptable qui répond aux nouvelles exigences métier souvent sans avoir besoin de programmeurs.
Bien que ces deux approches utilisent toutes deux des concepts low code, elles ne peuvent vraiment pas être comparées. L’une est une réincarnation des efforts passés qui comporte les mêmes risques que ceux observés à l’époque, et l’autre est un pas en avant majeur pour le développement d’applications.
Enfin, après des générations de développement logiciel, l’objectif de réduire la dépendance à des développeurs coûteux, tout en réduisant le temps du cycle de vie du développement, a porté ses fruits. Peut-être qu’Alan Turing peut enfin se reposer un peu (encore une fois, pas de commentaires, s’il vous plaît).