Programmeren wordt ook wel het ambacht van de 21ste eeuw genoemd. Het vereist namelijk veel tijd, oefening en talent van de programmeur om een softwarematige oplossing te realiseren door middel van een numeriek algoritme. Helaas introduceert dit ambacht ook veel menselijke fouten, wat de vraag oproept: is softwareontwikkeling wel zo hightech als velen denken?
Het vak van programmeur bestaat pas zo’n dertig jaar en is daarom nog continu in ontwikkeling. Een groep programmeurs ging de afgelopen decennia op zoek naar een gemene deler in het vak. Hieruit kwamen het Manifesto for Agile Software Development uit 2001 en het Manifesto for Software Craftmanship uit 2009 uit voort. Met dit laatste manifest willen programmeurs de lat voor hun vak hoger leggen. Ze willen bijvoorbeeld dat programmeurs niet alleen op verandering reageren, maar ook echt waarde toevoegen. Dat is op zich een goed initiatief, maar neemt niet weg dat het softwareontwikkelproces de afgelopen dertig jaar nauwelijks is verbeterd. En dat terwijl in diezelfde periode bijna alle industrieën hun processen hebben geautomatiseerd. Denk alleen al aan de automotive-industrie.
Programmeren oude stijl
De behoefte aan software groeit met de dag, maar de grootste bottleneck blijft de ontwikkeling. Dat gebeurt namelijk nog steeds grotendeels handmatig en op ongeveer dezelfde manier als dertig jaar geleden, met alle gevolgen van dien. Een organisatie bedenkt bijvoorbeeld een complex nieuw product en produceert vervolgens een dikke stapel papier waarin het uiterlijk en de functionaliteit van de software wordt beschreven. Deze dikke stapel documentatie wordt daarna overhandigd aan een groep gebruikers die alles moet controleren. Stel je voor dat je de software halverwege of achteraf nog moet aanpassen!
Na de goedkeuring moet een groep programmeurs vervolgens miljoenen regels code schrijven om het nieuwe softwarepakket tot leven te wekken. Hierbij wordt waarschijnlijk een programmeertaal gebruikt die op dat moment modern is, maar door de technologische ontwikkeling al heel snel veroudert.
Software wijzigen
Een ander probleem bij grote, met de hand geprogrammeerde projecten is, dat het doorvoeren van wijzigingen heel complex is. Vergelijk het met het plaatsen van een houtkachel in een bestaande woning. Er is dan een heel ander rookkanaal nodig, waardoor er op meerdere verdiepingen flinke aanpassingen gedaan moeten worden. Programmeurs worden weleens de digitale bouwvakkers van de toekomst genoemd. Het gezegde ‘oefening baart kunst’ past hier goed bij.
De uitkomst is zelden exact te voorspellen en projecten zijn bijna onmogelijk te begroten. Zelfs als Agile- of Scrum-technieken worden gebruikt, is de kans dat een project binnen de tijd, specificaties en budget wordt opgeleverd slechts miniem. Daarom lezen we ook regelmatig in de krant dat er weer een it-project volledig uit de hand is gelopen. Is het niet hoog tijd dat het ambacht programmeren vervangen wordt door efficiëntere, snellere en foutloze manieren van software bouwen?
Programmeren nieuwe stijl
De ontwikkeling van software wordt weleens vergeleken met de automotive-industrie. In zo’n hightechindustrie wordt altijd eerst een digitale bouwtekening van een conceptmodel gemaakt, die vervolgens op allerlei manieren gevisualiseerd en gepresenteerd kan worden. De auto kan in deze virtuele vorm zelfs volledig automatisch getest worden, bijvoorbeeld om te kijken of de auto niet als een harmonica in elkaar wordt geduwd bij een botsing. Zijn alle belanghebbenden eenmaal tevreden over het concept, dan wordt de bouwtekening aan een lange robotstraat gevoed, die er voor zorgt dat de productie zo geautomatiseerd mogelijk kan plaatsvinden.
Gelukkig zijn er ook mogelijkheden om softwareontwikkeling op een vergelijkbare hightech manier te verbeteren, namelijk met een low-code software development platform. Met dit type ontwikkelplatformen wordt een voor iedere organisatie unieke virtuele blauwdruk van de specifieke bedrijfsprocessen gemaakt. Op basis hiervan wordt vervolgens automatisch bedrijfssoftware gerealiseerd, die daarna flexibel en tegen beduidend lagere kosten aangepast kan worden, enkel door de virtuele blauwdruk te wijzigen. Hoeveel dit kan schelen is in dit QSM Rapport terug te vinden. De software wordt in feite gemodelleerd, met zo min mogelijk programmeerwerk. Aanpassingen kunnen doorlopend gedaan worden, zonder trapsgewijze updates of volledig nieuwe implementaties. Door deze aanpak ontstaat er een software-lifecycle die beter past bij de technologische wereld waar we nu in leven. Een waar software zich vormt naar de organisatie en niet andersom.