What does it really mean to build good software? AI makes the process look trivial. Even developers overlook some essential aspects of it while reaching for new tools every day. But this has to start much further upstream.
I don’t want to give up AI in my daily work anymore. It is an incredible relief and an enormous productivity boost. In fact, I effectively no longer write code myself. Without a bad conscience. Because I make sure a high-quality solution still comes out at the end.
Nothing More Than Automation
At bottom, AI is nothing more than automation. What makes it special is that it can solve unknown problems. In the end, though, it only takes over what is unpleasant. But if your identity consisted exclusively of those tasks, you have a real problem very soon.
The X-Ray Years
Right now, using AI looks a lot like the early attempts after Wilhelm Röntgen discovered the X-ray. Entire “films” were shot under far too much sustained radiation, just to see, say, how drinking water travels through the body. Only later did people realize that this was probably not the healthiest use of the technology.
We Have Been Here Before
In recent years, I have seen the same phenomenon with the cloud and with frameworks. Two unrelated topics with the same consequence: users unlearned the basics—or never got to know them in the first place. In the web world especially, with its countless bootcamps, this was a real problem. Their graduates often struggled afterward to find their footing outside the environment they had trained in.
Back to the Fundamentals
AI now seems to make everything else superfluous. And this is where something I have always said really comes into its own: focus on the fundamentals. In software, sound fundamentals include, above all, requirements analysis. And if you look at how modern software comes into being, the agile, incremental refinement process is what matters most.
Thanks to AI, you can now commit to that completely and leave the unpleasant typing to the agent. One step at a time. Until, in the end, you have software that reliably solves a concrete problem.
A Wish Is Not a Requirement
And yet, far too much is still expected. That you basically just have to voice a rough wish, and the AI has a perfect piece of software ready at the end of its factory line. It all looks so easy, judging by the countless clones of well-known software.
Technically, AI can do all of it. No question. What it cannot do (yet) is judge what a piece of software actually has to be able to do. Software is only a concrete way of solving a problem. The problem has to be known, and the solution has to fit it. Anyone who has over-engineered their solutions to this day will feel right at home in an unmanned AI factory. It delivers endlessly. Never tires, and ships one feature after another.
The art of software, however, has always been to focus on the essential. An application with a few clear functions is worlds ahead of a generic solution. And AI changes nothing fundamental about that. It just makes it much easier to build bad software again.
Clear Input
Agentic development needs input. Clear input. You might expect the agent to ask me everything relevant. But what is relevant? Don’t we end up with nothing but bland uniformity? As of today, I would say yes. Individuality would be lost. But more importantly: if you buy into that way of working, software developers have effectively no job left.
A Computer Scientist, Not a Code Writer
I have never seen myself as a developer, but as a computer scientist. And that does include building software. But it includes so much more. Among other things—but not only—infrastructure, user interfaces, and how data is held. These are often decisions that have to be made deliberately, and decisions that may well change over time.
Presumably, AI will at some point be able to make quite decent decisions on its own. But from that point on, it has to be deployed and connected almost seamlessly in every area. So that it knows, for example, how software is operated and which target platforms are required. How users work, and how real operation affects things like availability and cost.
Finally Center Stage
That process can now finally move center stage. In the past, people too often just started coding. Now we can return to the absolute basics of software development and sketch proper requirements. Not fictional ones, but ones with real value. And finally accept that developing a feature never really ends. That with the productivity gain, we can now ship countless increments in a single day, without knowing at the start where we will actually end up.
Further Exploration
- Solving Problems Before Writing Code—why requirements come before code
- Avoiding Over-engineering and Unnecessary Dependencies—where the endless feature list leads
- Why Extreme Programming Matters: More Than Ever—the practices AI makes urgent again
- Agentic Coding, Not Vibe Coding: Delegating the Typing, Keeping the Architecture—delegating the typing, keeping the architecture
- Beyond the Tool Trap: Rediscovering Real Innovation—why new tools are not the answer
- The Evolution of Computer Science: From Mysticism to Pragmatism—why the fundamentals still decide

