Dirk Jonker

Programmeren

De afgelopen tijd is het duidelijk geworden dat de meeste code voor software niet meer direct door mensen geschreven zal worden. De coding agents zijn tegenwoordig zo ontzettend goed en snel in werkende code schrijven dat het niet meer de moeite waard is om nog zelf code te schrijven. De taak van de gemiddelde software ontwikkelaar gaat nu meer richting het testen van het resultaat en instructies te geven voor verdere aanpassingen. Je gaat je afvragen wat nog de toegevoegde waarde is van de software ontwikkelaar, als het schrijven van de code geen probleem meer is.

Maar het grootste probleem bij het ontwikkelen van software is zelden het schrijven van code. Al jarenlang maken software-ontwikkelaars gebruik van frameworks en libraries waarmee alle moeilijke code al geschreven is en makkelijk hergebruikt kan worden. Ook het meestgebruikte platform voor applicatieontwikkeling, het web, heeft ontzettend veel functionaliteit al kant en klaar om te gebruiken. Zelfs wanneer je nog code met de hand zou schrijven is dit vandaag de dag vele malen eenvoudiger dan het ooit is geweest. De stap naar het automatisch genereren van code is simpelweg de volgende logische stap in deze ontwikkeling.

De rest van het proces van software ontwikkeling blijft een uitdaging. Software is zelden een op zichzelf staand product en vaak slechts een onderdeel van een groter systeem van mensen, bedrijfsprocessen en andere software. Zo'n systeem is zelden goed gedocumenteerd in tekst maar meer een levend organisme dat zich continu ontwikkelt. Het begrijpen van zo'n systeem en het aanpassen van software om het systeem te optimaliseren is nog een flinke intellectuele uitdaging waarbij mensen nog een belangrijke rol spelen. Voordat je een oplossing kan maken moet je eerst het probleem begrijpen. Praten met mensen en relaties opbouwen is daarbij noodzakelijk om tot de kern van het probleem te komen. Kennis van het systeem is nodig om te kunnen zien of er een oplossing is die goed in het systeem past zonder dit uit balans te brengen.

Uiteindelijk moet iemand de beslissingen nemen wat er wel en niet aan het systeem aangepast dient te worden. Hiervoor heb je een mening nodig en bovendien smaak. In de meeste systemen zijn er teveel tegenstrijdige belangen om iedereen tevreden te stellen en zullen er keuzes gemaakt moeten worden. Anders eindig je als V&D, zonder enige richting en smaak.

Natuurlijk kan je een AI al deze beslissingen laten maken. Maar een AI heeft geen duidelijk gedefinieerde smaak en zal zonder duidelijke instructie de veilige middenmoot kiezen. Laat een AI maar eens een poster voor een evenement maken: je kent ze wel, die zien er vrijwel allemaal hetzelfde uit. Prima, maar middelmatig en niet bepaald onderscheidend. Geef de AI een duidelijk mandaat van stijl en restricties mee en je krijgt een beter resultaat.

Hierdoor denk ik dat mensen voorlopig nog wel nodig zijn bij het ontwikkelen van software, al is het niet het schrijven van de code zelf. Wel denk ik dat sommige mensen zelf code blijven schrijven, het blijft immers een goede intellectuele uitdaging. Maar dan vooral als een hobby en niet iets waar je nog goed geld mee kan verdienen.