Low code, high skills ?
Le low-code démocratise le développement en permettant aux métiers de créer rapidement des applications. Cependant, cette approche doit être combinée à la mise en place d'une gouvernance adhoc.
Le low-code promet de transformer tout un chacun en développeur et est de plus en plus présent dans les entreprises. Récemment, lors de la mise en œuvre d'un projet de ce type (Power Automate), j’ai été confronté à de nombreuses questions autour de la gouvernance, de la sécurité et de la responsabilité des parties prenantes. Elles sont représentatives des défis posés par ce type d’outil et de la nécessité d’en encadrer l’usage.
Le low-code n'est pas une invention récente. Il y a quelques années, les ateliers de génie logiciel (AGL) avaient pour vocation, entre autres, de générer du code pour masquer la complexité des piles technologiques sous-jacentes. Aujourd'hui, ces usines à lignes de code sont désignées sous le terme de low-code, et les développeurs situés côté métiers, de citizen developers. Magie du marketing, quand tu nous tiens !
La promesse est de démocratiser le développement logiciel, permettant à des utilisateurs non techniques de créer des applications sans avoir à maîtriser des langages de programmation complexes. Cette approche offre plusieurs avantages :
- Accessibilité, agilité, réduction des coûts : Les outils sont conçus pour être intuitifs, avec des interfaces drag-and-drop et des composants préconstruits. Cela permet aux utilisateurs métiers de créer des solutions rapidement, sans dépendre des équipes de développement, tout en réduisant le temps et les coûts nécessaires pour passer de l'idée à la réalisation.
Cependant, ces promesses s'accompagnent de réalités qui doivent être prises en compte :
- Complexité sous-jacente et limites fonctionnelles : Bien que les outils low-code masquent la complexité technique, celle-ci existe toujours. Les utilisateurs doivent comprendre les implications de leurs choix, notamment en matière de sécurité et de performance. De surcroît, ces plateformes n’offrent pas toujours la flexibilité nécessaire pour des applications très spécifiques ou complexes.
- Dépendance à la plateforme : Utiliser une plateforme low-code peut entraîner une dépendance vis-à-vis du fournisseur, limitant la capacité de l'entreprise à migrer vers d'autres solutions ou à personnaliser davantage ses applications.
Si l'on décide d’ouvrir ce type de plateforme aux métiers, il faudra accompagner cette démarche avec une gouvernance adaptée, notamment autour des sujets suivants :
- Sécurité : Les citizen developers ne sont pas toujours conscients des meilleures pratiques en matière de sécurité. Par exemple, l'utilisation abusive de leurs propres identifiants pour accéder aux données, qu’ils peuvent embarquer dans les packages applicatifs, peut créer des vulnérabilités.
- Coûts cachés : Les modèles de facturation à l'usage des plateformes PaaS peuvent générer des coûts imprévus. Les utilisateurs ignorent souvent les inducteurs de coûts et les limites de leur abonnement.
- Qualité du code : Même si le low-code simplifie le développement, le code généré peut contenir des bugs. Les utilisateurs doivent avoir accès à des ressources de support pour résoudre les problèmes rapidement. Il est également crucial de mettre en place des processus de revue de code et de tests.
- Gestion et maintenance : La gestion du run, des versions, le stockage du code, l'administration et la supervision des applications low-code nécessitent des compétences spécifiques que les équipes métiers ne possèdent généralement pas.
Les technologies low-code apportent une agilité précieuse pour répondre aux besoins métiers spécifiques à moindre coût. Cependant, leur utilisation doit être encadrée par une gouvernance adéquate pour s'intégrer dans les bonnes pratiques de développement, de sécurité et de méthodologie projet de l’organisation.