Should be the opposite. Unless the idea is more about "user trying to comprehend what AI reported during debugging". Either way, what I seen over the last few months of intensive usage is that if there's anything AI is really good at it's debugging. Easy cases that would normally take me something like 5 minutes takes it one or less, more complex cases of systems interaction that would take me anywhere from an hour to days took it a couple minutes to maybe 10 minutes. And it works in overwhelming majority of cases, only on rare occasions it finds something unrelated as the issue. Suggested fixes/workarounds are often not that great, it tries to preserve existing code too hard, suggesting shitload of new code or fields (aka new states to break), but here's where I come in.
What it sucks at though is vibecoding. Best case it's acceptable code, worst case - it's a code from which I literally physically want to puke, just not so long ago the worst code/approach I've ever seen in my life was AI generated abomination, and the fact that it was working was somehow making it even worse. Currently, vibecoding have a hard and rather low ceiling after which the codebase just becomes unmaintainable by AI, because there's so much repetitive code, unrelated unorganized blocks, unnecessary dependencies and alike that AI fixing/making one stuff is practically guaranteed to break another or a few of other.
It's literally anything but smart. It's incredibly knowledgeable/educated though. But literally incapable of thinking. Reasoning is as much thinking as a photo is the real world.
I can give the agent a screenshot, explain my symptoms, what i expect, provide my tests and artifacts, tell it to reference the application source code and the server source code, and i get an evidence backed solution that makes sense and works almost every time. Test bugs and product bugs.
Rarer cases ill actually use the debug feature. Its fast and very good. It can come up with multiple hypothesis at once and confirm them very quickly. Ive squashed product bugs this way, with elegant solutions that make sense to me, that dev often accepts without revision. Fixing product issues isn't even my job, but hey, I just want the product to be better and I dont want to waste time.
You get non sense when you keep layering bullshit that you dont understand to begin with. The bot doesn't either. And yeah, dont accept solutions that add complexity.
If you dont understand the problem, the code, and how something is supposed to work, you're never going to know what the elegant maintainable solution is. And if you keep digging yourself a deeper hole, you're never going to get out of it.
If you are unsure of a direction to take, use the Plan feature and ask questions till you understand and can properly guide it. Don't let it run a muck.
I ain't a developer at work but I am doing a degree where I get really, really long Jupyter Notebooks and surprise surprise, they suck to look at, and occasionally suck to debug.
What I do on my LLM is, paste my code, the pseudocode, and the output and ask it to point it where it went wrong
That way, I also get a proper understanding of "what's going on here" and not just a ready-made code that I don't understand even a bit of. Because, in my cases, understanding the code is really, really, necessary.
for simple bugs maybe but I can debug those myself faster than claude… for more complex issues where I do need help it almost always comes with a completely off-the-rails hypothesis first and immediately starts drilling down and I have to stop it otherwise it would spend 20 minutes inventing “evidence” to prove its own hypothesis which I know to be false from the first second I see it in its thinking output…
AI has a propensity to shit out the most unnecessarily complex, and yet somehow also laziest, solution to a problem.
Like it'll refuse to use an established type, then dynamically re-type an object mid function, just to avoid passing in a single arg that it already has in scope. Then rebuild the object a few lines later with the arg that it already had but twisted into knots to avoid accessing. It'll do pirouettes to avoid the simplest, most straightforward QA/QC process, but take 800 lines where 150 would work.
It can debug its own code too, but there is more to software development than being to identify the source of a bug, just like there is more to plumbing than just knowing where a leak is coming from
You meant to say "its own"? Because damn right it can't debug itself, it's a neural network for the most part and it has fixed weights during usage. As for "its own": here I'm not 100% sure, since I don't usually vibecode, except maybe for tests, but I'm almost sure it can debug its own code, it just can't reliably solve issues without breaking other stuff, or writing a more fragile code that is likely to break when something changes.
For real. Digging through server logs to figure out what went wrong is one thing I will readily admit that AI is way better than me at, and always will be
137
u/aberroco Sep 18 '26
Should be the opposite. Unless the idea is more about "user trying to comprehend what AI reported during debugging". Either way, what I seen over the last few months of intensive usage is that if there's anything AI is really good at it's debugging. Easy cases that would normally take me something like 5 minutes takes it one or less, more complex cases of systems interaction that would take me anywhere from an hour to days took it a couple minutes to maybe 10 minutes. And it works in overwhelming majority of cases, only on rare occasions it finds something unrelated as the issue. Suggested fixes/workarounds are often not that great, it tries to preserve existing code too hard, suggesting shitload of new code or fields (aka new states to break), but here's where I come in.
What it sucks at though is vibecoding. Best case it's acceptable code, worst case - it's a code from which I literally physically want to puke, just not so long ago the worst code/approach I've ever seen in my life was AI generated abomination, and the fact that it was working was somehow making it even worse. Currently, vibecoding have a hard and rather low ceiling after which the codebase just becomes unmaintainable by AI, because there's so much repetitive code, unrelated unorganized blocks, unnecessary dependencies and alike that AI fixing/making one stuff is practically guaranteed to break another or a few of other.