Mja, ik weiger vooralsnog dit te geloven.
Zeker als het businessprobleem alleen op te lossen is door een complexe technische oplossing te kiezen. Denk daarbij aan systemen die hoge volumes aan transacties moeten verwerken. Dan is het goed ontwerpen van een database en het schrijven van efficiënte queries een stuk belangrijker dan wanneer je maar 50 users hebt. En worden andere architecturele keuzes, zoals het gericht cachen van bepaalde informatie, het scheiden van commands en queries (CQRS), het kunnen opschalen van het volume door load balancing en de consequenties daarvan voor de code, enzovoorts veel belangrijker.
Kortom, technische details kennen is nog steeds erg belangrijk als het systeem veel aan moet kunnen. De zogenaamde -ilities van een systeem (
system quality attributes).
Ik word immers niet betaald om de website van de bakker op de hoek te bouwen. Ik werk aan OMS/ERP systemen die duizenden orders per dag verwerken. En daar komen heel veel technische details bij kijken om de boel draaiende te houden.
Mijn ervaring met LLM's is dat ze nou eenmaal eenheidsworst genereren. Logisch ook, want ze kunnen in feite alleen uitspugen wat ze geleerd hebben en je moet wel erg veel blijven prompten om dan precies te krijgen wat je wil.
Voor de rest denk ik ook niet dat jouw stelling exclusief is, maar inclusief moet zijn. Het ene kan niet zonder het andere. Voor mijn werk zijn beide aspecten belangrijk. Ik moet de business begrijpen, maar óók de techniek. Daarom moet ik ook als ik bijvoorbeeld aan een boekhoudmodule werk, in ieder geval in grote lijnen snappen hoe een boekhouding werkt. Dat vind ik niet eens leuk om te doen, maar ik heb inmiddels wel 4 boeken over boekhouden bestudeerd. Ik zou zo examen kunnen gaan doen bij de associatie.
Maar aan de andere kant moet ik mij ook heel bewust zijn van de techniek. Elk financieel feit moet transactioneel worden verwerkt. Er mogen geen rare race conditions zijn, ik moet bewust omgaan met optimistic vs pessimistic concurrency bijvoorbeeld, want atomic updates moeten niet leiden tot dat mensen geen informatie meer op hun scherm krijgen omdat de halve database gelockt is. Daarom heeft optimistic concurrency ook de voorkeur en ga je met versioning werken van je entities, enzovoorts.
Het opvragen van financiële overzichten moet niet een te grote belasting voor het systeem opleveren, waardoor je toch ook gaat kijken naar een vorm van database warehousing en archivering met gerichte redundantie die voor een beginner totaal niet intuïtief is (omdat ze altijd hebben geleerd bij het normaliseren van gegevens dat redundantie juist voorkomen moet worden).
Kortom, de hele architectuur erachter, het technische ontwerp, is net zo belangrijk als het altijd al is geweest. Alleen het stukje code uittypen... nou daar heb je nu dan een hulpje voor. En dat hulpje voelt alsnog als gekkie Henkie die je aan de hand moet vasthouden. Hij wil wel graag helpen, maar het is het vaak nét niet.
En hoe langer ik hierover nadenk, hoe meer ik mij realiseer dat ik niet te vervangen ben door AI. Want het gaat mijn werkgever niet lukken om een AI te prompten om het allemaal maar te fixen. Daar heeft hij dan alsnog mij voor nodig.
Dus ja.
Het code tikken is ook maar 25% van mijn functie. Bedenken wat er moet gebeuren is zoveel belangrijker. Maar daarvoor moet je alsnog ook technisch zijn. Je moet op zijn minst ook in staat zijn om te kunnen beoordelen of iets technisch überhaupt haalbaar is.
Ask yourself if you are happy and then you cease to be.