upvote
Unfortunately the fact that you can't see (or understand) the quality of the components that make up your car doesn't make it less important. And low quality components can look like they're working fine until they blow up in your face.
reply
Product quality still matters which is a result of code quality rather than the number of features you've shipped in the last week.
reply
You are both correct.

We'll have to wait and see how many companys get hurt by overuse of AI coding, the one I work at included.

reply
I don't give code quality a consideration at my job, as that is the expectation. I'm on-paper delivering more projects and "more productive".

I also don't think this is the right way. We are giving away practices and lesson learned over decades, in just over 6 months without fully understanding long term implications both technical and non-technical. And that is based on very optimistic bet that models will be able to handle all those potential issues that we might be concerned about in present. All the arguments/counter-arguments are mostly speculative, and I think only time will tell. My speculation is that this all BS will at some point self-correct at some point, it wont be like pre-LLM but it wont be crazy vibe-code don't look at code (or pretend we review code) either.

reply
That's a big problem I think. We should use those tools to improve applying our practices. Along the way we might figure out that we can and should do things differently. But just throwing everything away, hoping for the best, does sound like a recipe for disaster.
reply
This view is defeatist, and one hundred percent correct. The programming profession as we once knew it no longer exists. Artisanal programmers will soon occupy the same niche that Emacs users did in the past (with the occasional "Why I still code by hand" blog post). The greybeards will gradually fade away, while new code generators (human or artificial) will get the job done, with no regard for how things were done just two or three years ago.
reply
My son brought up a good analogy using blacksmiths. They use to be the experts in manufacturing tools and other useful things then factories came along and at first the quality and output wasn't that great. Factories started improving and pretty soon no one needed blacksmiths and no blacksmith could match the output of a factory. When the blacksmiths weren't getting any work people would probaly say "well go work for the factory" to which a blacksmith would reply "but a blacksmith is who i am, i don't want to just pull a lever and push a button and out comes a part. How can you truly know it was made with care unless i do it myself by hand?".

I thought it was a pretty insightful point coming from a 16 year old boy (being a former 16 year old boy myself).

reply
> "but a blacksmith is who i am, i don't want to just pull a lever and push a button and out comes a part. How can you truly know it was made with care unless i do it myself by hand?".

I think this is the place where a lot of "coders" are now, they only cared about the manual part of the job which is gone.

What's different in software is that developing software always kinda was building and designing factories spitting out copies at the end (while actually creating and distributing the copy increasingly being the easy part). So in this profession you have a split between people who were actually only in for the manual part of building the factory while you have others for whom the manual part always was just a means to an end. With the purely manual part gone there is still a shitton of work left which is in the end a lot more complex and challenging than mere button pushing but it's different work.

reply
> they only cared about the manual part of the job

I think this is a very small part of the population, if anybody. Craftspeople, perhaps definitionally, are people who care about the work of making AND the results. This is true for many many devs.

reply
> I think this is the place where a lot of "coders" are now, they only cared about the manual part of the job which is gone.

That argument has been repeated so much while all the experienced developers keep saying that coding was not the hardest part of the job. The hardest part was adding the new changes while ensuring the system doesn't break and that it's still easy to modify later. In the latter case, intuition plays a big role into labeling what is a core truth of the system (unlikely to change) and what is a transitory need.

Coding was just something you do (and relax while doing so), not something you put your whole being into. When I code, I mostly think about the system. Which is why I look at the docs and my notes often to check the semantics of whatever symbols I want to use. I don't think about the actual typing of the code.

That's the actual argument against agentic coding. No one is checking semantics, it's hope and prayers that the software is correct.

reply
> no one needed blacksmiths

But they do still need the job shop machinist which fill essentially the same niche using slightly different tools (mills and lathes rather than forges and hammers). Is your 16 year old implying that LLMs are the programming equivalent of a mill/lathe in metal working?

reply
Having contracted in a company that tipped over from subscription token pricing to API token pricing recently, there’s still extremely good reason to keep your software a transparent.

The bill for the API usage was _hundreds_ of times higher than the subscriptions. Companies with a few hundred engineers, but without sky-high margins, simply cannot afford not to understand their codebases.

reply
Yep, fully leaning onto those subsidized subscriptions and closed models is dangerous. At the very least keep it at a level where you can fallback to some cheaper, preferably open model which has predictable pricing you can actually afford.
reply
this is kind of blowing my mind, have engineers here peeked at a bill for a medium to large size orgs token usage? growing all the time and yet everyone's solution to the inevitable issues that come from letting go of the wheel is to have Fable 12 come and rescue you. have fun tying your destiny to unpredictable recurring costs, or we could just be engineers and understand the things we build.
reply
Agreed! And unpredictable recurring costs that could easily end up being controlled by monopoly/oligopoly players who have investors with expectations that run from aggressive to hallucinatory.
reply
I think there is more to it than that. Even if we don't read all the code, it is still essential to comprehend the core structures that carry the weight of the program. Wrote something up on that subject some time ago, arguing that agentic code is a little like a fabric, in need of structural support to be practical at scale. In case it interests anyone:

https://epiq.sh/blog/the-soft-fabric-of-agentic-code

reply
The agents are pretty good at documentation too. You can point them at existing codebases and have decent docs generated (way better than you're average dev can produce). You can also very quickly re-generate them from the ground up whenever a round of changes are done.

"An agent wrote the code" is not an excuse for failing to understand how the system works and fits together.

reply
Software was always a black box to non-coding execs, but quality still mattered to them, at least indirectly via feature velocity, user experience, reliability, and operational cost. That hasn't changed.

We all may end up ignoring the source code most of the time. But for a few years at least, we won't be able to ignore the quality of it, because nobody knows how to use "AI" in a way that has stable high quality over years of changes.

reply
Refusing or being unable to understand the problem does not mean there is no problem.
reply
I guess that’s an advantage for engineers who are curious and continue to know how the thing actually works.

Being able to speak to what’s possible or not will definitely be a valuable skill.

Hopefully when the cost of tokens rises and your company can no longer afford to pay for it at the level needed that someone will be willing to keep it running.

reply
https://www.laputan.org/mud/ still applies, even when using coding agents.
reply
I've found if the code quality gets bad enough LLMs even get stuck trying to edit it. Can use LLMs to refactor it, but LLM will never suggest that if it gets stuck in loops :)
reply
Over time the codebase will get more and more bloated, and making changes will take longer and cost more tokens. You'll start losing your grasp on how the codebase works, to the point where you can't even tell if the agent is doing the right thing or not. You'll be lulled into thinking that the code is correct from the tens of thousands of AI generated unit tests and the 100% line coverage, then you'll start noticing bugs pop up when you actually try to use the product. You tell the agent to fix the bug. It makes a patch and adds another dozen regression tests. You re-test the product. The bug has been fixed, but now there's a new bug. This is your life now.
reply
And then you reach critical mass (http://www.catb.org/jargon/html/C/critical-mass.html), when trying to fix each bug only increases the number of bugs.
reply
And Anthropic will happy sell you the newest model, tuned specifically for these problems. At a premium of course.
reply
Code quality was a concern maybe at tech companies, in every other industry it was never a concern, in fact you were shunned if you mentioned code quality because then you were not doing Product Thinking™
reply
I've been thinking recently about this. Given that it's a black box: I think it's better to have the LLM write Rust code than Python, node.js or anything else. You might as well use the strictest possible language to improve the chances that the code the LLM writes is safe even maybe if you are not a Rust specialist.

Also: syntax is for humans, might as well use LISP AST syntax for all future languages since no human is going to read it anyway.

reply
Why so defensive? People who are secure in their positions don’t have to say things like “get used to it”.
reply
I've see agents get confused by a human's code comment and muck it up, so just get agent to rewrite from scratch.
reply
says person who has never been on a pager
reply
I can't speak for commercial software development, but that's very much not true for open source software. Personally, I don't want to use software that is a black box. That's the reason why I'm using FOSS in the first place.

Another note: some software has a history of multiple decades. In fact, I happen to work on such software. IMO it would be irresponsible to turn the code into an incomprehensible slop fest just because some AI boosters want me to believe that "coding is solved" or "software is dead".

reply
how can you confidently evaluate this sort of thing on a 6mo timescale
reply

    Code quality is no longer a concern to almost anyone
If that's true (and it is not), it's only because almost anyone is "making" code now. That they don't understand the importance of code quality means nothing; it remains important without them. And professionals certainly don't need to pay attention to these inane oversimplifying takes of "what software is now".
reply
My company is all-in on agentic coding. We've been building a new product with it for the last 4 months. They talk about "AI governance" but I think nobody knows what that means. They have the AI writing the code and doing code reviews and everything really.

Well, one engineer decided to take a look at the code and found one file was 20,000 lines long. It was an awful mess with too much going on. So much for "AI governance". I knew this was going to happen but these guys don't want to hear anything about being cautious with AI. The solution is always more AI.

I am looking for a new job.

reply
We're going to the same direction in my company, AI produces and AI reviews it which I feel is kind of like shaking your own hand.

For now there's still human reviews but soon it will be all automated. I estimate that the AI review (latest Opus) is around 15% to 20% accurate

reply
I'm still holding down keeping a human in the mix where I'm at now but it's a tough battle. Other problem with AI review is it will try to find issues that are not issues and you can get in this loop of an agent fixing something, triggering another review, fixing those findings and basically going in a circle. Has happened multiple times now which ends up with a massively overbuilt task that would have taken a human a few minutes to just do to begin with.
reply
Yes indeed, we have the same problem. You can run these agents 10 times and 10 times they will find different issues. It makes me trust the AI reviews even less, is the new feedback accurate if the previous one didn't catch it?
reply
What did change? It's always been like this: ship fast, fill your pockets, wait a while, then enshittify. Nothing's changed in this industry.
reply
I think we're being set up to be corn kings. A corn king is someone who the tribe makes the king, obey his every command, lavish him with wealth and pampering, all as long as things are going well. As soon as the corn harvest comes in a little bit short, we sacrifice the corn king to the gods in order to regain their favor and fix the harvest. No one cares about code quality and I can spend my days being richly rewarded for telling Claude what to do and then blindly shipping its output til we have a major prod outage or security breach, whereupon I am taken out back and shot.
reply
When was code quality ever a concern?

I remember the "software craftsmanship" movement of the early and late oughts. Refactoring patterns, clean architecture and all that--nobody outside a tiny group gave a single sh*t about it.

reply
In many open source software projects.
reply
I feel that before LLMs I could smuggle quality code in, without the managers knowing. Now, I cannot -- I'm visibly too slow if I'm trying to.
reply