After two years of vibecoding, I’m back to writing by hand
Mo Bitar
98,838 views • 16 days ago
Video Summary
AI coding agents, while seemingly efficient and producing code that looks good in isolation, create a deceptive illusion of productivity. Developers often find themselves correcting and guiding the AI, inadvertently solving the problems themselves and experiencing dopamine hits from perceived validation. This leads to a codebase that may pass tests but is fundamentally unsound and unmaintainable, often described as a "psychedelic airplane." The reliance on these tools can erode a developer's understanding of their own codebase, highlighting the critical need for human oversight, responsibility, and value judgment in software development. One surprising fact is that despite AI's capabilities, the core of a developer's job, particularly the ownership and responsibility for shipping code, remains secure.
Short Highlights
- AI coding agents can create code that appears good in isolation but becomes "junk" upon closer inspection later.
- Developers often correct AI-generated code, inadvertently solving the problems themselves and receiving validation from the AI.
- AI success with boilerplate code can lead users to believe the AI fetched existing code, while complex code generation often fails, requiring developers to break down the task.
- Despite passing tests and having good coverage, AI-generated code can be unmaintainable and uninspectable, leading to a sense of dismay for developers.
- Human oversight, ownership, and value judgment are irreplaceable in software development, ensuring code is safe, reliable, and responsible for users.
Key Details
The Deceptive Nature of AI Code Generation [0:00]
- Code generated by AI agents like Claude or Codeex can initially appear reasonable and mergeworthy.
- Upon later review, often weeks or months later, the same code can seem like unintelligible "junk" or "gibberish."
- This phenomenon is often attributed to the AI's ability to produce code that makes sense in isolation but lacks overall coherence or long-term maintainability.
- The diffs presented by AI tools can be misleading, appearing acceptable without revealing the underlying issues.
"Something strange happens is you start to read the whole file from beginning to end and you're like what is this junk like what is this total Oh crap."
AI as a Tool Designed to Fool Users [0:57]
- A common take on AI coding agents is that they are designed to trick users into believing they are right.
- Situation 1 (Medium Complexity): AI hallucinates nonsense, but user corrections lead to improvements, creating a dopamine hit for the user who believes the AI did the work.
- Situation 2 (Boilerplate): AI mostly succeeds, leading the user to think it coded something when it simply fetched existing code.
- Situation 3 (High Complexity): AI fails, prompting the user to reduce the scope, eventually leading the user to believe the AI is capable of complex code while they are doing the structural work.
"Number two, it's a tool designed to fool you into thinking it's right."
The Evolution of Prompting and Specification with AI [3:09]
- Developers initially try audacious scopes with AI, which invariably fails, leading them to believe their prompt was too ambitious or ambiguous.
- The next step is to become a "better prompter" by writing more detailed markdown documents and specifications.
- However, even detailed specs can fail to anticipate all production environment needs, resulting in code that looks functional but is fundamentally flawed.
- The AI generates code that can fly "indoors" but is not robust for real-world conditions.
"It's impossible for a spec to have anticipated everything the solution would need to survive in a production environment."
The Illusion of Progress and Unmaintainable Code [05:14]
- Developers attempt long prompts with extremely miniature scopes, breaking down features into small pieces and automating them.
- Despite these efforts, the AI continues to trick users into thinking it has completed tasks, as the "deltas look good in isolation."
- Passing tests is not enough; the code may be functional and pass tests 100% consistently, but it can be "awful" and uninspectable.
- This leads to a situation where developers don't want to be responsible for or ship such code due to its inherent flaws.
"Passing tests, you find that ultimately passing tests isn't enough. You'll never really notice it. You'll never notice how bad it is."
The Critical Role of Human Responsibility and Value Judgment [07:46]
- The notion that code review will become obsolete is dismissed; human responsibility for signing off on code remains paramount.
- For critical applications like financial transactions, developers cannot rely on AI for safety and reliability judgments.
- There is a degree of liability taken on by developers to protect user data and ensure product integrity.
- This responsibility requires a deep understanding of the codebase, which is often lost when relying solely on AI-generated code.
"The job is ownership responsibility of signing off on the bridge blueprint reviewing the the load tests and like not going to vibe a bridge and then have cars go over it."
The Future of Software Development: Human Ownership [09:14]
- The future of software development lies not in AI replacing humans, but in humans maintaining ownership and responsibility.
- AI cannot decree value or make value judgments; these are uniquely human capabilities.
- Developers must be able to answer questions about code safety, reliability, and user data protection, which requires understanding the code itself.
- The idea of "full self-driving for software development" is described as delusional and dangerous.
- Developers who have extensively used AI agents over the past year are not scared of their jobs being taken.
"I think that give it a couple months, give it a year or two, give people enough time to actually peek at the codebase and people will start to wake up and realize, okay, we need the humans back."
Other People Also See