Comment by majormajor

2 days ago

Yep, I use it every day. IMO it's a bigger long-term productivity lever for someone who knows good code than it is for someone who doesn't look at the code (at least for systems that are expected to have lots of users).

For those sorts of systems, comments like this just remind me of people pitching UML + codegen-or-outsourcing 20 years ago.

> Users don’t care whether the code was written by AI or by hand, or which framework you used. They care that the product works.

> I say this as someone who has spent more than 20 years honing their craft as a software engineer.

I've worked with outsourced code, and I've worked with similarly-messy/not-forward-thinking first-iteration startup-MVP code that found success and now needs to do more and be more reliable while being cheaper to operate. It ain't pretty.

Once you start modifying working code that people rely on you quickly start to see that the code itself matters. There aren't enough tests in the world to get around this from a quality POV. And piles of copypasta turn into either inconsistent behaviors (bad from a user satisfaction POV) or a continual drag on velocity (bad from a product goals/competitivness POV). And I've run the tools on those sorts of "found MVP, now need to iterate fast" codebases, both on the messy parts and the better parts.

Sure, Claude can chew through the pain points of "let me find the ten copypasta versions of this and try to update them all" and chase down all the weird stupid bugs/janky things that that requires because each of them evolved separately much faster than a human can. But it's not gonna be as fast as it was at writing the first version, and it's gonna get more and more annoying. You hit the point where your agent is churning for hours and running more and more tests and inadvertently breaking more things trying to make the change in all those places, and making MORE code changes to fix those (and those are just the caught broken things the tests cover!).

It's wayyyyy faster and less potentially painful to have it make updates to a well-factored module. "You don't have to read the code" is all well and good until you have a 10k+ line PR that's 10x larger than it needs to be because nobody read the code in the past, and you realize that most of the relevant test files also changed substantially and you don't have that much known-unchanged permutation coverage of the actual things users do... how comfortable are you pushing the "ship it" button then?

> You hit the point where your agent is churning for hours and running more and more tests and inadvertently breaking more things trying to make the change in all those places

I've had this experience with vibe-coded applications written by Claude itself. For some reason, Claude doesn't seem to use any good practices unless I tell it to, and seems to require me to walk it through a decent design up front.