Loading…

A Spot of Hope For The Beleaguered Software Drone

·

The vibes in software development have gone rancid.

Everyone is exhausted. Everyone is burned out.

You know why, we all do. Our jobs are at serious risk and we're all, the lot of us, divided into two camps - either engaged in furious denial or resigned despair.

Both of these states are profoundly exhausting.

Denial

Disney's John Henry

I joined a company full of some of the most talented software developers I'd ever encountered - and still, somehow, I managed to develop something of a reputation for speed and quality. I can grind with the best of them. But trying to out-compete a tireless machine is, honestly, exhausting.

Vibe coding lets developers produce a lot of bad code, quickly, and True Blue Developers are out there trying to make the case that software should remain the province of small, carefully hand-crafted pearls of perfect wisdom rather than sprawling, chaotic masses of sprawling, uncontrolled tech debt powered by just-one-more-feature-itus.

In order to prove themselves, they're working extra hard to try and make the case that software can still be human. That human-driven development is still better.

And you know what? For the very best of us? They're right. The very best of us, if we grit our teeth, buckle down, crack our knuckles, power down a triple-sized jug of coffee, we produce better code than the machine, fast enough to compete. We can be John Henry, faster than the steam drill.

image.png

These folks are burning out, though.

It doesn't, uh, actually matter? Being better and faster than a machine through spectacular effort is an incredible feat, but at the end of the story the machine is cheaper to run, good enough, and John Henry's heart explodes1. He dies with the hammer in his hand, which, even given the grander context of the story, doesn't seem like it was worth it at all.

image.png

A lot of the folks who are true-believers in the primacy of humans in coding use the same arguments that one can and should use for artistic endeavors: it's about craftsmanship. Creativity. A responsible human must be in the loop because machines can't take responsibility for anything. Good work is better than fast work. Correct work is better than confidently incorrect work. If you didn't care to make it, why should people care to interact with it?

I believe most of those things to be true for art. For code? I'm not so sure. I'm pretty sure that the right code is whatever code solves the problem you're having right now. Anybody who's worked on a large legacy product with many other developers knows: the code already grows faster than you can keep track of it all. The code is already a wild patchwork of glued-together ideas and concepts that solves whatever problem we had today in whatever the most expedient way to solve it was. Just because no computers were involved doesn't mean this code isn't slop. We just had a different word for slop, back in the day: "legacy", we called it.

In fact, learning to manage a large legacy codebase? Comes with a lot of lessons that also apply to AI slop management. I recall reading this pretty good book about it:

Working Effectively With Legacy Code by Martin Feathers

This is a book about working with systems too large to possibly understand that's lived large in my brain for well over a decade. Its lessons have never not been useful and probably deserve a post all on their own - or not? I love writing about software, thinking about software, producing software, but what does it matter? I'm not sure if posts on the craft of software are still meaningful. Will Opus read them? 2

The elevator pitch of this book is that working with legacy code - like working with generated code - is about giving yourself tools to effectively build and develop confidence in a codebase that you didn't write, a codebase too large for one person to understand readily. It's about intelligent testing, change control, building and testing seams: it's a good book and I highly recommend it.

Despair

Software development as a fun little personal puzzle or hobby? Still has legs, I think - but commercial software development? So long as "good enough" is good enough 3, we're all competing on price, and even though a modern model runs on a computer that costs a hundred thousand dollars to build and uses as much electricity as a house, that's still, somehow much cheaper than I am.

Those of us in software who've clocked the temperature in the room are all pretty sure this is software development's last decade, and even that might be pushing it a little bit.

That's really sad, too - I liked my career, I certainly enjoyed being able to afford to eat, and so now, like many other software developers in the same position, I'm stacking up savings like cordwood because winter is coming. Big vacations have stopped: staycations are back in. We're going to make this old Toyota Matrix last a little longer.

As software developers in their early forties go, I am not very wealthy: there's no family money here, it's all grit and a tiny home I can barely afford - so there's a lot of pressure to get something together for the lean years.

image.png

That's exhausting too - and let's not forget how much of a strain AI coding actually is. People overstate the ease of vibe-coding - it turns out building all software by having 14-hour-long technical conversations is still hard. The tools literally teach you how to use them themselves but there's still a learning curve to adopting them effectively. And all of us are jumping through increasingly ridiculous hoops to try and demonstrate that we still have some kind of value in this future where you can probably get things done just as fast by not talking to us. Can't say no to anybody in that environment, they'll just go vibe code something, and now you have two problems4.

We are, at the moment, scrambling for the lifeboats.

e

It would be nice if we all used this as an opportunity to build a society that treated everybody, bakers, janitors, teachers, artists, the sick, the elderly5 - like productive and equal members of society worthy of respect, housing, dignity, and food, but - well, it would also be nice if folks would stop voting for loud authoritarians for just a little while, as a treat. I'm not holding my breath.

So, I think - my pitch here - is that wherever you sit on the topic of agentic coding, you are feeling pretty exhausted right now.

Wait, If You Think Vibe Coding Is Making Everyone's Lives Worse, Why Are You Willing To Interact With It?

I think car driving is evil and makes everyone's lives worse, and yet: there are heavy groceries over there and I would like those groceries to be over here. I think Amazon is evil and makes everyone's lives worse, and yet: I need coffee filters and the Elastic Container Service. I think venture capital is evil and makes everyone's lives worse, and yet here I am living off of it (professionally, at least). I think eating meat is evil and makes everyone's lives worse, and yet mmf mff mmmf mff. meat.

Lots of things have direct, immediate benefits but negatives that are abstract and a collective burden for all of us to bear. In these situations, all purity gets you is the ability to sleep at night and... fewer groceries.

I think the way to make things better in the larger scale is through community organizing: if we could work together to reduce our meat consumption, take transit more, consume more thoughtfully, wear only hand-crafted locally-made sweaters and support human code, I would participate.6 I'm not doing it until everyone else is on board, though.

The Bad Outcome

I think we all know the bad outcome: software and professional jobs collapse, lawyers, software developers and doctors disappear, and now everybody works as an underpaid gig-economy worker moving Amazon boxes from point A to point B while performing debasing acts of friendly customer service for the few remaining hyper-wealthy who lord over us like kings. If we don't behave, suddenly we can't afford our subscription to the AI doctor, which we'll need because of the condition of the air. The air is not so good, especially after we privatized the atmosphere.

You know, like today but without a middle class that we still get to be a part of.

This might happen, but... also maybe it won't? Just because there's one bad future out there doesn't mean we have to careen directly in to it.

Promising Trends

That all seemed fairly pessimistic, but this article is called "a spot of hope" because I keep managing to get out of bed in the morning, and I want to share with you some of the things I've noticed that help with that.

In fact, the last time I did a talk about AI, I also ended it with things that gave me hope. What's weird is that the things are different, months later. I'm going to have to keep my list up to date as I go.

The PR May Be Dead, But FOSS Is Going To Go Nuts

Open-source infrastructure is currently weathering a truly insane distributed denial of service attack: everybody is pushing PRs, faster than anyone can address or fix them.

That's the thing, everybody is7 a software developer, now, a pretty fast and relatively competent one.

That's bad for traditional FOSS ownership models, but I think good for FOSS as a whole.

Make your own software! Make it for whatever you want to do on a computer. Everybody can take any open-source software they want and mold it to meet their personal needs.

Krita font support got you down? Don't file a PR to fix it - just ... fix it. You can maintain a fork of Krita yourself, that does whatever you want. You don't need to share that back with the community: they don't want your vibe-coded horseshit personal-Krita - but the cost of everyone maintaining their own vibe-coded horseshit personal-Krita just got way lower.

I'm writing this, right now, in a notepad that I built for myself8, in a markup-language that I customized to meet my own needs, with a publication flow that ties directly to a blog that I built for myself, attached to a music player that I built for myself, that all sync across all of my computers, serverlessly, using a custom protocol based on iroh that - of course - I built myself.

It doesn't currently automatically post to ActivityPub when I want to share my posts with the greater world. It will, soon, probably.

I think that "a lot of people working on one codebase" as a model is coming to an end: I think the model, post 2030, is going to be dozens of repositories per person as everyone realizes that they can just build whatever they need to do whatever they want, and that can all be open and free and shared.

That is cool. That's a cool thing. People are going to be tearing apart their electric cars' operating systems to remove spyware, they're going to hack all of the John Deere tractors and McDonalds Ice Cream Machines.

A Machine That Tells You You're Wrong Sometimes

If you try to come to the machine with weird vaccine misinformation, flat earth conspiracy nonsense, or white genocide theory9 it will politely but firmly tell you that you are wrong.

It's often a little too gung-ho about feeding narcissists a big heaping helping of their own worst instincts and letting people accomplish their most terrible dreams - it's possible to route around "don't do that" and end up somewhere terrible.

But, maybe, an eternally patient companion that will tirelessly explain that the earth is, in fact, round - could be a good thing? I feel like I've actually noticed a little less virulent misinformation out there lately and I wonder if folks aren't running some of this stuff by a machine that's telling them "no, alkaline water can not meaningfully affect your body's pH, nor would you want it to". 10

In The Land of the Blind, The One-Eyed Man is King

Maybe "coding" as a career is over, but "understanding how things work" might still be in style a bit longer.

At least for the next little bit, in a world where code multiplies tenfold and all you need to interact with it is the ability to read, and write, and think methodically, like an adult - well, I can do all of those things. I can do those things very quickly. In a world where the interface to everything is writing, reading, and processing information-dense text, the fact that I'm only a little bit slower than an LLM at that - is probably at least a little bit of an advantage. I hope.

Change Is Eternal, But People Keep Being More or Less People Shaped

There are many predictions for how this can go, for where this is all headed. Some of them are super grim and dystopian, some of them ridiculous - anybody who claims to know the future is either a liar or an astrophysicist11.

The world of today would be utterly alien to someone from 1996 who'd missed the intervening 30 years. And yet. I baked bread, just recently, and baking bread remains satisfying and pleasant, it smells nice and tastes good at the end. Folks will get together and drink, and eat, when they can.

Everything just keeps happening, regardless.