Een groot deel van het bedrijfsleven draait op applicaties, van task managers en communicatieplatformen tot grafische dashboards waarin automatisch de verkoopcijfers worden ingeladen. Maar vaak komt er een moment waarop een proces niet, of niet juist, kan worden aangepakt met bestaande commerciële tools. De ontwikkelplatformen rond low-code zijn gemaakt om organisaties de mogelijkheid te geven zelf hun gepersonaliseerde applicaties te bouwen, zonder daarvoor een team ontwikkelaars in huis te halen of een outsourcingsproject te starten.
...

Een groot deel van het bedrijfsleven draait op applicaties, van task managers en communicatieplatformen tot grafische dashboards waarin automatisch de verkoopcijfers worden ingeladen. Maar vaak komt er een moment waarop een proces niet, of niet juist, kan worden aangepakt met bestaande commerciële tools. De ontwikkelplatformen rond low-code zijn gemaakt om organisaties de mogelijkheid te geven zelf hun gepersonaliseerde applicaties te bouwen, zonder daarvoor een team ontwikkelaars in huis te halen of een outsourcingsproject te starten. Het van oorsprong Nederlandse Mendix is een marktleider in het segment. "Toen we begonnen, wist niemand wat low-code was, " vertelt Derek Roos, CEO en co-founder van Mendix op het podium van Mendix World, de gebruikersconferentie van het bedrijf. "Ondertussen volgt Gartner zo'n tweehonderd low-code vendors, en tegen 2022 zal vijftig procent van de apps een vorm van low-code gebruiken." Low-code is dan ook een opkomende markt, zo horen we, en dat is een van de redenen waarom Siemens het bedrijf vorig jaar aankocht. Een en ander heeft te maken met het veranderende landschap, waarin steeds meer applicaties nodig zijn, die op kortere tijd moeten worden gebouwd. "De grootste uitdaging vandaag is niet de technologie, maar de mensen", zegt Roos. "Er is een tekort aan IT'ers, en als advocatenkantoor of bank kan je daarvoor niet concurreren met AWS of Salesforce. We zien ook een vijfvoudige groei in vraag naar apps. Die paar ontwikkelaars sneller laten werken, daar ga je de kloof niet mee dichten." Een extra uitdaging rond het snel uitrollen van apps is bovendien stabiliteit. "You can't just move fast and break things", zegt Roos, met een kwinkslag naar het oude motto van Facebook. "De verwachtingen zijn veranderd. Als je een consumentenbank bent, dan kan je je niet veroorloven dat de lancering van je mobile banking app mis gaat. Als elektriciteitsleverancier die elektriciteit moet leveren aan miljoenen huishoudens, moet je inderdaad snel bewegen, maar wat je levert moet ook stabiel en secuur zijn." Het platform dat Mendix naar voren schuift is er eentje waarmee zowel de ervaren ontwikkelaars als de rest van het bedrijf aan de slag moeten kunnen. Het typevoorbeeld dat Mendix hiervoor geeft is de 'citizen developer', de gewone zakelijke gebruiker die ergens een mogelijkheid ziet om iets te verbeteren, en dan zelf een app in elkaar knutselt. Aan de andere kant moet low-code ook het leven van het eigenlijke IT-departement vergemakkelijken, omdat de ontwikkelaars hier in theorie vrij snel een app kunnen bouwen uit bestaande bouwstenen, zonder daarvoor telkens een hele source code bij mekaar te schrijven. Mendix probeert dus heel specifiek zowel de beginnelingen als de veteranen te plezieren, maar het lijkt ondertussen door te hebben dat zoiets moeilijk is binnen één omgeving. De oplossing is een pakketje van twee programma's, die dit jaar uitkomen als vervolg op de bestaande (enkelvoudige) programmatuur. Het eerste daarvan is Mendix Studio, een 'no-code'-omgeving voor de zakelijke of alvast niet-coderende mensen in het bedrijf. Mendix Studio is een visueel programma, een WYSIWYG-tool die qua interface wat aan Powerpoint doet denken. Daarmee kunnen die 'citizen developers' in de eerste plaats logica-modellen bouwen uit bestaande bouwblokjes, die door het platform van Mendix gedraaid worden als echte applicaties. Mendix Studio Pro is dan het platform voor de ontwikkelaars en IT-departementen, vaak van datzelfde bedrijf. Deze ziet er meer uit als programmeersoftware en laat onder meer toe om geavanceerder applicaties te ontwikkelen en Java code bij te schrijven. De twee programma's kunnen aan elkaar gekoppeld worden, zodat ideeën bijvoorbeeld op een simpele manier kunnen worden uitgewerkt, en daarna naar IT kunnen gaan om gepolijst te worden, of van de juiste toegangsrechten voorzien. Het IT-departement blijft daar wel de eindverantwoordelijke, zo benadrukt Daniel Dam, senior product manager bij Mendix. "Als je citizen developers enablet, dan moet je ook voor governance zorgen", vertelt hij. "Security is geen optie in het Mendix platform, het is er altijd. En we zorgen dat IT altijd de controle heeft, omdat zij uiteindelijk moeten zorgen dat alles compatibel en compliant is." Mendix levert in principe een blokkendoos aan modules. Daar zitten modules bij voor infrastructuuronderdelen, connectoren naar allerlei achterliggende API's of webpagina-onderdelen. Bedrijven kunnen die modules uit een 'app store' halen, of zelf extensies, bijvoorbeeld naar hun legacydatabanken, schrijven. Opvallend bij dit alles is dat Mendix geen code genereert, toch niet in de klassieke zin van het woord. "Normaal gezien denk je, we hebben visuele modellen, en dan genereren we code, maar zo werkt het niet. Wij hebben een andere aanpak", zegt Johan den Haan, CTO bij Mendix aan Data News. "We hebben een runtime engine gemaakt waar je dat model in stopt. Die gaat het model vervolgens interpreteren en de applicatie draaien. Je kan het vergelijken met de oude Atari consoles. Je stopt daar een cartridge in, en het apparaat gaat dat spel afspelen. De Mendix Runtime is in die zin de Atari computer, en de cartridge is het model dat je erin stopt. Samen vormt dat een werkende applicatie." Het idee daarachter is, zo zegt den Haan, dat het model altijd beschikbaar blijft. "Als je gaat debuggen, bijvoorbeeld omdat je applicatie niet doet wat je wil dat ie doet, dan kan je gewoon je modelleeromgeving verbinden met de runtime-omgeving en zo door het hele model lopen om te kijken wat er live gebeurt. Als je code genereert, dan heb je die bak code ergens draaien. Je zou dan fouten in de code moeten zoeken, maar je snapt die code helemaal niet want je hebt ze niet geschreven." Krijgt u dan geen vendor lock-in, willen we weten. "Uiteraard heb je onze runtime nodig om de applicatie te draaien, maar als je er vanaf wil, dan heb je twee keuzes", zegt den Haan. "Je kan ten eerste de code gaan genereren en downloaden, en ze van dan af zelf gaan onderhouden. Dat is niet ideaal, want je bent in je afdeling met low-code bezig, daar hoeven die geen programmeurs voor te zijn. Als je dan overstapt naar code, is er niemand die die snapt. De mensen die ze gebouwd hebben, hebben nooit code geschreven. Da's niet de oplossing." De tweede methode blijft bij het modelbouwen, gaat den Haan verder: "Je moet denken: waarom zou iemand van Mendix af willen? Misschien wanneer er een nieuw platform komt dat beter is. We gaan hard werken om dat te vermijden, maar toch. Dan is dat nieuwe platform waarschijnlijk ook op visuele modellen gebaseerd, want de hele wereld gaat daar nu naartoe. Wat wij gedaan hebben, is een API gebouwd op ons platform waarmee je alle modellen kan uitlezen. Het is een open API, je kan daarin alle modellen nakijken en dan omzetten naar bijvoorbeeld een ander platform." Het open platform moet het voor klanten ook flexibeler maken, tot op zekere hoogte. "Laten we duidelijk zijn, je kan geen 3D first person shooter bouwen in Mendix", zegt den Haan. "Het is gericht op businessapplicaties, maar het is belangrijk dat we het open houden. We hebben al allerlei modeltools gezien die niet zijn geslaagd omdat ze gesloten waren. Dan ben je heel hard aan het bouwen en die applicatie wordt steeds mooier, en dan wil je nog iets speciaals maar dat kan je niet uitdrukken in die taal. En dan heb je pech." Een van de opties die zijn platform daarom voorziet bestaat uit 'code extensions'. "Zo kan je visuele modellen hebben, maar je kan het altijd uitbreiden met code", aldus den Haan. "Aan de back-end kan je Java code schrijven, aan de front-end kan je Javascript gebruiken. Wat dat betreft is er niets dat je niet kan uitdrukken in Mendix, omdat je altijd die code hebt. Daar heb je dan een full stack developer die daarmee aan de slag gaat, en dat kan alles zijn, je kan daar libraries inladen, of widgets aan de front-end kant. Stel dat je ergens een legacydatabank hebt, en je wil die integreren, dan laat je de developer dat één keer coderen en kan je die databank vervolgens met Mendix in andere applicaties inschuiven. Je zet dat in de private app store zodat iedereen in het bedrijf dat kan gebruiken." Dat betekent ook dat een klant via Java een link zou kunnen leggen met zijn mainframe, zegt den Haan, iets wat bijvoorbeeld Rabobank deed toen het een online app maakte voor zijn spaarders in België en Duitsland. De front-end werd gebouwd in Mendix, maar de gegevens worden via een API uitgelezen uit de secure back-end van Rabobank zelf. Vraag is dan wel of bedrijven zo niet gewoon een vernislaag over hun bestaande legacy-infrastructuur aan het leggen zijn. "Ja, " geeft den Haan toe, "maar da's meestal de beste manier om te beginnen. Zo'n mainframe, die al decennia draait, die kan je niet zomaar in één keer vervangen. Wat klanten meestal willen is mobile. Ze willen naar het web, dus dan bouw je daar een laag bovenop. Een proces dat je wil ontsluiten bouw je in Mendix, en stap voor stap ga je dat dikker maken, ga je functionaliteiten van het mainframe overbrengen. Dat is de beste aanpak om dat te doen, dat hebben we al bij heel wat klanten succesvol uitgevoerd."