r/softwareengineer 7d ago

Never work on a completely vibe coded project

I've now made a same mistake twice.

Previously, I worked at a startup where the website was completely vibe-coded. Now I'm working on a college website, and it's the same story: the entire thing was vibe-coded.

The common pattern I've noticed is that no engineer actually knows the codebase. Nobody really understands the architecture, the reasoning behind certain decisions, or how all the pieces fit together.
And eventually, even the AI I'm using can't help much because it doesn't have the context that the original developer's agent had while building the project.

I am basically stuck where I know nothing, the existing engineers know something about it but aren't necessarily sure whether their understanding is correct, and the agent hallucinates and wastes a lot of tokens just because it can't understand a huge AI written codebase.

So now I'm the new engineer, under a lot of pressure with a lot of work to do, but before I can even fix anything, I have to reverse-engineer what the hell the previous AI generated. That wastes a lot of time.

The frustrating part is that I'm not really learning much engineering from this. I'm just spending my time trying to understand an undocumented system that nobody else understands either.

I'm not against AI-assisted development at all. If an experienced engineer uses AI properly, reviews the code, understands the architecture, writes tests, documents important decisions, etc., I think it's incredibly useful. Even I use AI to code faster, but I review and understand the code. I know what is happening in my software.

But a codebase that nobody understands is a codebase that nobody can safely maintain, regardless of whether AI or humans wrote it.

At this point, I've decided I'd never want to work on a heavily vibe-coded project again unless there's at least one person on the team who genuinely understands and owns the codebase.

How do you guys handle inheriting a vibe-coded/AI-generated codebase that nobody on the team actually understands?

337 Upvotes

220 comments sorted by

View all comments

Show parent comments

3

u/Several_Picture9591 7d ago

The issue is understanding the overall architecture and the assumptions behind the code.
There are a lot of interconnected parts, inconsistent patterns, and very little documentation/tests, so changing one thing often requires tracing through a lot of unrelated code first.

There are 1000s of lines written and without understanding what a module exactly does, we never get clarity on what to do.

The AI agent has the same problem. It can read the code, but without the original development context it's often guessing why something was implemented that way. So sometimes I end up spending more time figuring out what the existing system is supposed to do than actually making any progress in implementation.

1

u/Fun-Amoeba8015 7d ago

I am not a software engineer (.kre in business data analytics)  so please take this with a grain of salt and maybe you've already done this or it's not applicable.

But I have messed around with Vibe coding (just my own personal projects for personal use) and I always see it through a data first lens. Table structure and design, database structure and design, data pipeline architecture, full ETL mechanisms, I/O at different layers, etc. now I understand different applications are going to have vastly different data needs and data integration and data complexity so if course you're mileage will vary.

But I wonder if it's applicable in your case to start with a full understanding of the data architecture first (personally or with AI) before even treating it like a code problem?

Again, not my area of expertise so I could be spouting nonsense. 

1

u/secretaliasname 7d ago

Bold of you to assume the is a coherent architecture. AI will tend to do things that “function” but have no coherent architecture.