AI vs. ontwikkelaars
Mijn manager had laatst zes sollicitanten achter elkaar op één dag. Ze vroeg, uitgeput, of ik het oké vond als we ons voortgangsgesprek even een weekje verzetten.
De dag erop hadden we een gesprek met de directrice van de IT-afdeling. Hoe ziet de afdeling, vroeg ik, er over een paar jaar uit in jouw idealbeeld? Het duurde, weinig verrassend, niet lang voordat het gesprek ging over het gebruik van kunstmatige intelligentie (AI).
Het is niet controversieel te stellen dat AI de inhoud van ons vakgebied de komende jaren ingrijpend zal veranderen. Stemmen die menen te weten hoe die verandering eruit gaat ziet, wantrouw ik, maar dat er een verandering plaatsvindt, staat buiten kijf.
Sollicitantent
Hoe verhouden we ons daartoe? Kijk uit, merkte mijn manager op: een groot deel van haar sollicitanten was aan het solliciteren geslagen precies omdat hun huidige werkgever vol op AI had ingezet. De ontwikkelaars voelden zich niet meer thuis in die nieuwe wereld.
Ze hadden er een hekel aan enkel nog code te reviewen, ze wilden weer terug code met de hand te schrijven.
Hebben die ontwikkelaars het mis? Blijven zij achter?1
Twee soorten ontwikkelaars
Het is de vraag: wat voor ontwikkelaars waren het, die sollicitanten? Er zijn ontwikkelaars die plezier halen uit het ambacht van het coderen. Zij houden van het proces van code schrijven, eraan schaven tot het mooi is of perfect uitdrukt wat het wil zeggen.
Zulke ontwikkelaars hebben een probleem. AI dreigt de financiële waarde van hun drijfveer te reduceren tot nul. Hoewel ik sympathie heb voor deze groep, reken ik mezelf er niet toe.
Er zijn ook ontwikkelaars waarvoor code slechts een middel is. Zij halen hun plezier uit het oplossen van (business)problemen. Code is één manier om een probleem op te lossen. Een stakeholder ervan overtuigen dat diegene zijn proces moet versimpelen of standaardiseren, is een andere.
Zulke ontwikkelaars hoeven AI niet te vrezen. Voor hen is AI een hulpmiddel om het uiteindelijke doel te bereiken. (Is dit dan de groep waarin ik val?)
De waarde van code
Hier moet ik een belangrijke nuance aanbrengen. Als ik zeg dat code slechts één manier is om een probleem te bereiken – een middel tot een doel –, dan beweer ik niet dat de code op zichzelf waardeloos is.
Alle code kan (nu) een probleem oplossen, ook slechte code. Maar zulke code is desondanks onwenselijk. Want slechte code is een barrière (straks) voor het oplossen van het volgende probleem.
Om op een duurzame manier ons werk te kunnen doen, moet de code van hoog niveau zijn. Ze moet onderhoudbaar zijn, uitbreidbaar, maar vooral: ze moet duidelijk communiceren wat (ons huidige begrip van) het probleem is.
Programmeurs formuleerden hun begrip traditioneel in code. Wie zijn begrip van het probleem niet kan formuleren, omdat de AI al het denkwerk heeft gedaan, kan zijn werk als ontwikkelaar niet doen. Wie zijn verantwoordelijkheid voor het begrip van een probleem volledig uitbesteedt aan een AI, schildert zichzelf in een hoek.
Versneller
Ik heb mij gefocust op het soort ontwikkelaar dat bij ons solliciteerde. Maar misschien is dat niet terecht, of op zijn minst onvolledig.
Ze zeggen: AI is een versneller. Dat betekent: als je je zaken goed op orde hebt, dan biedt het een snelweg naar kwalitatieve software. Maar: als je zaken niet in orde zijn, dan zul je in sneltreinvaart een puinhoop produceren.
En wie ooit een handgeschreven puinhoop heeft moeten opruimen, weet hoe enorm de uitdaging is dáár al iets werkbaars van te kleien.
Zouden die bedrijven waar onze sollicitanten vandaan komen, hebben ingezet op AI voordat ze hun zaakjes op orde hadden? En zijn het de ontwikkelaars – de ontwikkelaars die begrijpen dat snelheid slechts duurzaam kan zijn met goede code – zijn het die ontwikkelaars díe daar de prijs voor betalen?
Zou ik, in zo’n context, niet net zozeer mijn CV afstoffen?
Ik durf het oprecht niet te zeggen, ik ben van de stempel choose boring technology. Het is aan anderen om de fouten te maken, het is aan mij om ervan te leren. ↩︎
kunstmatige intelligentie · kwaliteit · software ontwikkelaar (rol)