Vibe coding—describing what you want and accepting the code a model generates without in-depth review—produces prototypes in hours and fragile systems in months. It's not an illegitimate technique: it's an excellent technique for exploring an idea and a dangerous one for building something a company will depend on.
The confusion between the two is the problem. What comes out of a user-generated product session looks very much like a product: it has an interface, it responds, it does what was asked of it in front of the person who asked it. The difference with a real product isn't in what it does, but in everything that hasn't been decided: what happens when it fails, who can see what, how it will be changed in a year, and who understands why it's written the way it is.
|
Dimension |
Prototype generated |
System in production |
|---|---|---|
|
Aim |
To demonstrate that the idea is possible |
Operate reliably for years |
|
Errors |
They are corrected by regenerating |
They are fixed without breaking the rest |
|
Data |
Tested, clean |
Real, incomplete, contradictory |
|
Security |
Out of reach |
Permissions, encryption, auditing |
|
Maintenance |
Not applicable |
The 60-70% of the total cost |
|
Ownership of the criterion |
The model determined the structure |
Someone decided on it and knows why |
The last row carries the most weight in the medium term. When no one has decided on the structure, no one can defend or evolve it. It becomes a text that must be interpreted every time it's touched, and that interpretation takes time with each future change.
This isn't just an industry hunch. GitClear, analyzing 211 million lines of code between 2020 and 2024, found that refactoring work—reorganizing existing code to make it understandable—fell from around 25% of total change in 2021 to less than 10% in 2024, while copy-pasting rose from 8.3% to 12.3% and duplicate blocks increased eightfold.
Google Cloud's 2024 DORA report, based on a survey of approximately 39,000 professionals, measured the impact on delivery: a 25% increase in AI adoption correlated with a 1.5% decrease in throughput and a 7.2% decrease in stability. In the same study, 39.2% of developers reported little to no confidence in the generated code.
The pattern they both describe is consistent: more is produced, the same amount is reviewed, and less is reorganized. The consequence doesn't appear in week one; it appears when something needs to be changed.
It would be foolish to forgo a tool that significantly increases exploration speed. These are the applications where vibe coding is clearly the right choice:
In all four cases there is a common feature: the result does not have to survive. The moment someone says "this is almost working, let's put it into production", the use has changed category and the criteria should change with it.
Before putting something generated in this way into production, it's advisable to answer this:
A prototype that responds to five questions is no longer a prototype: it's a system that was built quickly, which is exactly what we're aiming for. The problem was never speed.
The pattern we see in audits is always the same. A small team builds in three weeks what would have taken three months. Management reasonably concludes that development has been made cheaper. More initiatives are approved using the same criteria.
Six months later, each change takes longer than the last, nobody wants to touch two specific modules, and the estimates are no longer reliable. This is the clinical picture of technical debt, and we have discussed it in detail in The bottleneck is once again architecture.
What is striking is that the diagnosis rarely points to the origin, because the initial speed was real and everyone remembers it as a success.
The pattern we see in audits is always the same. A small team builds in three weeks what would have taken three months. Management reasonably concludes that development has been made cheaper. More initiatives are approved using the same criteria.
Six months later, each change takes longer than the last, nobody wants to touch two specific modules, and the estimates are no longer reliable. This is the clinical picture of technical debt, and we have discussed it in detail in The bottleneck is once again architecture.
What is striking is that the diagnosis rarely points to the origin, because the initial speed was real and everyone remembers it as a success.
There's no need to choose between generating quickly and building well. The two phases must be separated, and you must be explicit about which one you're currently in.
Exploration phase. Generate whatever you want, without thorough review, with fake data, and without thinking about maintenance. The goal is to learn.
Decision point. Someone declares that the idea is valid. This is where the decision that almost no one makes is made: What has been explored is thrown away. What is preserved is the knowledge, not the code.
Construction phase. The architecture is defined, the data model is decided, the contracts are established, and then assisted generation is used, now within a structure decided by a person.
Throwing away the prototype seems like a waste, but it isn't: the prototype has already served its purpose, which was to answer a question. Preserving it is what transforms an exploration tool into the foundation of a building.
This separation is the reason why in TCG-SAF™ architecture precedes construction. Not for ceremonial reasons: because it's the only way to utilize generation speed without inheriting the disorder.
It's the practice of generating software by describing what you want and accepting the code produced by a model without thoroughly reviewing it. It's very effective for exploring ideas and building prototypes, but problematic when the result is deployed to production without redesign.
Only if it answers five questions: can someone explain why it is structured this way, are there tests that detect regressions, is it defined what data it touches and who can see it, is there a record and a mechanism for reverting to normal operations, and is there someone who can maintain it within a year.
The data points to a shift in patterns rather than a direct worsening. GitClear documented that refactoring fell from approximately 25% of total change in 2021 to less than 10% in 2024, and that duplication increased eightfold. DORA measured declines in throughput and stability in 2024 as AI adoption increased.
To validate an idea before investing, explore interface alternatives, create disposable internal tools, or learn a new domain. The common feature is that the result doesn't need to survive.
Separate the phases: preserve the knowledge and discard the code. Then define the architecture, data model, and contracts, and reuse assisted generation within that structure decided by a person.
Because the initial speed is real and is remembered as a success, while the cost becomes apparent when something needs to be changed: changes take longer and longer, there are modules that nobody wants to touch, and estimates cease to be reliable.
Do you have something in production that started as a prototype? Our technical audit tells you in 10 business days, at a fixed price, what can be kept, what needs to be restructured, and what is costing money each month. Request the audit →