And brilliant for the expert in a particular language who can read the code very quickly
But for everyone else, adds some anxiety as multiple files get changed, hundreds of code lines appear and so on.
The decision is whether to go slower and be thorough or vibe code and trust it won’t back fire through a critical bug
Majority of devs are like all other employees, they get paid to work, are put under pressure to deliver faster and so coding agents allow them to clock out at 5pm and go home to follow their actual interests and hobbies
There are ways to use the tool better and worse, the worst is to blindly fire off the agent and commit the changes without reading them: This *only* works for very small projects, though it often *does* work for those projects.
For bigger projects, you need to use (and enforce use of) the right architecture, and read pull requests rather than saying "LGTM" and clicking accept. Pick the right way to split the project up into discrete components with clear boundaries between them, make sure that the LLM's commits never introduce surprise coupling outside those boundaries, and make sure the unit tests aren't ridiculously brittle, they can be OK.
https://www.youtube.com/watch?v=grPtnrOTP_4
"Make sure to read the commits" seems to be enough for your points 2/3, at least for me. But everyone thinks a bit differently, YMMV. It also means I almost immediately catch most of the (20%? 10%?) of the time the LLM does something wrong, though not all of them.
I find I still have deep focus. If anything, the problem for me is they're so addictive I am tempted to keep working and working rather than rest, a problem I last faced over 20 years ago when I was working on a personal project that ended up not going anywhere.
Besides, no matter how good our design docs are, AI just can't grasp the business context outside of what's written. Plus, AI loves to modify things using band-aid patches, making it incredibly hard to keep the code clean. The design logic often gets messy, and you ultimately lose true logical consistency.
My current workaround is to provide detailed architecture and design principles upfront, and also add comments at the top of each file to clearly define its scope. That seems to help a bit.
But my biggest headache right now is that AI struggles to adapt to the latest APIs—it actually likes to revert the new APIs I've just updated back to the older, deprecated ones.