Member-only story
The Real Bottleneck Is Still Not Just the Code
--
The uncomfortable truth is that we have finally made code cheap, and in doing so, we have exposed everything that was always expensive.
In the first part of this series, The Real Bottleneck Is Not the Code, the argument was simple: writing code was never the limiting factor in building systems. The second part, The Real Bottleneck Is Still Not the Code, pushed that idea further, showing how even as tooling improved, the constraint did not move.
What has changed now is not the nature of the bottleneck, but its visibility. When code can be generated in seconds, every gap in understanding, every unstated assumption, and every missing constraint surfaces immediately, often in production.
This third part is about that gap. Not in theory, but in the concrete sense of what we fail to specify when we believe “the requirements are obvious”.
The Illusion of Completeness
There is a recurring pattern in teams adopting LLM-based development. The first iterations feel almost magical. A prompt produces working code. The second iteration refines it. The third introduces edge cases. Somewhere around the fifth, things begin to degrade. Not because the model got worse, but because the implicit assumptions ran out.
At that point, the system is no longer under-specified in obvious ways. It is under-specified in the ways that matter.