Is Software Solved?
Skip to content
The loop is almost instant now<br>Before LLMs, the loop was slow. A developer wrote code, ran it, watched it fail, figured out what to change, wrote tests, reviewed their own work, had someone else review it, pushed it to a dev environment, waited for QA, waited for a stakeholder to sign off. This took at minimum days. Sometimes weeks.<br>Developers weren't writing every line from scratch even then, they used libraries (other people's code). But using a library meant learning it, or at least reading the docs. And choosing one meant comparing several alternatives and choosing badly meant living with the consequences for years. Pick the wrong ORM and you can mess up your query performance in a future where your app is handling so much more data.<br>Now this iteration loop runs in hours within Claude Code. Sometimes minutes. The model writes the code, runs it, sees the error, fixes it, writes the tests, reviews its own work, and hands you something that works. The entire pipeline that used to require four people and a few standup meetings now happens inside one context window.<br>This is of course amazing and still feels magical. I'm not going to pretend otherwise.<br>LLMs are software DJs<br>Here's the thing about that loop: it isn't neutral. The model isn't composing. It's remixing.<br>Every model has taste. It has libraries it reaches for, patterns it defaults to, a way it structures tests, a certain style for error handling. You might have seen some research on this, I'll link you to one such experiment here.<br>So, what we have here really is a DJ. It has a box of records it likes and a feel for how they go together. It is good at mixing and matching code based on its own experience (training) with it. Therefore a coding agent, just like a human developer, is also, in the strict sense, biased.<br>Claude Code has preferences it did not choose and, left alone, will never argue against. Ask it to make the counter-case and it will, competently. But it won't interrupt you or judge its own decisions unless asked.<br>One could object that humans converged too. We all learned from the same Stack Overflow answers; "idiomatic" was always a polite word for "what everyone else does." True, but a million developers converging loosely is a different statistical object from a handful of models converging hard. When a million people copy a pattern, they introduce a million independent mistakes on top of it, because their starting point is never the same. Each LLM model that comes out has the same starting point (training weights) worldwide, regardless of who it interacts with.<br>And here's the eerie part:<br>Globally, we have fewer than ten DJs. Count the models that are actually good enough to trust with production code. Claude Code, Codex, Gemini, Kimi, umm... I'm already struggling to name more without Googling 🫠<br>What a development team used to be<br>The beginnings of a new project were especially painful. Slow decisions were annoying, and in hindsight they look ridiculous. Three days arguing about a backend language. Two days picking an ORM. What a waste. We know now that you can just build the thing, and if it's wrong, build it again... The cost of iteration has collapsed far enough that wasting time choosing often costs more than the mistake. You can refactor things really fast.<br>But look at what was actually happening in those arguments.<br>You had the junior who wanted the new thing because it was new. You had the senior who distrusted anything that hadn't survived a decade in production. You had the mid-level developer over-applying design patterns because they'd just finished a book. Nobody in that room was right. The output was a compromise, and compromises are usually mediocre.<br>What came out of it, though, was culture. That company ended up on Postgres and boring Java. Another one ended up on Elixir because someone made a persuasive case at the right moment. A third bet on a home-grown solution, which mostly failed but sometimes produced gems like Rails.<br>Now let this sink in:<br>If DHH was building BaseCamp in 2026 in YOLO-mode using Claude Code, Rails would have never been invented. It would be a Next.js application hosted on Vercel.<br>Just kidding, he would never... But do you see what I'm getting at here?<br>The monoculture problem<br>Now run the extrapolation to the end. Say software is solved. Developers are mostly redundant, let go in waves, retrained into something else. The world's code is written by a handful of coding agents that just remix with what we've got so far. All the same libraries, same frameworks...<br>Imagine a future for a second where Claude is writing all of the following code:<br>Software that runs hospitals.
Software that runs the café on the corner.
Software that shoots down missiles.
Software that lets you order a taxi.
Software that flies a commercial airplane.
All of it built from the same set of training data, with the same biases, and more or less the exact same "engineering...