Dilemma: low-code oplossing of traditionele software?
Low-code oplossingen zijn softwaretoepassingen die draaien op een low-code platform of in een low-code omgeving. Ze worden gebouwd met behulp van een visuele interface, vaak via een drag-and-drop aanpak, zonder dat je een echte programmeertaal hoeft te beheersen. Deze platformen bieden een scala aan vooraf gebouwde functionaliteit en grafische elementen, waardoor je alleen de nodige elementen hoeft te combineren en de gewenste acties te definiëren om de applicatie te bouwen. Indien nodig laten deze platformen je toe om aangepaste code toe te voegen om situaties af te handelen die niet gedekt worden door de vooraf gebouwde elementen, vandaar de term 'low-code'.
De meeste low-code platformen hebben twee kenmerken gemeen. Ten eerste bieden ze de mogelijkheid om plug-ins van derden te gebruiken. Deze plug-ins bieden sjablonen of tools voor populaire use cases waardoor de ontwikkeling van een applicatie nog sneller verloopt. Ten tweede bieden ze integratiemogelijkheden. Met zogenaamde 'pre-build connectors' (API's) kun je je applicatie koppelen aan een database, een populaire applicatie of een tool voor het visualiseren van bedrijfsgegevens.
Low-code is niet zo nieuw. Wordpress wordt bijvoorbeeld al jaren gebruikt om statische websites te maken zonder dat je een ontwikkelaar hoeft te zijn. Zoals hierboven beschreven blijkt dat low-code een snelle ontwikkeling van geïntegreerde applicaties mogelijk maakt zonder dat je een programmeertaal hoeft te kennen. Waarom gebruikt dan niet iedereen low-code oplossingen hoor ik je denken? Het antwoord is dat low-code, net als elke andere technologie, zowel voor- als nadelen heeft. Er zijn situaties waarin low-code een zeer goede optie is, maar er zijn evengoed situaties waarin low-code een mindere keuze kan zijn. We zetten enkele zaken op een rijtje in deze blog.
De risico’s voor complexe projecten
De voordelen van low-code worden sterk gepromoot door de industrie zelf. Toepassingen kunnen maken zonder kennis van een programmeertaal opent tal van mogelijkheden. Bedrijfsafdelingen kunnen bepaalde taken of processen automatiseren zonder afhankelijk te zijn van de IT-afdeling of externe leveranciers. Denk aan een 'power user' in het team die kleine repetitieve taken automatiseert, zoals het verzamelen van input over de geplande vakantiedagen van het team en het maken van een overzicht. Voor simpele taken en flows biedt het low-code concept een eenvoudige en snelle oplossing.
Echter, van zodra de taken of flows wat complexer worden, heeft de interne persoon vaak te weinig ervaring met het platform om de applicatie uit te bouwen. Daarom besteden veel bedrijven uiteindelijk de ontwikkeling uit aan een bureau of consultant met meer ervaring in low-code platformen. Voor complexe taken en flows zal het bureau de beperkingen van het platform (of plug-ins) moeten omzeilen of ‘misbruiken’ wat later problemen kan veroorzaken. Deze beginnen vaak op te duiken wanneer het platform of de plug-in automatisch wordt bijgewerkt naar een nieuwe versie en de applicatie niet meer naar behoren functioneert.
De performantie van het systeem
Een andere mogelijke issue is de prestatie van het systeem. Zolang de taken eenvoudig zijn en het aantal gebruikers laag, zoals eerder beschreven in het voorbeeld, is er weinig risico. Dit verandert echter wanneer je complexe processen probeert te automatiseren, grote gegevenssets probeert te verwerken of wanneer de applicatie veel gelijktijdige gebruikers zal hebben. Bij het ontwikkelen van applicaties zullen software engineers de code optimaliseren voor prestaties. De toepassing die is gebouwd in een low-code platform is wellicht niet geoptimaliseerd voor de specifieke vereisten die je wilt bereiken.
Het kostenplaatje
Low-code oplossingen worden vaak gepromoot als kostenefficiënter dan klassieke codeerprojecten omdat applicaties snel kunnen worden gebouwd, zelfs door je eigen team. Ook hier hangt de geldigheid van dergelijke beweringen sterk af van het type project. Verschillende factoren beïnvloeden de uiteindelijke kosten. Als je bijvoorbeeld externe consultants moet gebruiken om je applicatie te bouwen, kan het kostenvoordeel snel verdwijnen. Low-code oplossingen maken inderdaad een snelle ontwikkeling van eenvoudige applicaties mogelijk. Hoe complexer de applicatie echter wordt, hoe meer tijd de ontwikkelaar zal besteden aan het vinden van een manier om met die complexiteit om te gaan binnen de beperkingen van het low-code platform. Dit leidt tot het verlies van het kostenvoordeel en resulteert in een applicatie die minder gebruiksvriendelijk en efficiënt is.
De meeste low-code platformen vereisen dat alle gebruikers van de applicatie - niet enkel de ontwikkelaar - een maandelijkse licentievergoeding betalen. Dit betekent dat low-code in de praktijk alleen kostenefficiënt is als het voor veel automatiseringsprojecten binnen de organisatie wordt gebruikt. Deze strategische beslissing brengt twee extra risico's met zich mee. Low-code zal in de toekomst wellicht niet de beste technologie zijn voor al uw automatiseringsprojecten (zie hierboven de risico's voor complexe projecten). Het tweede risico betreft vendor lock-in: low-code oplossingen ontwikkeld op een specifiek platform zijn niet overdraagbaar naar een ander platform.
Safety first
Last but not least brengen low-code oplossingen ook beveiligingsrisico’s met zich mee. Wanneer we het over beveiliging hebben, zijn er drie aspecten om rekening mee te houden. Ten eerste is er de beveiliging van het platform zelf. Dat deel vormt geen groot probleem. Verder staan de meeste platformen derden toe om plug-ins te verkopen. Het is niet altijd duidelijk in hoeverre je erop kunt vertrouwen dat deze plug-ins veilig zijn en blijven.
Het laatste punt is het belangrijkste, namelijk de verantwoordelijkheid van de applicatieontwikkelaar. Omdat low-code platformen het mogelijk maken om applicaties te maken zonder een software-ontwikkeltaal te beheersen, is de kans groot dat applicaties ontwikkeld worden door mensen die minder goed getraind zijn in het beveiligingsaspect. Voor kleine eenvoudige projecten vormt dit geen groot risico, maar wat als zo'n ontwikkelaar per ongeluk belangrijke gegevens blootstelt aan mensen die geen toegang zouden mogen hebben?
Low-code oplossingen: hype of niet?
Uit bovenstaande blijkt duidelijk dat er situaties zijn waarin low-code een goed alternatief is voor klassieke softwareontwikkeling. Denk aan organisaties die voldoende interne capaciteit hebben om de ontwikkeling intern uit te voeren, en die veel kleine onafhankelijke taken of processen hebben om te automatiseren. Echter, wanneer de te automatiseren processen complexer worden of veel gegevens bevatten, verdient traditionele softwareontwikkeling de voorkeur.