pboyd.io

The death of the programmer

I “hand wrote” code the other day. That is, I used my very own fingers to tap out Python code on a keyboard without any AI assistance. Normally, I use Claude Code or OpenCode for this task, but due to an administrative snafu at work my team temporarily lost access. The code was nothing exciting, but it fixed a real bug. It felt so good to write code again that I told my teammates about it, who promptly informed me there was a workaround posted a few hours prior to restore AI access. No one actually said, “quit messing around, and get back to work,” but it was definitely implied.

I used to think that I could continue writing code and delegate the boring bits to the AI. This anecdote, if nothing else, highlights how badly that strategy has gone. Until recently, a software developer writing code was not only a good use of time, it was the job. Now it’s a waste of time. On a good day, I write better code than an AI. But the AI is usually good enough and it certainly writes it a lot faster than me. Despite the costs associated with AI, it’s still cheaper than a human writing code. You’d have to be crazy to hire anyone to write code right now, and I don’t see that changing.

When capitalism works well, efficient methods drive out less efficient ones, and human programmers are merely the latest casualty. Consider your shoes for a moment. Before shoes were made in factories, each pair was hand-made by a craftsman. At least at first, I suspect the factory-made shoes weren’t as good as what a local shoemaker produced, but this wasn’t enough to keep the less efficient trade alive. Today, there’s still a market for hand-made shoes, but it’s far smaller than the factory-made variety, and likely subsists on the benevolence of the sort of people who brag about shoes. Artisanal software is unlikely to do even that well.

Personally, this is a tough blow. I love programming. I loved it when I was a kid writing BASIC, and I’ve love it through all the languages and technologies I’ve used since. Believe when I say, I’m no AI-coding cheerleader, but even I need to accept that it’s here to stay and that programming will no longer be part of my professional life. I could try to hang on to writing code a bit longer. After all, just because efficient methods tend to win out eventually, doesn’t mean that the process is even. Certain niches will survive for quite a while, and some industries and sectors are so risk averse that it might be possible to make a career while they catch up. If I were planning to retire soon, I might pursue one of those options.

So, what’s a middle-aged computer programmer to do now? The obvious answer is to continue building software. After all, we haven’t been “programmers” in a long time, we’re “software developers” or “software engineers”. We built software, which just happened to require programming. The day-to-day work is changing dramatically, but the output is still the same shape.

You may be wondering if software development sans programming is even a viable career path. After all, the robots not only came for our jobs, but they’ve taken a significant part of them. Won’t they take more? Will there even be a software industry when users can simply generate their own software? I think it’s not as drastic as that. Some users (me, for instance) are already generating their own software. But it’s limited and I think it will remain limited. People buy all sorts of things they could technically make themselves, and software should be no different. For instance, even though I’m capable of making my own supper, I still eat at restaurants. Sometimes it’s because I want a better meal than I can make at home, or I need something quick when I’m out, or I simply don’t feel like cooking. Software companies have every incentive to out-compete home-grown AI-generated software, and given the results of one-shot AI programs, it probably won’t be a close competition. Software as a business model, therefore, seems safe enough.

Another concern I hear is that, as soon as the AI pipelines are built, executives will simply fire everyone. I’m not very concerned about this either. I’m not sure if it’s human nature or a specific feature of our society, but we want more. We don’t want the same amount we had last year, and we certainly don’t want less. So imagine you’re a CEO of some corporation who’s just been told that your AI software development pipeline is up and running. You can push for layoffs to increase the bottom line. Or you can push for new projects to increase the top line. I’m sure some will choose the bottom line, particularly if the software engineering department is a cost center. But I expect enough will choose new revenue-generating projects (to say nothing of new ventures) that the total amount of software written will increase, and demand for people to create software will at least stay flat.

Who are those people creating software though? I’ve heard the idea that executives will tell the AI what to build, like a one-person software engineering department. But specifying software and validating that it meets the spec is still work, and almost certainly work that most executives would rather delegate. They currently delegate it to product managers, many of whom could easily take on a slightly broader role and generate the software. But I also think a lot of former software developers, testers and designers can do that job, and with lots of new products, we’ll need more people in that role. My best guess is that the barriers between the current software development specialities will continue to erode until product managers, designers, devs and testers are all more-or-less homogeneous product people. If AI handles most of the details, what’s the point of the specialization?

Of course, with the programming gone, I’m not sure I really want that job. All that’s left are the bits I never much liked. Feeding specs into an AI and checking the generated software is definitely not why I signed up. It’s not necessarily awful, and it might even provide its own set of interesting challenges. I have some concerns about this new direction for me personally, but for now I’m making the most of working with my replacement.

If it turns out that I can’t stand what software has become, I don’t think the experience is entirely worthless on the market. Half a career spent working deeply on a computer, plus some specific training, should translate well enough to related disciplines (IT and cybersecurity come to mind). Technical training is probably safe from AI, as long as people prefer learning from other people. There ought to be something we can do, even if it’s unrelated to shipping software.

I’m disappointed with the recent changes to my profession, but I can’t think of a better way to spend the first 20 years of my career than programming computers. I was lucky to have that. But I don’t think the future is necessarily bleak, and I have to believe that there will continue to be a place for former programmers.