Low-code et développement traditionnel : une comparaison pratique
Parfois, la frontière entre le low-code et le développement traditionnel est floue. Comparez les avantages et les inconvénients de chaque approche pour déterminer quand utiliser l’une ou l’autre, voire une combinaison des deux, en fonction de vos projets de développement.
Si l’on écoute les éditeurs, il est facile d’opposer le développement low-code à une approche plus traditionnelle de programmation, mais la réalité s’avère bien plus complexe. Souvent, les deux méthodes se chevauchent, voire s’entremêlent dans un même workflow.
Cet article tente de différencier les pratiques conventionnelles de celles du low-code et d’identifier la manière de les intégrer dans une stratégie de développement en entreprise.
Principes de base du développement low-code
Le low-code est une approche par laquelle un développeur met en œuvre certains éléments d’une application à l’aide de modules précodés, souvent sélectionnés par le biais d’une interface en glisser-déposer, puis combinés pour créer la fonctionnalité souhaitée. Cette approche liée à un outil spécifique nécessite un certain niveau de programmation, afin d’ajuster les modules et configurer leurs interactions. Mais, en général, cela permet aux développeurs de rédiger beaucoup moins de lignes de code que dans le cadre d’un projet plus traditionnel.
Le low-code doit apporter un avantage majeur et évident, surtout pour les programmeurs chevronnés : la rapidité de conception. Les éléments préfabriqués réduisent le temps de mise en œuvre des fonctionnalités de l’application, de sorte que les développeurs peuvent se concentrer sur les tâches prioritaires pour l’entreprise. Le low-code peut aussi aider les développeurs à intégrer des logiciels, des middlewares ou des composants sans apprendre tous les tenants et aboutissants de chacun d’entre eux.
Certains évangélistes présentent également le low-code comme un moyen de donner des capacités de développement aux collaborateurs en dehors de la DSI, parfois appelés « citizen developers ». Entendons-nous bien : le low-code peut rendre la programmation plus accessible au plus grand nombre, mais les outils ne permettent pas en eux-mêmes de conférer « des pouvoirs » de conception à tout le monde. En effet, cela réclame un minimum d’effort de configuration manuelle, et une compréhension des fondamentaux des architectures logicielles ainsi que des fonctionnalités associées.
Low-code versus développement traditionnel
Les lignes qui séparent le low-code du développement traditionnel sont un peu floues, pour plusieurs raisons.
La plupart des développeurs professionnels ont mis en œuvre des techniques low-code dans certaines parties de leurs workflows depuis longtemps, et ce même s’ils ne se considèrent pas comme des adeptes de cette approche. Si un IDE complète automatiquement les lignes de code ou des noms de variables, par exemple, il se comporte en partie tel un outil low-code, bien que les éditeurs l’expriment rarement de cette manière.
En outre, les modules externes ou les API tierces qui intègrent des fonctionnalités dans une application peuvent être assimilés au low-code. Même les bibliothèques logicielles, pierre angulaire du développement depuis des décennies, peuvent être jugées comme telles, dans la mesure où elles permettent de construire une application complexe sans réécrire les packages utilisés.
Les plateformes de gestion de contenu telles que WordPress et Drupal brouillent également les frontières entre le développement traditionnel et la programmation low-code, car elles prennent en charge les deux techniques. Vous pouvez concevoir des sites Web sur ces plateformes avec peu de codes personnalisés – ou créer une simple landing page en quelques clics et sans écrire une ligne de code. En revanche, certaines entreprises d’e-commerce ou des médias emploient ces plateformes couplées à de grosses extensions réalisées de mains d’homme.
Ainsi, la plupart des stratégies de développement mélangent les deux approches. Bien que diverses plateformes soient commercialisées spécifiquement pour le low-code, elles ne répondent probablement pas à elles seules à tous les besoins de développement d’une organisation.
Avantages et inconvénients du développement traditionnel
Le développement traditionnel présente plusieurs avantages :
- Contrôle. Les développeurs ont le plus grand degré de contrôle sur la façon dont leur code est écrit et dont les applications sont structurées.
- Flexibilité. Le développement traditionnel peut être réalisé en utilisant pratiquement n’importe quel langage de programmation et n’importe quelle plateforme de développement.
- Déploiement sur site ou dans le cloud. Les applications développées selon une approche traditionnelle peuvent être déployées vers toutes les destinations que les développeurs choisissent de prendre en charge.
Le développement traditionnel présente deux inconvénients majeurs :
- Temps. Concevoir de pied en cape un logiciel demeure une activité chronophage. Il est plus long d’adapter manuellement le code pour qu’il supporte plusieurs plateformes, et de construire des sockets et d’autres interfaces entre les applications et les services.
- Compétences. Le développement traditionnel peut exiger une expertise plus spécialisée dans un certain langage de programmation ou dans des frameworks spécifiques. Néanmoins, le low-code requiert également des savoir-faire particuliers.
Avantages et inconvénients du low-code
Les principaux avantages du low-code sont les suivants :
- Rapidité. Les programmeurs peuvent créer des applications plus rapidement en utilisant cette approche, car elle élimine certaines tâches manuelles de programmation. Mendix, un éditeur d’une plateforme low-code, affirme que près des trois quarts des développeurs qui utilisent des outils low-code réalisent des projets en moins de trois mois, alors qu’une approche traditionnelle peut prendre deux fois plus de temps, voire plus.
- Réutilisation. Les modules low-code sont faciles à réutiliser et à partager entre les applications, bien que cela puisse être limité à la même plateforme low-code (des pratiques similaires prennent corps au sein des groupes avec le stockage de templates dans des dépôts GIT).
- Coût. Le low-code étant plus rapide, il peut réduire les coûts globaux pour l’entreprise. Attention, comme le signale le cabinet de conseil OCTO Technology, les plateformes associées ne sont pas pour autant moins cher : elles permettent de développer davantage avec moins de développeurs.
Toutefois, cette approche présente également plusieurs inconvénients potentiels :
- Qualité. Les applications low-code peuvent ne pas être aussi performantes, ou fiables, que celles créées selon une approche traditionnelle. Leur code généré automatiquement est généralement conçu pour prendre en charge une grande variété de plateformes et de cas d’usage plutôt que l’environnement de déploiement ou l’architecture d’application spécifique d’une équipe.
- Personnalisation. Les plateformes low-code offrent moins de possibilités de personnaliser une application globale ou de contrôler son fonctionnement.
- Options de déploiement. Certaines plateformes low-code permettent aux développeurs de déployer des applications uniquement sur certaines plateformes, par exemple sur le cloud d’un fournisseur spécifique.
Les cas d’usage du développement low-code
La meilleure façon de tirer parti du low-code, c’est, encore une fois de l’incorporer au sein de projets de développement plus globaux.
Voici quelques cas d’usage courant où l’approche low-code est la plus intéressante :
- Intégrations. Les outils low-code peuvent faciliter l’intégration d’une application développée manuellement.
- Sites Web simples. Il est difficile de justifier le développement entièrement à la main du code HTML, PHP et CSS pour mettre sur pied un simple site Web affichant un contenu statique.
- Analytique et tableaux de bord. Une approche low-code est souvent idéale pour créer des tableaux de bord ou des outils de reporting destinés à l’analytique. En fait, de nombreuses solutions ERP et de gestion des processus métier (BPM) proposent des outils low-code intégrés.
- Processus d’entreprise. De même, les applications qui prennent en charge des processus commerciaux simples, tels que la collecte de données de clients ou l’approbation des contrats des fournisseurs, sont de bons candidats pour le développement low-code. Les intégrations dans les plateformes BPM rendent ces applications faciles à réaliser, même pour les personnes dont ce n’est pas le métier.
Quand ne pas utiliser le low-code
Il est tout aussi important de savoir dans quelle condition une approche de développement traditionnelle est davantage conseillée.
- Sécurité. Le low-code n’est pas forcément source de vulnérabilités, mais il peut être difficile de s’assurer que les applications low-code sont développées selon des normes de sécurité strictes. Elles peuvent également être plus difficiles à auditer, car le code source est enfoui sous des abstractions.
- Performances. Si vous souhaitez obtenir des performances optimales, vous devrez peut-être optimiser chaque ligne de code, et pour cela, vous aurez besoin d’une approche de développement traditionnelle.
- Maintenabilité. Si les outils low-code utilisés pour concevoir une application sont abandonnés par leur éditeur, le maintien à long terme représente un véritable défi.
- Dépendance. La dépendance à l’égard des outils low-code peut exposer les développeurs à un risque accru d’enfermement propriétaire auprès d’un éditeur et son écosystème. Ils peuvent être en mesure de déployer uniquement dans les environnements pris en charge par la plateforme, ou rencontrer des difficultés pour migrer leur code source vers des solutions plus ouvertes ou les outils d’autres fournisseurs.