Any complex work has this logarithmic shape to it. The initial setup and the happy path comes together fast, more than enough for an impressive demo. But then… it gets hard. You start hitting the edge cases of reality - different ways errors can happen, performance at scale, confusing UX, lack of product cohesion etc. etc.
AI is compressing the first phase by orders of magnitude. You can do in a day what took weeks(and soon months). But the second phase hasn’t shortened by the same fraction. And with a sloppy phase one, the second gets longer or just never gets completed. So all you end up with is a new addition to the graveyard of “almost done” features and products.
The previous abstractions in software, Compilers, Frameworks(like Rails, React), AWS etc. abstracted away work you didn’t need to do anymore(in 99%+ cases). You didn’t need to understand TCP to deploy your site on Vercel.
AI abstracts away the thinking process itself, but this abstraction is leaky. We used to build a mental model of the system as a byproduct of the slow tedious work of wiring things together by hand. With AI, we get the output of this phase skipping the work, but in the process, trade away the intuition we used to build along the way.
So you reach what feels like almost-done in record time. But then you’re debugging code and systems you barely recognize. Your fixes are all guesswork often from prompting other agents. As these compound, you remain in this annoying cycle of patching one thing and breaking another. And the project enters this zombie state, perpetually close to done.
This is the counterintuitive thing I’m observing at a lot of places. AI can make the total time go up while making you feel wildly productive with days full of momentum. But you end up converging on something mediocre, just faster than before.
For most people, I worry that this trap will get worse before it gets better. As models improve, one would be able to offload more thinking and move faster (though not necessarily in the right direction). And even more can be done in that initial phase before hitting a wall. In the long term, the abstraction will stop being as leaky as it is today, which should help. But we’ll also get more ambitious, and the core problem would continue showing up with larger building blocks than code.
Related