Update : Claude 2.1.30 and PDF saves the tokens
“Vibe Coders” vs. Augmented Developers: Let’s Stop Mixing Everything Up!

“Vibe Coders” vs. Augmented Developers: Let’s Stop Mixing Everything Up!

Artificial Intelligence has fundamentally disrupted how we produce code. Today, anyone can generate a complex function—or even a complete application—in a matter of seconds. But this ease of use has given birth to two diametrically opposed approaches: blind “vibe coding” and AI-augmented development.

Understanding the difference between the two isn’t just about semantics: it is the line between a sustainable project with optimal performance and insurmountable technical debt—or even a production disaster.

The New IDE

To understand what’s at stake with AI today, we have to go back in time. I’m old enough to remember the era when purist developers coded entire projects in Notepad (remember UltraEdit?) or rudimentary text editors. When the first IDEs (Integrated Development Environments) emerged with smart autocompletion, syntax highlighting, and automated refactoring, part of the community cried foul: “Developers are going to get lazy! They won’t know the syntax anymore!”

The reality? The IDE didn’t replace the developer’s brain. It simply automated the useless cognitive load (remembering a semicolon or the exact name of a method) to allow the developer to focus on architecture and business logic, avoid errors, and save time. In short: to increase productivity.

Today’s AI is the new IDE. The problem arises when we confuse the assistance tool with the pilot.

The Trap of “Vibe Coding”

“Vibe coding” (a term I find quite negative) consists of sending vague requests to an AI (Claude, ChatGPT, Gemini, or GitHub Copilot), copy-pasting the generated block of code, and testing it. If it crashes, you copy the error, send it back to the AI, and repeat until it “works.” Mediocre developers already had this habit of indiscriminate copy-pasting with sites like Stack Overflow or Reddit.

The dangers of this approach are easy to see:

  • Code Dispossession: The developer doesn’t understand what the code does; they simply accept it because it “compiles.”
  • Security Vulnerabilities: AI can hallucinate or suggest obsolete and vulnerable practices.
  • The Maintenance Nightmare: Without a global vision of the architecture, the project becomes a Frankenstein’s monster (the infamous “spaghetti code”). As soon as a complex bug arises, no one on the team will be able to debug it without starting from scratch.

Take Claude, for example: without clear directives, it becomes the king of code duplication and risks generating an unmanaged architecture.

AI Engineering: Augmented Development

Conversely, what I call “AI development engineering” is augmented development. This consists of using AI as an extremely fast junior pair-programmer, supervised by the developer who retains the roles of architect and pilot.

An augmented developer:

  • Deconstructs the problem before querying the AI;
  • Reads and critiques every single line of generated code;
  • Uses AI for specific tasks: generating unit tests, writing boilerplate code, or explaining an obscure code block;
  • Maintains control over software architecture, design patterns, and security.

Effective AI Use Requires Team Rules

For a team to move from the risk of “vibe coding” to the power of augmented development, clear governance rules are needed. Here are a few essential ideas:

1. The Absolute Rule: “You generate it, you maintain it.”

This is the Golden Rule. Every developer is 100% responsible for the code they push to the repo, whether it was hand-typed or AI-generated. In the event of a bug, the excuse “Copilot did it” is inadmissible. This forces you to read and understand the code before validating it.

2. Human Responsibility

No code is committed under the pseudonym “Claude”; the developer is responsible for the work. A developer must read and understand every generated line. If they don’t, it must be rewritten. Unmanaged code has zero value. This is often a great opportunity to learn new things. If you ask, “Why did you choose this implementation?” and the author can’t explain it, the code must be rejected.

3. Share Best Practices

Decide if AIs should have access to certain servers or files. For example, it seems essential to share a CLAUDE.md file that prohibits reading configuration files containing passwords or denies the AI access to staging or production servers.

4. Context Sharing and Prompt Standardization

Using AI well is a skill that should be shared. Create a communication channel (e.g., Google Chat, Slack, Teams) or internal documentation dedicated to the best prompts for your tech stack. Provide the AI with global context (linter rules, project architecture, frameworks) via config files or predefined system prompts so the tool generates code that meets team standards, rather than generic code.

5. Limit Usage for Juniors (The Learning Paradox)

This is the hardest part but also the most essential. A junior who uses AI for everything risks never building the logical foundations necessary to become a senior.

  • A new developer must show you what they can do without AI. You aren’t hiring an AI; you’re hiring the pilot’s skills!
  • Encourage juniors to use AI as a tutor (“Explain this concept to me,” “Why is my code crashing?”) rather than a solution generator (“Write this function for me”).

In Conclusion

Just as the IDE transformed developers from “code typists” into software designers, AI is pushing us to become true Technical Directors of our own applications.

“Vibe coding” is risky entertainment; augmented development, framed by strict team rules, is the only real future for our profession. When mastered and controlled, augmented development allows us to go further and learn faster. Unlike vibe coding, it is a sustainable practice that guarantees stable application code in production.

Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.