Human consequences of coding agents
Table of Contents
I’m both excited and unsettled by coding agents. Excited because it feels possible to take on the projects that I’ve dreamed about for years. Unsettled because I’m not actually writing software. My ideas come to fruition, but I have no pride in the generated code. Does it matter? Isn’t it enough to take pride in the idea? The problem is I have a software-addled brain. My dream projects are programming languages, encoding formats, and data structures. These are details for coding agents. Coding agents make these projects possible and take the wind out of my sails at the same time.
Even more exciting and unsettling is the logical endpoint: people (coding agents) will write a lot more software, like, a LOT more, and software engineering will become an irrelevant area of human study. Software engineering will matter to coding agents and some minority of humans, but most people don’t need to care. People have a general idea how their car works. Some people enjoy maintaining their car as a hobby or because they think it saves them money. No one need know how to rebuild a car from scratch to enjoy fast, efficient transportation.
My non-technical, 20-year-old son has used a coding agent to write a GUI app to manage his budget. Did he use an imperative or functional language? Did he properly factor the code into Model-View-Controller? Can he easily extend the code for new use cases? Who really cares? The coding agent can rewrite it from scratch as easily as add a feature. English is the new high-level code. High-level code is the new machine code.
I’m grappling with the death of my profession. When everyone is a software engineer, then no one is a software engineer. When anyone can prompt into existence all the software they desire, then software doesn’t matter. What matters is how well the software meets the human need. Coding agents aren’t eliminating humans. They’re humanizing software, which is a good thing.
A future where (human) software engineering doesn’t matter #
It’s possible that AI leads the state of the art in software engineering, or it may be that humans still push the state of the art and AI just makes it accessible to everyone. I’m fine with either future. The question I’m interested in is: what does this post-scarcity world of human-oriented software look like?
Generate rather than reuse #
Generally speaking, I will be able to generate software for my particular situation and my idiosyncrasies. You will be able to do the same. By definition, your software will not fit my goals, so there’s no reason I’d want to use it. This applies to both applications and libraries.
This is just an amplification of current realities. Some applications and libraries are popular, and there is a long tail of software that scratches some personal itch and has one user.
I don’t think reuse goes away entirely, but the head will get steeper and the tail longer.
Generate rather than extend #
If your coding agent can read and extend the code, that’s great. If your coding agent can’t read and extend the code, then just regenerate it from scratch. A coding agent is a compiler from human language to high-level programming code and eventually to machine code. We don’t change generated code. We recompile it.
Generate rather than hire* #
It’s no longer necessary to hire a programmer to make software. A coding agent is a lot faster and cheaper than human programmers. But there is still a human prompting the coding agent.
Just like any human activity, there will be people who are way better at writing prompts than others. Perhaps some people would rather hire a prompter. Writing precise, complete prompts may replace writing code, and it may require similar skills.
Undoubtedly coding agents will displace software engineers. That could be good or bad. I’m hopeful that a large number of those displaced will find a use for their skills they enjoy as much or better than software engineering. I’m also confident that human software engineering won’t disappear entirely. It will be rare.
Never generate #
I’m not personally convinced by moral arguments, but some people have moral objections to coding agents and will never adopt them. They may create their own enclave. They will be the Amish of software developers. They will create strongly aligned, uncompromising communities, like the free software community.
Some people may prefer to only buy and use human-generated software, like buying organic produce at the grocery. Some may prefer to only use human-generated software for aesthetic purposes. This minority of interests will coexist with the majority who use coding agents.
Users are human, but so are software engineers #
You can see this from the perspective of a user and the power it gives to you, or you can see it from the perspective of a software engineer. Both perspectives are human perspectives.
Coding agents have undesirable consequences for software engineers, to say the least, and it’s tempting to demonize the humans on the other end, but I submit to you there’s an ugly side to anti-AI pushback.
Pride #
You may push back against coding agents because you think you’re above them and the people who use them. You think your code is more elegant, more beautiful. You think you’re doing something important and worthwhile. This is pride in the thinking-too-highly-of-yourself, moral-failing sense.
Your code is mediocre human slop. In 99.999% of cases your software is not exceptional. it’s “good enough.” Bugs lurk in it. It doesn’t handle edge cases. It has missing features. No one will frame it and hang it on their wall.
That’s not a bad thing. It’s a pragmatic thing. it’s the right balance of cost-to-benefit, and generated software is too. it’s cheap and satisficing.
Envy #
If you’re one of the truly exceptional software engineers, then you’ll probably keep engineering. You may make a living supplying the organic, hand-coded software market. People will love you for it, but you’ll get a lot less attention.
Your slice of the pie will be a lot smaller. You are probably envious of all the attention that is now diverted elsewhere. The crowd is fickle. Appreciate what you had and move on.
Fear #
If you’re any kind of software engineer, you’re probably afraid. Things are changing and the thought of trying to adapt is painful, but the thought of becoming irrelevant and destitute is also pretty painful.
That’s a tough one, and I’m there with you. It brings solace to me that there are others in the same situation. I’m confident I’ll find a way to redirect my skills if need be. We’re in this together, and I’m up for the challenge and excited that more people can make their own software.
Human consequences of coding agents #
I see two human perspectives here. I see the detrimental impact coding agents are having on software engineers, and I see the beneficial impact coding agents are having on everyone else. I don’t want to downplay the detrimental part, but there is also an ugly side to the pushback including pride, envy, and fear.
I want to embrace the challenge and see the positive changes that are happening around me. When I write software I am satisfying a human need. That is beautiful, and now more people can do it.
Discuss: