In de eerste decennia van softwareontwikkeling werden alle programma’s hoofdzakelijk geschreven in traditionele programmeertalen, zoals Cobol, Visual Basic, C (++) en Java. Het grootste nadeel van een traditionele programmeertaal is dat alleen technische experts er wijs uit kunnen worden en dat zo’n taal ver afstaat van de taal van het bedrijfsleven. Daarom zijn er in de afgelopen decennia diverse platforms op basis van modelgestuurde ontwikkeling (Model-Driven Development; MDD) opgekomen. In deze blog wil ik wat gedachten delen over modelgestuurde applicatieontwikkeling.

Het belangrijkste kenmerk van een MDD-platform is dat een applicatie niet wordt geprogrammeerd, maar wordt gemodelleerd door middel van visuele artefacten die voor het bedrijf begrijpelijk zijn. De modellen worden getransformeerd in een werkapplicatie door code te genereren of het model te interpreteren. In een recent rapport heeft Forrester (zie verwijzing 1) aangetoond dat de markt voor MDD-platforms (ook wel codearme ontwikkelplatforms genoemd) groeiende is. Softwareontwikkelaars en analisten zijn van mening dat deze producten kunnen helpen bij een snelle oplevering van zelfs grote, complexe en betrouwbare klantoplossingen. Van MDD-platforms wordt gezegd dat ze minder programmeervaardigheden vereisen om de kloof tussen IT en het bedrijfsleven te overbruggen. Een aantal MDD-leveranciers heeft een uitstekende visie op de ontwikkeling van applicaties. Maar de vraag is nu: maken MDD-platforms werkelijk waar wat ze beloven?

In de afgelopen jaren heb ik vele MDD-platforms zien langskomen en gebruikt, zoals Pega, Open Text Process Suite (voorheen Cordys) en Mendix. Daarom wil ik een aantal ervaringen en gedachten met u delen (zonder de pretentie uitputtend te zijn).

1. Is het echt waar dat MDD-platforms minder technische kennis vergen?
Deels. MDD-platforms bieden visuele ondersteuning bij het ontwerpen van bijv. bedrijfsprocessen, gebruikersinterfaces en beslissingstabellen die voor bedrijfsanalisten eenvoudig te begrijpen zijn. Aan de andere kant is een goede training en een grondige technische kennis nog steeds onontbeerlijk om de modellen om te zetten in werkapplicaties om tegemoet te komen aan de behoeften van de klant. Met name wat betreft bedrijfsspecifieke logica moet er nog steeds daadwerkelijk worden geprogrammeerd, omdat dit moet gebeuren in een leverancierspecifiek(e) taal/vocabulaire, of in Java of javascript. Ook zijn wat betreft een toereikende gebruikerservaring (UX) in de bedrijfsstijl van de klant nog steeds deskundigen op het gebied van gebruikersinterfaces onmisbaar.

2. Wat zijn de belangrijkste sterke punten van een MDD-platform?
– Het voornaamste voordeel is gelegen in de beginfase van een nieuw project. De visuele mogelijkheden zijn bijzonder handig om duidelijke vereisten inzichtelijk te krijgen, zoals de bedrijfsprocessen, logica van high level-applicaties en mock-ups van gebruikersinterfaces. De modellen zorgen ervoor dat het echte ontwikkelwerk snel van start kan gaan.
– Een ander voordeel is dat de ontwikkelaar zich niet bezig hoeft te houden met de vraag hoe gegevens moeten worden geschreven naar of opgehaald uit een database. Het platform zorgt zelf voor het transactie- en threadbeheer.

3. Hebben MDD-platforms nog andere voordelen voor applicatieontwikkeling?
Ja. De meeste platforms omvatten gebruiksklare connectoren voor bijv. databases, SOAP-/REST-services, bestands- en berichtwachtrijen. Ook omvatten ze tools voor versiebeheer, implementatie, loggen en tracen, en applicatiemonitoring. Sommige platforms (bijv. Pega) bieden tevens tools voor verslaglegging, documentgeneratie en het volgen (‘tracken’) van vereisten en specificaties.

4. Kleven er ook nadelen aan MDD-platforms?
Jazeker. Het kan voorkomen dat applicatiefouten blijken te worden veroorzaakt door bugs in het platform. In zo’n geval kan de ontwikkelaar zelf niet zoveel doen om het probleem op te lossen Het wachten is op een nieuwe versie of een hotfix van het platform waarmee het probleem wordt verholpen, en daar gaat vaak enige tijd overheen.

Ten tweede omdat de MDD-platforms uitvoerbare code genereren waarop de ontwikkelaar wat betreft prestatie en geheugenbeheer weinig invloed kan uitoefenen (tenzij de ontwikkelaar grondige kennis heeft van de interne aspecten van de platforms, wat eigenlijk indruist tegen het principe van een MDD-platform).

5. Wat is het belangrijkste verbeterpunt voor MDD-platforms?
Ik meen dat de belangrijkste uitdaging gelegen is in het modelleren van bedrijfslogica. Het bedrijf van elke klant is uniek en vergt een eigen specifieke logica, die uitermate complex kan zijn met een hoge granulariteit. Momenteel kan het schrijven van een klantspecifieke bedrijfslogica in MDD-platforms nog steeds worden vergeleken met het schrijven in een traditionele programmeertaal. Ik denk dat de grootste uitdaging erin bestaat om zo’n notatiewijze voor het (visueel) uitdrukken van bedrijfslogica te vinden dat dit voor mensen in het bedrijfsleven ook te begrijpen is. De OMG Group heeft inmiddels al visuele notaties gedefinieerd voor bijv. bedrijfsprocessen (BMPN) en gegevensmodellen (UML). Het zou geweldig zijn als er verkenningen zouden plaatsvinden naar mogelijkheden voor programmeertaalonafhankelijke notatiewijze voor bedrijfslogica. Als zo’n notatiewijze wordt gesteund door meerdere MDD-leveranciers, zal dat voor de IT-wereld een belangrijke stap vooruit zijn op het gebied van modelgestuurde applicatieontwikkeling. Daardoor zou een nieuwe wereld worden ontsloten waarin de mogelijkheid bestaat om snel en zonder gebruik van al te veel codes applicaties te ontwikkelen!

Business_process_example_in_BPMN_notation.png

Figuur 1. Voorbeeld van bedrijfsproces in BPMN-notatie. Het zou geweldig zijn als er een visuele, programeertaalonafhankelijke notatie kan worden ontworpen om bedrijfslogica met hoge granulariteit in uit te drukken.

6. Kunnen applicaties sneller worden ontwikkeld met een MDD-platform?
Zeker! Als het ontwikkelingsteam tenminste ervaring heeft met het platform. Zoals eerder gesteld kan een MDD-platform zorgen voor een snelle start en biedt het ingebouwde connectoren en ontwikkeltools.

Kortom: ik zou zeggen dat MDD-platforms veelbelovend zijn. Op het gebied van applicatiebeheer wordt inmiddels al gebruikgemaakt van MDD. Maar er is nog een lange weg te gaan wat betreft het visueel modelleren van de bedrijfslogica op maat.

 

Referenties:
1) The Forrester Wave™: Low-Code Development Platforms, Q2 2016?