Modelgedreven softwareontwikkeling is aan een grote opmars bezig. Zo groeide de omzet van low-code vendoren in 2017 naar 3,8 miljard dollar, een groei van maar liefst 46 procent ten opzichte van 2016. Het low-code landschap is helaas sterk versnipperd door de veelvoud aan ontwikkelplatformen. Eén aanpak blinkt echter uit als een toekomstbestendige manier voor softwareontwikkeling: Architected model-driven development (amd).
De lijst met low-code leveranciers is lang en groeit met de dag. Niet alleen bestormen startups de markt, maar ook gevestigde softwareleveranciers proberen marktaandeel te veroveren met hun eigen low-code ontwikkeltools. In het bedrijfsleven is duidelijk behoefte aan oplossingen om software te modelleren in plaats van te programmeren. Veel van deze ontwikkelplatformen hebben echter het nadeel dat ze zich alleen lenen voor bepaalde toepassingen met beperkte functionaliteit. Denk bijvoorbeeld aan maatwerkapplicaties of front-end web-apps. Mede hierdoor worden ze door onderzoeksbureaus als Gartner en Forrester in verschillende categorieën opgedeeld, waaronder rapid application development (rad), low-code en no-code app development en enterprise high-productivity application platform as a service (hpaPaaS).
Geen van al deze modelgedreven ontwikkelmethoden gaat echter uit van een samengestelde architectuur van verschillende softwaremodellen. Ofwel: het is onmogelijk om verschillende modellen op een eenvoudige manier te hergebruiken en te integreren. Met architected model-driven development (amd) kan dat wel. Daardoor is deze methodiek volgens mij de toekomst van model-driven development.
Modellen integreren
De essentie van modelgedreven softwareontwikkeling is dat bedrijfsprocessen en functionaliteit worden gedefinieerd in modellen. Die worden vervolgens gebruikt om code te genereren, of ze worden direct ingezet als runtime modellen. Het probleem met deze aanpak is dat je bij vrijwel elk platform vanaf nul begint met ontwikkelen. Dat gaat weliswaar sneller dan met traditionele ontwikkeltools, maar je begint steeds vanaf het begin met het (na)bouwen van je applicaties. Van hapklare brokken functionaliteit als een crm of logistieke module is geen sprake.
Het liefst zou je een selectie willen maken uit bestaande modellen waarin specifieke softwarefunctionaliteit gedefinieerd is, om die verschillende modellen vervolgens snel en naadloos met elkaar te integreren. Dit proces is voor de meeste low-code platformen niet mogelijk, en daarom is architected model-driven development nog zo’n onontgonnen gebied. Als je echter goed nadenkt over hoe modelgedreven ontwikkeling zou moeten werken, dan is amd eigenlijk de ideale ontwikkelmethodiek voor zakelijke software.
Functionele elementen
De toekomst van model-driven development ligt volgens mij echt in het kunnen hergebruiken en integreren van de modellen. Architected model-driven development is de meest geavanceerde low-code ontwikkelmethodiek, die de unieke ondersteuning biedt voor het hergebruik en integreren van functionele modellen. Zonder die mogelijkheid kost de initiële implementatie van een low-code ontwikkelplatform altijd meer tijd dan noodzakelijk. Daarna is het weliswaar sneller dan traditionele softwareontwikkeling, maar je begint altijd met een leeg canvas.
Het is veel efficiënter als je bij modelgedreven softwareontwikkeling zou kunnen beginnen met een basis van gangbare en in de praktijk bewezen stukken functionaliteit, gedefinieerd in modellen, die je als het ware zo van de plank kunt pakken. Die delen van de software hoef je vervolgens niet meer zelf te ontwikkelen, waardoor de focus volledig kan liggen op het ontwikkelen van innovatieve, onderscheidende functionaliteit.
Monolithische software
Zoals gezegd is architected model-driven development nog een jong vakgebied, maar de ontwikkelingen gaan snel. De markt vraagt overduidelijk om modelgedreven ontwikkeltools, waarmee bedrijven op termijn hun volledige applicatielandschap kunnen afdekken. Ze willen immers hun legacy vervangen, sneller innoveren en procesmatige verbeteringen doorvoeren.
Als amd doorbreekt, dan zal dat vooral te danken zijn aan de hoeveelheid kant-en-klare functionaliteit die de ontwikkelplatformen als modules beschikbaar stellen. Dan kun je namelijk in hoog tempo je eigen bedrijfssoftware samenstellen en een modelgedreven fundament leggen voor het ontwikkelen en groeien van de organisatie.
Ik zie dit als de bedrijfssoftware van de toekomst: modelgedreven software, precies passend bij de organisatie, zonder maatwerk en veel lichter en flexibeler dan monolithische traditionele softwarepakketten die met allerlei koppelingen aan verbonden moeten worden.
in hoog tempo, groei, toekomstbestendige, Gartner, Forrester, rad, low-code, no-code app development en enterprise high-productivity application platform as a service (hpaPaaS).
Architected model-driven development. snel en naadloos met elkaar te integreren. legacy vervangen, sneller innoveren en procesmatige verbeteringen doorvoeren. volledige applicatielandschap kunnen afdekken…
Papa, wat zal ik later worden als ik groot ben ?
Jongen, wordt iets met innovation want de mensen zullen altijd ge-ouwe-hoer nodig hebben.