Net als een huis dat bestaat uit individuele bakstenen, bestaan programma’s uit stukjes code. Code wordt meestal gebundeld in modules. Programmeurs zijn het dan ook gewend om modulair te werken. Maar al die ‘bakstenen’ moeten wel bij elkaar gehouden worden. Zonder cement zou een huis immers onbewoonbaar zijn. Programmeurs spreken over het compileren van code. Wanneer een programma eenmaal gecompileerd is, is het cement hard. Gelukkig is gecompileerde software vaak flexibeler dan gehard cement. Denk bijvoorbeeld aan muziek. Wanneer je een opname opslaat in een digitaal bestand, kan het eindeloos gekopieerd worden. Probeer dat maar eens met een huis!
De limieten van code
Digitaal kopiëren is makkelijk. Meestal willen we echter geen exacte kopie, maar bepaalde elementen in een applicatie veranderen. Dat gaat normaliter als volgt: de gebruiker vermeldt de nieuwe vereisten bij de programmeur als concrete issues. Vervolgens gaat de programmeur aan de slag om het programma aan te passen, de code wederom te compileren en te delen met de gebruiker.
De programmeur kan de gebruiker meer invloed geven door opties of configuratiebestanden in te bouwen. Dit maakt de software flexibeler. Toch is deze aanpak nog steeds niet flexibel genoeg om adequaat te kunnen reageren op de snel veranderende omstandigheden in de markt. Bedrijven beschikken dus niet over dezelfde modulariteit als software programmeurs. Er blijft een gat tussen IT en de business.
Low-code als oplossing?
Low-code is een van de manieren om deze gapende afstand toch te overbruggen. In plaats van een programmeertaal gebruikt low-code visuele bouwblokken en modelleringstools om bepaalde functionaliteiten te creëren. Nadeel is dat het niet gemakkelijk is om een low-code platform te bouwen. Voor elk onderdeel van een programma – zoals de gebruikersinterface, datamodellen of business logic – zijn andere vormen van visualisatie nodig.
Op dit vlak is code toch universeler, aangezien alles wordt gepresenteerd als tekst. Er wordt al jaren getracht om low-code-platforms te creëren, maar dit leidde vooralsnog tot inflexibele en niet-draagbare programma’s. Recent hebben Mendix, Outsystems, Betty Blocks en Progress Kinvey wél vooruitgang weten te boeken met low-code. Het is natuurlijk nog steeds niet zo open en uitgebreid als de meeste programmeertalen, maar er kunnen volwaardige applicaties mee worden gebouwd.
De functionaliteiten van low-code-platforms groeien. Dat is ook wel nodig om flexibele programma’s te maken. De keerzijde is dat low-code-programma’s steeds lastiger worden om te bouwen. Er verschijnen steeds vaker low-code-platformspecialisten om alles in goede banen te leiden. Dat ondermijnt de vrijheid en toegankelijkheid van low-code. Low-code is onderdeel van de oplossing, doordat het programmeren dichter bij de bedrijfspraktijk brengt. Maar het is niet de oplossing voor het centrale probleem van applicatiebouw: programma’s zijn alleen modulair tijdens het bouwproces en niet wanneer ze in gebruik zijn.
Runtime delivery
Bij Caesar Experts streven we naar een modulair bedrijfsmodel. Dat wil zeggen dat de bedrijfsvoering niet afhankelijk is van software, maar het bedrijf is de software. Een veel directere aanpak die ik runtime delivery noem. Bij runtime delivery heeft een bedrijf directe online toegang tot de bouwblokken voor programma’s. Het is met andere woorden geen low-code-platform om nieuwe applicaties in het leven te roepen, maar een ‘high-code’-dienst om een bedrijf mee op te bouwen. De individuele bouwblokken vervullen slechts één enkele taak (separation of concerns) binnen een specifiek domein, compleet onafhankelijk van andere bouwblokken.
Deze verschillende bouwblokken doen hun werk binnen de cloud. Dat zorgt voor een gestroomlijnde dienstverlening, die overal toegankelijk is. Dankzij runtime-delivery-bouwblokken kunnen bedrijfsontwikkelaars die nu nog afhankelijk zijn van Excel of low-code-platforms functionaliteiten toevoegen op bedrijfsniveau.
Van datastroom naar bedrijfsproces
Runtime delivery klinkt wellicht als een mooie toekomstdroom, maar het is nu al realiteit. Een goed voorbeeld van is Progress Corticon, een business rules engine die totaal onafhankelijk van andere software functioneert. Corticon maakt gebruik van ‘Als … dan … anders’-constructies. Zo simpel dat een bedrijf ze gemakkelijk zelf aan kan passen.
Een ander voorbeeld is Apache NiFi. Dit project vindt zijn origine bij de NSA, die het gebruikte om datastromen te creëren en vervolgens te manipuleren vanuit een browser. Het spreekt voor zich dat dezelfde flexibele omgang met waardevolle datastromen ook van nut is voor bedrijven.
Het programmeren van dergelijke datastromen kan echter al snel behoorlijk complex worden. Met Apache NiFi kan IT een datastroom bundelen. Die kan vervolgens weer gebruikt worden door de business als bouwblok. Zo opent slimme IT de weg van chaotische datastromen naar een verbetering van je bedrijfsproces.
Het modulaire bedrijf
Het mooie is dat je bovengenoemde voorbeelden gemakkelijk met elkaar kunt combineren. Verweef ze met je bedrijfsproces en het is niet langer alleen de software die van functionaliteit kan veranderen. Modulaire software legt grondslag voor een modulair bedrijf. De technologie is er al. Het is aan jouw bedrijf om de tweede stap te zetten.