AI Writes the Code, but Who Owns the 2 AM Alert?
At 10:47 PM, a backend colleague threw a requirement at AI:
"Add a coupon capability to the order interface. Reuse existing authentication, add unit tests, don't touch the payment link."
A dozen or so minutes later, AI produced a branch: the interface was there, the table structure was there, and the unit tests were green. It even added interface documentation on the side, and the PR description was written more properly than many people's.
This is no longer unusual today. Agent tools like Claude Code, Codex, and Cursor are pushing development from "ask a question, add a snippet" to "give a task, deliver a result." Reading repositories, checking documentation, modifying multiple files, running tests, and submitting PRs have become daily experiences for many developers.
What really made people pause was the colleague's next sentence:
"It writes so fast, what exactly should I be looking at?"
This is not a question about tool proficiency. It almost points to the anxiety of all technical people in the AI programming era: if code can be generated in batches, will programmers become the last person responsible only for clicking "merge"? If we don't read every line, how do we know it hasn't planted a landmine? If we still have to read line by line, where is the efficiency AI brings?
I increasingly believe that what AI programming truly changes is not the speed of writing code, but the meaning of the word "responsibility" within a software team.
The faster code is generated, the less engineering judgment can be skipped
Let's start with the conclusion: AI is already strong enough that no technical team should treat it merely as auto-completion; but it is still far from strong enough to be treated as a "digital employee" that requires no management.
The problem is that AI's capabilities are too much like an efficient colleague. It can look up information, mimic project style, explain errors, and supplement tests. You can easily fall into an illusion from the first round of results: since it does things so completely, do I just need to accept the results?
But the most troublesome part of software engineering was never about "writing the correct code."
It lies in the parts invisible on the surface of the code: how to calculate the amount when a coupon and a refund occur simultaneously; if a message is delivered three times repeatedly, will inventory be deducted three times; after an external dependency times out, is the data being retried, degraded, or silently discarded; after a new table goes live and the field design is found to be wrong, can it be rolled back; will a seemingly harmless query drag the database to death during peak hours.
These problems are not mysterious. Everyone who has worked on a live system has encountered them. It's just that before, they were hidden in the oversights of manual development; now, they may be spread by AI at a faster speed to more files and more services.
This is precisely the most fundamental difference between Agent programming and traditional code completion. When a completion tool makes a mistake, it's usually a piece of code that is wrong; when an Agent makes a mistake, it could be an entire task chain going off track under a seemingly reasonable plan.
In the "Agentic Coding Trends Report" released by Anthropic in early 2026, this shift was described as AI migrating from an auxiliary tool to a delegable collaborator. This judgment holds no suspense. The suspense lies in whether, when "delegable" becomes a reality, we are ready to articulate tasks clearly, draw boundaries clearly, and perform acceptance solidly.
AI excels at execution. Engineers are responsible for judging what is worth executing, and what happens if the execution goes wrong.
The two words "it runs" might be the most dangerous praise in AI programming
Vibe Coding is very popular, and not by accident.
Speaking a vague idea out loud and seeing the interface, APIs, and data flow within minutes is indeed addictive. Internal tools that previously required scheduling, meetings, and waiting for resources can now be prototyped by a single person. Business colleagues who were previously stuck on "I don't know frontend" or "I don't know how to script" have also gained the opportunity to turn problems into products for the first time.
This is not a capability to be mocked. It has genuinely lowered the barrier to creation.
But I have also seen another scenario: a product with a beautiful page and demonstrable features started showing duplicate data two weeks after launch; another week later, users found they could see information they shouldn't; finally, the team discovered no one knew why that permission logic was written that way, because the entire intermediate process from requirement to code was "handled by AI for me."
The problem is not that the code came from AI. The problem is that the team mistook "it runs" for "it can be delivered."
When making a prototype, the most important thing is to verify "is this requirement worth doing?"; when entering production, the most important thing is to verify "can it survive anomalies, concurrency, attacks, and changes?" These two types of work do not require the same set of standards.
So I am not against Vibe Coding. On the contrary, I think it should be used more seriously:
It is suitable for exploring products, validating solutions, generating internal tools, filling in tests, and handling changes with clear boundaries; when it starts touching user data, amounts, permissions, payments, and core business rules, the team must put it back into the engineering process. There must be code review, automated testing, security scanning, release gates, and a change record that can find the responsible person.
This sounds very "slow." But what is truly slow is never running one more test, but spending two weeks after launch explaining an accident that could have been avoided.
In the future, the most valuable thing is not whether you can write Prompts, but whether you can give AI the correct context
Over the past year, everyone has collected many Prompts: how to make AI write more elegantly, how to make AI think step by step, how to make AI automatically fix bugs.
These techniques are certainly useful. But after entering a real project, you will find that what determines the result is often not that prompt sentence, but what the Agent knows before it starts working.
Does it know the domain terminology of this project? Does it know that a certain interface, though old, is depended on by three downstream systems? Does it know why it's better to make one more query here than to read the cache? Does it know which piece of logic absolutely cannot be touched? Does it know what "tests passed" actually means in this repository?
The same model, placed in a repository with clear directories, trustworthy documentation, and complete tests, behaves like a very responsive new colleague; placed in a repository where conventions are scattered in chat logs, dependencies bite each other, and no one dares to touch anything, it becomes an abnormally confident stranger.
This is the most easily overlooked cost of AI programming: it hasn't eliminated historical baggage, it just exposes historical baggage more honestly.
Before, when the code was messy, senior engineers could barely hold on with memory and intuition. Now, if you hope for an Agent to truly speed up the team, you have to turn those rules that only exist in someone's mind into engineering assets that can be read, verified, and inherited.
Architectural decisions must be written down, interface contracts must be written down, counter-examples of key business logic must be written down, and lessons from live incidents must also be written down. Not to make the documentation look good, but so that the next person, or the next Agent, doesn't have to rely on guesswork.
A Prompt is a one-time instruction; context is reusable organizational capability.
What we fear is perhaps not AI writing code, but suddenly not knowing what else we can rely on to prove our value
There's no need to pretend this part is easy.
For newcomers, the anxiety is concrete: in the past, you could rely on writing CRUD, fixing small bugs, and following projects to practice basic skills; now that these tasks have been taken away by AI, will the growth path be cut off?
For people who have worked for a few years, the anxiety is also concrete: will the coding proficiency formed over many years become a skill that is no longer scarce within a few months?
For managers, the question is more direct: since one Agent can complete half a day's work in the past, should we hire fewer people and allocate fewer people?
These are not groundless worries. AI will indeed compress some repetitive labor and rewrite the entry-level tasks of some positions. Any answer that pretends "there is absolutely no impact" is not sincere.
But from the technical front line, value has not disappeared; it is moving towards places closer to results.
The truly scarce people today are those who can slice a vague business request into executable tasks; those who can see why "seemingly reasonable" code will fail under boundary conditions; those who can design monitoring, grayscale releases, and rollbacks so that the system still has room to maneuver when problems occur; and those who dare to make trade-offs among schedule, cost, performance, and security, and are willing to bear the consequences.
AI can generate hundreds of lines of code in a minute. It cannot judge for you whether a requirement should be done at all, cannot sign off on user data for you, and cannot stand up for you at 2 AM facing an alert and say "I will handle this."
Programmers will not lose their value because of code generation. What will truly be eliminated are those who define themselves only as "translating requirements into syntax."
Don't rush to put everyone on Agent; first, get this small thing right
If you are a technical lead, the least advisable thing to do is to hold a meeting, buy a batch of accounts, and then announce "from today, everyone does AI programming." That will only cause the team to quickly pile up a batch of code that is even harder to maintain.
A more pragmatic approach is to pick a pilot that can be closed within two weeks. For example: supplementing tests for legacy modules; turning repetitive operational configuration processes into internal tools; fixing a category of defects with clear boundaries; synchronizing interface documentation. It should allow rollback, have clear acceptance criteria, and have controllable business risk.
After the pilot ends, don't first count "how many lines of code AI wrote." This number is the prettiest and also the most meaningless.
It's better to ask four more uncomfortable questions: Has the delivery cycle truly shortened? Has rework decreased? Are defects discovered earlier, or are they postponed until they appear online? Has the knowledge that previously required senior colleagues to repeatedly explain been deposited into the repository and processes?
If the answers are yes, then expand the scope. Otherwise, fix the process first, then talk about scale.
Because the upper limit of AI is, to a large extent, the upper limit of the team's engineering capability. A team without tests, without boundaries, without a chain of responsibility, given even the strongest Agent, will only amplify problems faster.
Finally, don't hand over the steering wheel
AI programming will continue to evolve. Agents will read longer contexts, call more tools, and complete more complex tasks. In the future, we may write less code and review more plans, write more constraints, and make more judgments.
This is not pessimism, nor is it chicken soup for the soul. This is what software engineering should have been all along: code is only part of the deliverable; the real work is building reliable systems amidst uncertainty.
So, don't easily hand over the steering wheel just because AI generates fast; and don't pretend this change doesn't exist just because it makes mistakes.
Treat AI as speed, treat engineering as guardrails, and keep responsibility in human hands.
This is not the coolest posture, but it is the way for a technical team not to lose speed in a craze.
To what extent has your team let AI take over? Has it saved you time, or has it saved you thinking? Welcome to talk about a real scenario in the comments.
Top 1 from juejin.cn, machine-translated. The original thread is authoritative.
Requirements and troubleshooting phases