For greenfield side projects and self contained tasks LLMs deeply impress me. But my day job is maintaining messy legacy code which breaks because of weird interactions across a large codebase. LLMs are worse than useless for this. It takes a mental model of how different parts of the codebase interact to work successfully and they just don't do that.
People talk about automating code review but the bugs I worry about can't be understood by an LLM. I don't need more comments based on surface level patter recognition, I need someone who deeply understands the threading model of the app to point out the subtle race condition in my code.
Tests, however, are self-contained and lower stakes, so it can certainly save time there.
function bar() { // Add the rest of your code here }
And barely manages to grasp what's going on.
I feel like, if a prompt for a function implementation doesn’t produce something reasonable, then it should be broken down further.
I don’t know how others define “vibe-coding”, but this feels like a lower-level approach. On the times I’ve tried automating more, letting the models run longer, I haven’t liked the results. I’m not interested in going more hands-free yet.
Rarely, I'm able to get the AI to generate function implementations for somewhat complex but self-contained tasks that I then copy-paste into the code base.