I recently had the pleasure of sitting through a several-hour Microsoft workshop on GitHub Copilot. Within the scope of what had been advertised, the workshop was perfectly fine (and actually a pretty good opportunity to compare the practices we’re gradually developing in-house for dealing with the next technological world revolution with what the absolute maniacs out there are already doing in the wild). There was just one line the instructor couldn’t resist at the end of the workshop, even though, by now, I’ve come to much the same conclusion: “Coding is solved.”
That wasn’t meant to say we’re all going to lose our jobs tomorrow. The day after tomorrow, perhaps quite a few of us will. The point was more that, once again, everything is changing completely. My job involves more than coding. Unfortunately, coding is the part I enjoy most. Instead, I’m now supposed to work out how to get agents to write code in such a way that the result is what we actually wanted and only step in as a last resort when things don’t quite turn out the way our dazzlingly bright future promised.
An example: during the workshop, a vibe-coded shopping cart and checkout were bolted onto an entirely vibe-coded online shop. Armed with a screenshot of some other shop and a few words that, from a professional point of view, barely went beyond “go on, make it work,” an agent implemented the whole thing in next to no time. And it worked. You could select quantities for the products, add them to the cart, open the cart, and review everything. It all looked very polished—and not at all like the screenshot, but instead matched the shop that had already been coded.
At checkout, however, it became clear that the agent had done more than it was asked to do. It had not only—quite correctly—added up the prices of the items in the cart; it had also helpfully deducted a completely fictional $100 discount and added a field for voucher codes. Bril-li-ant!
But let’s take another step back. My job involves more than coding, even if the machine will be doing that part for me in the future. Sure, I can teach the machine to do it as though I had done it myself, maybe better and more consistently. And leaving aside the fact that this was the part of the job that gave me the greatest sense of fulfilment… I can even warm to this business of working with agents. It’s a bit like the old days: we had the wonderful CSS2, but we also had to invent or learn a thousand tricks and hacks to deal with the most hostile development environment of them all: the thoroughly awful and wildly inconsistent web browsers of the time. Meanwhile the rules changed on what felt like a monthly basis.
It’s just that… if the machine can code now, it won’t be long before it has learned the rest as well. Then other people will come up with the architecture. People who already think I care far too much about it and spend far too much time on it. And the product ideation those people currently do will eventually be replaced by a machine too, and so on.
That doesn’t make me feel any better, because other people’s misery does nothing for me. I don’t actually believe it will happen that way, either. By then, the product itself will have become obsolete and won’t need developing at all.
That’s the thought that makes me sad.
German version of this article in my personal blog: „Coding ist gelöst“.