Look, by this time, most should already have realized that vibe coding or agentic coding is doing more harm than good. It is a great tool if you use it for debugging,code understanding , writing/refactoring a small unit of code because it speeds you up and help you learn. You're doing it right if llm helps you understand and write code faster but you must be the driver and be able to have a clear mental model of how the code works. If you just write spec and ask llm to implement and only look at the code when something goes wrong, you would quickly learn that the llm debt will grow exponentially and it is counter productive.
It works fine for some simple tasks, but it fails at harder tasks. My struggle is to have the discipline to use it a the right time. I tend to become lazier and lazier, deploying code that I don't fully understand.
What works: delegating non ambiguous tasks, let them happen in async, while supported by harness of preexisting automated tests, and established project conventions
What does NOT work: I have no idea how to do sth, and I hope agentic coding will solve my problem.
Think "Eisenhower matrix":
- X: Ambigous <-> Trivial
- Y: Can wait <-> Urgent
Urgent&Ambigous => Agentic Coding is useless, and an act of desperation
Can wait and at least non amibogus => Agentic Coding is perfect fit
My experience is that you still have to care about some of the internal details, currently. The models are not always the best at maintaining a coherent concept for separation of concerns, a balance of automated testing, etc. Within 5k loc I had to step in and do direct refactors as the pure vibe coding approach had devolved into slop.
I'm doing a very simple frontend and backend thingy. I'm basically vibe coding my own project management tool in the way I like it. I'm currently at 4000 lines of code and am beginning to get to the threshold that I can't take technical debt anymore and would need to restructure and refactor.
So yea, fair enough.
Though, the shift that the OP describes, yea I can see that. Writing tests has become way more important. Or well, it feels more important. From a testing perspective, we should see ourselves agents too (aka bug making machines), that's why you need tests. The silly bias I always had was "but I'm writing the code! It'll be fine, I won't make bug- oh... why can't I close my modal window when I click on the x symbol?"
But yea, the apparent need for testing is definitely much more there. The need for architecting it well is also there as LLMs still seem to be a bit in tutorial land with that one. There are a few more things like that.
Look, by this time, most should already have realized that vibe coding or agentic coding is doing more harm than good. It is a great tool if you use it for debugging,code understanding , writing/refactoring a small unit of code because it speeds you up and help you learn. You're doing it right if llm helps you understand and write code faster but you must be the driver and be able to have a clear mental model of how the code works. If you just write spec and ask llm to implement and only look at the code when something goes wrong, you would quickly learn that the llm debt will grow exponentially and it is counter productive.
It works fine for some simple tasks, but it fails at harder tasks. My struggle is to have the discipline to use it a the right time. I tend to become lazier and lazier, deploying code that I don't fully understand.
I have to externalize the mental model so the AI can operate with it.
Just as writing clarifies thinking, so does this. That's not a cost, that's a prudent investment.
What works: delegating non ambiguous tasks, let them happen in async, while supported by harness of preexisting automated tests, and established project conventions
What does NOT work: I have no idea how to do sth, and I hope agentic coding will solve my problem.
Think "Eisenhower matrix":
- X: Ambigous <-> Trivial
- Y: Can wait <-> Urgent
Urgent&Ambigous => Agentic Coding is useless, and an act of desperation
Can wait and at least non amibogus => Agentic Coding is perfect fit
My experience with coding by chat bot is about the same as my experiences welding by ear and driving by touch.
I'm sure there's people out there doing it but I don't feel like it's a particularly good use of my time.
My experience is that you still have to care about some of the internal details, currently. The models are not always the best at maintaining a coherent concept for separation of concerns, a balance of automated testing, etc. Within 5k loc I had to step in and do direct refactors as the pure vibe coding approach had devolved into slop.
I'm doing a very simple frontend and backend thingy. I'm basically vibe coding my own project management tool in the way I like it. I'm currently at 4000 lines of code and am beginning to get to the threshold that I can't take technical debt anymore and would need to restructure and refactor.
So yea, fair enough.
Though, the shift that the OP describes, yea I can see that. Writing tests has become way more important. Or well, it feels more important. From a testing perspective, we should see ourselves agents too (aka bug making machines), that's why you need tests. The silly bias I always had was "but I'm writing the code! It'll be fine, I won't make bug- oh... why can't I close my modal window when I click on the x symbol?"
But yea, the apparent need for testing is definitely much more there. The need for architecting it well is also there as LLMs still seem to be a bit in tutorial land with that one. There are a few more things like that.