Bijna jaarlijks wordt wel gezegd dat het einde van handmatig programmeren nabij is. Zo werd een aantal jaar geleden verkondigd dat low-code/no-code systemen het einde van programmeren zouden betekenen en momenteel wordt er gezegd dat ChatGPT software engineers overbodig zal maken. Maar hierover kunnen we duidelijk zijn: er is geen enkele reden om aan te nemen dat we in de toekomst niet meer zullen programmeren. Integendeel zelfs. Het is echter wel zo dat programmeren door de jaren heen is veranderd. Zo wordt het coderen op maat steeds vaker vervangen door de uitbreidbaarheid van software.
Uitbreidbare software biedt externe partijen, zoals channelpartners van leveranciers, een snelle manier om programma’s aan te vullen zonder dat er unieke code geschreven hoeft te worden. Low-code programma’s kunnen hierbij worden ingezet om eenvoudige software of een testcode te bouwen. Maar vooral binnen ERP-systemen is uitbreidbaarheid de sleutel tot het creëren van de integraties, extra functies of verticale sectorkennis die klanten vaak nodig hebben.
Een les uit de ERP-geschiedenis
Zo realiseerden veel bedrijven zich zo’n 25 jaar geleden, onder andere door de angst voor de gevolgen van de millenniumbug, dat ze maatwerk voor hun software nodig hadden om aan hun unieke behoeften te voldoen. Dit resulteerde in consultancydiensten die als paddenstoelen uit de grond schoten, ontzettend lange installaties en complexe onderhoudsbehoeften. Monolithische softwareblokken moesten immers worden aangepast om zo aan te sluiten bij wat klanten dachten nodig te hebben om hun activiteiten uit te voeren.
Inmiddels beseffen veel bedrijven zich dat maar weinig processen echt uniek zijn en dat het verstandiger is om te focussen op uitbreidbaarheid. Om daarmee een ERP-systeem te integreren met externe systemen, of om extra’s toe te voegen zoals sectorspecifieke add-ons.
Tijd om uitbreidbaarheid te eisen
Het is daarvoor wel belangrijk dat CIO’s en CTO’s ERP-systemen gebruiken die gemakkelijk kunnen integreren met andere software, zonder dat ze bijvoorbeeld veel geld uit moeten geven aan extra modules. Uitbreidingspakketten zouden wat mij betreft kosteloos verspreid moeten worden onder partners en andere externe partijen, om zo de creativiteit de vrije loop te laten. En ook onder klanten, zodat zij kunnen profiteren van de voordelen van een ‘hive mind’. Waarbij een verscheidenheid aan programma’s wordt geboden net als bij open-source software.
Voordelen van uitbreidbaarheid
Uitbreidbaarheid kan een bedrijf dus veel voordelen bieden. Zo hebben we partners automatische Outlook-agenda’s zien maken, Jira-projectmanagers roosters zien synchroniseren en kredietcontrole voor inkooporders zien automatiseren. Als bedrijven de software-add-ons met een architectuur van microservices en gebruiksklare best practices uit de sector combineren, hebben zij een snellere time-to-market, kunnen zij kosten besparen en klanten enorme voordelen bieden.
Programmeurs en monteurs
De verschuiving naar uitbreidbaarheid betekent echter niet dat we geen programmeurs meer nodig hebben. Je kunt programmeurs namelijk vergelijken met monteurs. Als bestuurder weet je misschien niet veel over hoe de motor werkt en weet je waarschijnlijk niet hoe je hem moet repareren als de auto niet start. Je hebt dan een monteur nodig om de interne complexiteit en afhankelijkheden te begrijpen. Datzelfde geldt voor software. Programmeurs zijn degene die unieke programma’s kunnen maken en die gegevensmodellen begrijpen om architectuurproblemen te voorkomen.
Gebruik de bronnen goed
In een tijd waarin er een hoge vraag is naar programmeurs, moeten we zo goed mogelijk gebruikmaken van onze beschikbare bronnen. Gebruik dus zeker low-code/no-code en mogelijk in de toekomst zelfs ChatGPT voor het genereren van code. Maar vergeet niet de gebruiksklare programma’s en integraties die al beschikbaar zijn in te zetten, om zo te profiteren van de functionaliteit, het gemak en snelheid die alle bedrijven tegenwoordig nodig hebben.