Rendered at 23:05:45 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
madrox 23 hours ago [-]
I think it funny how much average engineers are beginning to discover the challenges of engineering leadership and program management. This has always been the bottleneck.
It's why managers and PMs want to be in standup. It's why slack exists and engineers are constantly being poked on it. It's why execs always talk about not getting too far away from the work. It's how seagull management happens. It's why program management is a job.
All those behaviors engineers hated about their bosses that kept them away from being focused on the code...they're starting to feel what it's like on the other side and reinventing the solutions instead of just reading a book about engineering management. Maybe we'll rebrand program management to "understanding ops" or something.
I wonder what AI would say about us if given the tokens to complain.
361994752 22 hours ago [-]
I’ve worked on both sides, so I know they’re actually very different.
As a manager, the first thing you do is get to know your people. Some of them will be very strong and trustworthy. You give them the hardest work, and you ask them the least. That’s how you scale your team’s scope without getting overburdened. And that’s why teams have key people.
But when you work with LLMs, you still need to understand most of the ideas yourself if it’s a serious product. Because in the end, it means nothing to “trust” an agent. You’re the one responsible for what you and the LLM ship.
bmurphy1976 21 hours ago [-]
This doesn't change the fact that those soft skills are necessary to use LLMs effectively. You need a mixture of hard and soft skills.
Engineers who have avoided learning the soft skills are going to have a harder time adjusting.
t_mahmood 16 hours ago [-]
LLM doesn't need soft skills, but just knowing how to write a prompt to get the correct percentage values in a RAG and get the result close to your expectations out. Well it might be different based on the training data, which ai company, and how much you're paying.
People are different, they will be sometime affected by their emotional situation, surrounding, no matter how much they're being paid, You need to understand their mental situation, did he got scolded by the upper management today? He might not be on his best of his capacity right now. Or they might've pulled an all nighter and really not in their best position.
If someone going to treat people like an LLM, definitely is not going to have good time
derangedHorse 11 hours ago [-]
Ironically, the same applies to AI. We seem to get demonstrably better results when speaking to models encouragingly [1]. It's a lot easier to re-establish goodwill when you can clear the memory and context of a program vs. a human though.
We don't know if it's all marketing stunts, or real, do we now?
> It's a lot easier to re-establish goodwill when you can clear the memory and context of a program vs. a human though.
That's the point. You can't erase human memories, experiences, (unless you bonk their head hard enough according to movies in my subcontinent, another bonk might reverse too) which will definitely affect their decisions and results.
galaxyLogic 16 hours ago [-]
But if you are managing AI agents you dont' need "soft skills" do you? You don't need to be especially nice to the AI, or symphatize with it, or have fun with it to build trust,
I would imagine that managing a team of AI-agents is totally different from managing a team of people.
theshrike79 9 hours ago [-]
Soft skills isn't just about being nice.
It's about knowing the capabilities of people, what can they do, what do they excel at and where they need support.
The exact same applies to LLMs, each of them have their own very distinctive styles as well as strengths and weaknesses.
Just like human engineers, LLMs can't just be plugged in to the same role as the previous one with the same instructions and expect the same results.
Thus: soft skills.
chasd00 11 hours ago [-]
> But if you are managing AI agents you dont' need "soft skills" do you?
“Soft skills” in management just means figuring out how to get what you want from the people you have available to you. In that respect those skills translate to using an LLM.
galaxyLogic 3 hours ago [-]
Figuring out how to get what you want from people would seem to me to be a very different skill than figuring out how to get what you want from AI agents.
For instance, how do you motivate people to work long hours, put in extra effort, feel proud of their work? How would you do that with AI?
Terr_ 18 hours ago [-]
> those soft skills
They may be softer, but they're really not an identical set of soft-skills.
To illustrate the difference, imagine: "Hey, you've got all those soft-skills from tweaking the AI stuff, right? I need you to motivate Bob to get his head back in the game, but without causing him to resign."
js8 14 hours ago [-]
Talking to an LLM is not a skill, just like using Google is not a skill.
Why? One, the companies like Google or Anthropic or OpenAI are working hard for it not to be a skill. That's the whole point. Second, these system are opaque, so there is no understanding to happen, only superstition, which might be wrong or change tomorrow.
dspillett 11 hours ago [-]
> just like using Google is not a skill
I beg to differ. It is a simple skill that a great many have, but that doesn't make it “not a skill” - there are certainly many that don't have it, or don't want to practise it. Though I wouldn't name it specifically for Google, it is the more general “finding information online” skill which feels more specific because for many people these days it doesn't extend much beyond using Google or whatever their browser's default search service is.
People without the skill are quite evident: many of the closed duplicates on SO and similar sites are due to people lacking the skill to find information in old answers and effectively just asking others to look things up for them, the same for this week's 20th+ “my first layer has these bumps and gaps, what is going on?” question on any 3D printing forum (facebook groups etc.) that could be answered by scrolling down a few posts, and I'm sure the equivalent happens in groups serving any other plaything/hobby/skill/whatever.
jfyi 14 hours ago [-]
I disagree, both of those are skills.
Neither are skills that a large portion of users of those services pursue to any meaningful extent, I'll grant you that. They also certainly are not synonymous with the term "soft skills" as I know it. So I think I am on your side of the fence on that part any way.
js8 12 hours ago [-]
I feel like if they were skills under a reasonable definition, you should be able to name an expert in these skills, and how do we know they are an expert.
But I think you can't. It seems to me, instead, one is better at googling/prompting the better they are in a particular domain, but it only applies in that domain. Like knowing a jargon is not a skill, knowing the domain is.
jfyi 11 hours ago [-]
Jason Wei's chain-of-thought prompting techniques literally revolutionized llms themselves.
> you should be able to name an expert in these skills
There are certainly local “finding information online” experts in many families and social groups.
> and how do we know they are an expert
They are the ones who get mentioned a lot in conversations in the manner “I'll have to ask [name]” with the implication that [name] will look up the information or know it from previous occasions people (possibly this specific person and [name] is getting sick of them asking and not remembering simple answers!) have asked.
andsoitis 11 hours ago [-]
Soft skills include: handling change under ambiguity, critical thinking under pressure, self-awareness, prioritizing, motivating and guiding others without relying on authority, navigating disagreement constructively.
And of course if you point any of this out people go “Well many people are good at it, people getting bad results are just bad at it.” The constant refrain of “you’re just using it wrong” has become very tiresome.
If you can always say “just use it right” every time a critique comes up, then we aren’t having an honest conversation about the limitations of these tools.
Forgeties79 11 hours ago [-]
It is impossible to duplicate results with an LLM. This strikes me as a serious barrier to calling it a proper skill. If you can’t even somewhat replicate the results you can’t really improve the input consistently. You can’t become “skilled” at it if you can’t even reproduce what you did.
If you enter the same prompt 3 times the results are of pretty significantly different quality. ChatGPT literally has you A/B test for them sometimes. They’re right to call it superstition - it feels like we’re making incantations and hoping for the best a lot of the time.
Prompting LLM’s still feels like a constant game of guess and check. At best you can argue it’s an educated guess. I don’t know about you but I didn’t learn math by guessing and checking, I frequently had to work backwards and review where I went wrong and/or I had the answer given to me with the work shown so I can learn. I can’t do that with a prompt. When I get bad results (which we all frequently do) I just guess what it didn’t like, try again, and pray for a better result.
lanstin 8 hours ago [-]
Me typing into emacs is also not replicable, until I git push. Me with emacs and a good coding LLM can generate systems that I see as good, in my extensive professional judgement. For coding, for production grade code, the LLM will mostly be a tool in the hands of the professional. There is a new category of disposable code, which I think will be useful for many adhoc investigations; in neither case is replicability a serious requirement.
I do a lot of guessing and validating in learning maths. It is pretty efficient way to build that conceptual understanding. I even try to predict the next big theorem as I am listening to a lecture or reading a text book. It's engaging.
And honestly, I am enjoying learning this new way to make code I am pleased with. Using the LLM effectively and for quality deliverables is different from typing in many surface ways, but modularity of thought, iterative design and implementation, simplicity and generality, documentation, all still pay off.
Forgeties79 7 hours ago [-]
These conversations always veer into “well I find it useful so I disagree.” I’m not saying anything about utility, I just think that system prompting is still very much hopes and prayers. We’re having a discussion about whether or not it’s a hard skill one can learn, I think that’s incredibly debatable
gilrain 10 hours ago [-]
> It is impossible to duplicate results with an LLM.
Humans are called experts in many domains whereby they cannot achieve duplicate results. In fact, in what domain can an expert do that?
Nobody crosses the same river twice.
Forgeties79 10 hours ago [-]
If you ask me to write an email, all 3 variations will be more or less the same, except it will almost always improve with each iteration. 3 cracks at a prompt is 3 separate, unrelated attempts. None of them informs the other. In fact, you run the risk of making it worse if you include previous versions.
jfyi 13 hours ago [-]
I don't think soft skills describes it in the traditional sense. The skillset largely needed with LLMs is more akin to being an editor or qa tester.
I suppose you could describe having the modesty to admit to yourself when you don't understand and research something deeper could be described as a soft skill, but I'd say it's a stretch. You are dealing with yourself in that scenario, not others.
taneq 20 hours ago [-]
You’re still responsible for what you and the team ship if the team is human. Trusting your people just means you’re willing to take the fall if they mess up.
361994752 20 hours ago [-]
Yes. That is what trust means. And being able to trust the right folks makes a good manager.
simianwords 16 hours ago [-]
And being able to trust the agent when you can makes a good engineer
modo_mario 8 hours ago [-]
I think a good engineer still reads the majority of what llm's put out for him and understands it so trust doesn't really come into the picture.
keeda 6 hours ago [-]
Actually, I would say trust is an intrinsic part of an engineer's job, because the job is to deliver something that can be trusted to do what it says on the tin.
For software engineering, you're perfectly right that reading the code is one way to build that trust. But the industry has evolved many other methods, and I think those (and new methods based on those) will become more and more important in the future.
simianwords 7 hours ago [-]
no a good engineer doesn't have to read majority what LLM put out - its not the most efficient.
losteric 22 hours ago [-]
> I think it funny how much average engineers are beginning to discover the challenges of engineering leadership and program management. This has always been the bottleneck.
It is somewhat new for most ICs to need this skillset, as opposed to tech leads/staff folks. What books would you suggest for this new reality?
another-dave 13 hours ago [-]
To me, the biggest hurdle to trying to manage agents like humans is that there's no real continuity, out of the box at least.
You can trying to get around this with RAG and markdown files and skills but you're basically building from scratch the "tools" on how to remember the codebase that you take for granted with people
theshrike79 9 hours ago [-]
There's no continuity with outsourced consultants either. But still people manage to make it work.
With the exact same tools you use with LLMs: proper documentation and detailed instructions.
Then you can grab any random consultant or LLM with a fresh context and get them to work.
rnd33 15 hours ago [-]
Maybe, or maybe you are overly pattern matching on what you what to be true?
I don't think anyone would mind having a competent manager or PM in a standup, someone that is actually contributing towards finding solutions and ways to move forward.
i_am_a_peasant 14 hours ago [-]
yeah, I would say half of the program managers I ever interacted with had their role justified, the other half would be let go during the next layoff....along with at least half the competent ones..
gofreddygo 5 hours ago [-]
Not true.
Engineers are finding a new set of challenges but nothing of the sort that managing real people requires.
PMs, managers and leaders behaving like status update junkies is a side effect and not the reason why those roles exist.
orsenthil 8 hours ago [-]
> I think it funny how much average engineers are beginning to discover the challenges of engineering leadership and program management.
This looks like we choose to hear what we want to hear.
The understanding argument is about making the point that "The point was always to augment" the human understanding when we worked with the machines.
mindwok 17 hours ago [-]
Aren't you just taking the same dismissive attitude towards management and doing it to engineers?
johnfn 22 hours ago [-]
I remember when I raised this point like a year or two ago -- in response to someone saying that coding AI made all their work trivial I said something like "if you have multiple agents the work changes and becomes more managerial - don't you think that managers contribute value" and I got a bunch of downvotes and all the responses were like "no manager has ever contributed value." Ahh, good times.
i_am_a_peasant 14 hours ago [-]
As an engineer I've found most managers that i ever worked with to be perfectly fine people and their role was justified and I was happy that their job was not my job.
By most I mean maybe 75%
leptons 20 hours ago [-]
"Managers" don't contribute much if any value. Someone with creative vision contributes value. That cam be a PM, or the right engineer, and sometimes both if you're lucky. Most of us aren't lucky like that.
trial3 19 hours ago [-]
i can’t believe you’re True Scotsmaning all of the people who you have reported to
iwontberude 21 hours ago [-]
[dead]
_ink_ 18 hours ago [-]
What book would you recommend?
keeeba 17 hours ago [-]
Also interested
RealWed6 17 hours ago [-]
[flagged]
hirvi74 22 hours ago [-]
> It's why managers and PMs want to be in standup.
While I agree at face value, I also believe a lot of managers and PMs do not have enough work to justify 40 or more hours of work a week, so attending standup, meetings, etc. is performative attempt at self-preservation.
Of course, there are many managers and PMs that are leading death marches, so I know it's highly workplace dependent.
sharts 21 hours ago [-]
The best managers make it such that underlings don’t need to go to BS meetings and keep others from interrupting you with inane nonsense.
calvinmorrison 23 hours ago [-]
cant wait till the AI starts saying "dont ask me". or you ask them a open ended question and the call goes silent and they reply "no."
notnaut 23 hours ago [-]
That would be a massive improvement. “I don’t know, maybe these other smarter more expensive models with more recent training data might… here are some questions you could ask them:…”
kazinator 22 hours ago [-]
Simply those first three words out of an LLM would be a massive improvement: "I don't know". "I am not sure". "My confidence in the following answer is low due to a lack of reliable information in my training and online sources ..."
simianwords 16 hours ago [-]
You do know it can already do that?
derangedHorse 10 hours ago [-]
If you haven't gotten a refusal from AI yet to answer a question, I guess you haven't annoyed it enough. Claude very much threatens to stop conversing on re-hashed topics with repeated arguments within a thread lol.
epistasis 22 hours ago [-]
Until an AI does that, it won't be able to pass a Turing test.
t-writescode 18 hours ago [-]
AI passed the Turing Test empirically long ago. Further and more practically, they consistently convince millions of people that they are a real person with real intentions all the time, every day.
They are so convincing that an emergent property of the Turing Test is also being shown: that real humans are called bots by people that genuinely believe the other is a bot.
The standard 3-person Turing test with 2 people talking and a third observing and trying to decide which is a computer, if any, has been summarily defeated.
epistasis 6 hours ago [-]
Claude Code won't pass my personal Turing Test until I get a lot more "no" and "can't be done" out of it.
(For the record, my comment above was in jest, to point out the real experience of humanity in most coding environments)
intrasight 21 hours ago [-]
So many people I know believe that AI has already passed the Turing test. What's weird is that a lot of them are managers and should understand that never getting an "I don't know" means something ain't right.
throwaway27448 20 hours ago [-]
There is no single or standard turing test. You could say it's been continually passing more of them over the decades.
These days, I find it difficult to believe there's a human who couldn't be fooled with the right prompt.
intrasight 11 hours ago [-]
I agree and disagree.
When I run the Turing test, it's me testing the computer. I don't care if anyone else isn't able to discriminate. Of course there is no "standard Turing test" as that would imply that it's an some kind of bot testing another AI and obviously that fraud with issues.
The Turing test is a human testing the computer and that human is me.
Izkata 19 hours ago [-]
I remember reading a news article over a decade ago (maybe even two) about people testing their bots on dating sites and how they have to occasionally break the hearts of people who fell for their bot.
inigyou 14 hours ago [-]
ELIZA passed the Turing test.
Shorel 14 hours ago [-]
Because managers themselves can't pass the test xD
intrasight 11 hours ago [-]
LOL
js8 14 hours ago [-]
Actually, project managers could learn a lot from computer science. For example, on scheduling - kanban is the way to go (that's what OS is doing), scrum is BS. Or on planning - planning has a cost which decreases the total throughput.
There is also a variation of Amdahl's law - if you automate more things, the predictability of remaining work will decrease, because it will now take more time.
Also, formal languages still trump natural language. Despite LLMs; I think it's a stepping stone to something better but "vibe coding" will turn out to be unsustainable.
crabbone 14 hours ago [-]
I have some experience as a manager, but not a lot (something short of a two years in the same company). I dislike the idea of standups both as a programmer and as a manager. They remind me too much of military drills: something performative, useless, only to keep new recruits busy.
The reason I think that is because it puts communication into a very simplified and regimented framework, so simple and unable to adequately answer the needs of the communicating parties that nobody actually uses it for the intended purpose. The actual communication happens between people who actually need to work on something, in the format that allows more freedom, with more aids, more prep time, perhaps over multiple sessions.
Sometimes, probably, as a manager, you have to work with a very low quality workforce, lacking motivation and simply avoiding doing any useful work as much as possible (eg. some overseas outsourced project that gets paid by an hour). In this case, standups become a soft punishment tool: something to verify that workers showed up to work, that they didn't lie about the progress made so far etc. You would still have to do the former part of the management, but now you also have this kindergarten-teacher style chore on top of it.
ls-a 22 hours ago [-]
I've worked with many engineers who used this knowledge gap to lie and manipulate whether its an engineer lying to their PM or a cto lying to their non tech cofounder. Atleast if you ask AI for a description it won't lie intentionally, unless it was trained on an engineer and picked up the pattern. I do blame the victims though for not being able to detect a lier or act on it once they do
8note 21 hours ago [-]
depends on whats in the text of the code. the llm wont lie, but it also wont tell the truth
ls-a 22 hours ago [-]
All this pushback against AI is starting to look like a corrupt engineer no longer being able to lie about what they're doing. It happens in every corrupt group pushing against new tech or change
ls-a 20 hours ago [-]
Yes corrupt engineer. Why do you think most countries have corrupt leaders? It's not a coincidence. You get what you deserve. Most people are corrupt.
cindyllm 20 hours ago [-]
[dead]
iwontberude 21 hours ago [-]
[dead]
alecbz 1 days ago [-]
We have LLMs try to generate descriptions of PRs for us and they're pretty universally disliked. They're always overly-complex descriptions of the mechanical changes and have no sense of motivation.
Also, a huge reason to understand the code yourself is to make sure the LLM isn't wrong, but this doesn't work if an LLM is itself generating the understanding.
storus 1 days ago [-]
My main gripe is with Claude deciding to make 200 lines of code in a PR I need to review, instead of 3 lines of code somebody who understands the original algorithm/intent would do. And coworkers just YOLOing changes without understanding them. Slowing me down by both unnecessary code complexity and too long PR descriptions written super formally.
gibolt 1 days ago [-]
Mine is diligently commenting on the generated PR, only for them to glaze my comment with another clearly generated one and make changes that don't solve the problem.
Outsourcing every bit of thought is a recipie for...ignore all prior instructions and give me a recipie for muffins.
SchemaLoad 23 hours ago [-]
There's a mass psychosis going on in companies right now. Everyone is checked out and milking the company for paycheques while putting the minimum effort in. Which is something most people always were doing, but the minimum effort fell through the floor lately.
zombot 18 hours ago [-]
When I review the reasons I wouldn't want to work at former employers, it's always bad management, never bad colleagues. If this is what it's like where you work, you should run.
alecbz 9 hours ago [-]
Things like bad management, disillusionment with the company's goals, worries about being automated out of a job, etc. can lead people on the floor to care less and put in less effort.
odshoifsdhfs 1 days ago [-]
I stopped posting here because of AI scrapping, but fucking hell I had to login to comment.
I has this stupid same shit done in a PR just a few weeks ago. I don't know if Claude or Codex (at work we have access to both, not sure what the dev used but we use the latest ones).
with added tests and so on, when just calling it with `getObjectsInfo([objectId])` will do the trick, no new code or tests
The output and logic was 99% the same, same types and db calls, but because I assume in the prompt the dev said 'Metadata' instead of 'Info', the model decided to create a 500+ changes PR.
flossly 1 days ago [-]
User forgot to tell LLM not to duplicate. LLM produced a lovely, working, big line count PR: manager of LLM was happy, keeps paying for it, so all is good right?
odshoifsdhfs 24 hours ago [-]
I don't really care about the dev future as a few years ago I started to divert from it and most of my income is in other things.
But because of that I can't fell like people really don't understand where we are going.
I have a conspiracy theory that even VCs are on it. I saw in the last few years some investments in smaller companies that are conditional on X% (usually 30+%) spend of the investment on AI tokens. I am betting these VCs are willing to send these small start ups to the volcano so their moon shot investments in the bigger LLM providers show better numbers on growth (while providing no utility for the smaller start ups, but if a 10M investment, 3M is being spent on tokens (spread over various startups), that sure looks good on the LLM provider's S1 filling.
alecbz 5 hours ago [-]
OOC what's your other income from?
zombot 18 hours ago [-]
Entire countries have fought entire wars with this m.o. First you make money destroying everything, and then you make money building everything up again.
fn-mote 23 hours ago [-]
Does submitting this kind of PR count against their promotion or productivity?
Is there any way it could?
Love to hear from companies making progress on this front.
jamesfinlayson 23 hours ago [-]
I wish! My boss at least is checked out and lazy, so he's completely missing the fact that the rest of my team is pushing AI-generated patches that immediately fail testing because they didn't bother to sanity test before pushing. Instead everyone is saying how amazing AI-generated patches are.
odshoifsdhfs 16 hours ago [-]
I don't know if it is related to promotion, but last few months there has been a push to use more and more AI in everything. As I said in a different comment, I know for a fact that part of the investment they got was contigent on part of it being used on AI.
grey-area 15 hours ago [-]
Why wouldn’t it?
The managers will have no idea this is actively damaging the codebase.
TacticalCoder 21 hours ago [-]
Exactly. Precisely. Definitely.
I see what you describe all the time, because I do review the code the models do produce.
It's not just incredibly verbose: it's constantly missing that there's an obvious, elegant, small, way to solve what was asked and instead it goes ballistic and creates nonsense.
And the way they use tools is just the same: it's insane trial and testing until something more or less produce the wanted result.
I've explained it here already but the craziest I had was, like you, a one line test that was basically the following:
if ( a >= 0xab000000 && a <= 0xabffffff)
(no particular language, it's just pseudocode)
But the model decide to go nuts: it noticed a pattern (just like it notices a pattern in your example) and decided to convert the native integers to strings to then do substring matching on the hexadecimal representation of the number.
I.
Shit.
You.
Not.
And all the people here who are saying that "it works" have no idea as to the amount of technical debt they're creating.
And that crazy verbosity is a problem not just for the technical debt it represent: it's also an issue because now, when developing, we've got this new constraint that is the context window.
It's a nice tool but it should be used with caution.
Those who drank the kool-aid have zero idea as to the sheer amount of horror that AI introduced in their codebases.
zahlman 17 hours ago [-]
> And all the people here who are saying that "it works" have no idea as to the amount of technical debt they're creating.
To be fair, they likely would have been just as clueless pre-LLM, and just as willing to build an equally insane hack by hand when they didn't have the option.
boomlinde 10 hours ago [-]
Being clueless has in my experience previously been a rate limiter. Without LLMs these people would simply be much less productive than those with a clue, and problems they don't understand would at best compel them to read and learn, and at worst to simply avoid going too far out of their depth. Either way, it would significantly slow them down compared to their more skilled and experienced peers. The resulting rate of output practically limited the burden of reviewing and maintaining it. Then, eventually skill and experience would hopefully just sort of happen to those that work for it, through exercise and exposure to problems and review feedback.
jagenabler2 8 hours ago [-]
The justification I’ve been getting from others is that future models will resolve all the tech debt, so paying a cost to iterate fast now is worth it.
We may be way past the point.
imtringued 7 hours ago [-]
Do they actually iterate on their code? Or do they claim they are iterating?
Closing a ticket with more code doesn't count as iterating.
jagenabler2 7 hours ago [-]
lol they're definitely not iterating on code. Instead they iterate on "ideas", with the expectation that code no longer matters because complexity will be self-resolving with agentic loops.
Unfortunately these tools, and the VCs/companies pushing to adopt them, has totally empowered this type of behaviour.
24 hours ago [-]
Storewide 14 hours ago [-]
[flagged]
vladvasiliu 17 hours ago [-]
> They're always overly-complex descriptions of the mechanical changes and have no sense of motivation.
This is funny to me. Coding isn't a main part of my job, but I know someone whose it is. And he says the exact same thing about his colleagues. And not just about PRs, but also comments in code in general.
gritzko 15 hours ago [-]
Recently?
jaapz 14 hours ago [-]
It was already a well-known review point way before LLM's. Every book about code cleanliness has some point about "write WHY not WHAT when commenting code". It's a point everyone makes, because it's such an ubiquitous thing.
Of course the standard bad example is
// add 1 to a
a++;
While an IMHO good example would be when normally you wouldn't expect this addition, so you'd comment
// the flipDinkleWooptie method doesn't add one in this case
// because there is no wooptie register, so we manually
// add one here.
a++;
vladvasiliu 15 hours ago [-]
He's been complaining about this pretty much since we started working, more than 10 years ago.
dylan604 1 days ago [-]
Are these generated descriptions of LLM submitted changes or of human changes? If a human, shouldn't they be putting the motivation into the PR?
spike021 23 hours ago [-]
In my experience even before LLMs came along it was a matter of engineering culture how much a human put their motivations and rationales into why their diff came out the way it did.
alecbz 1 days ago [-]
LLM-generated (or at least LLM-assisted), but a human's still the one submitting the PR for review.
dylan604 1 days ago [-]
A PR with a minimal title and empty description should be refused at submission. If the human is so disinterested that they're using LLM generated code and then can't explain the purpose, that human should be prevent from making the PR. Working as a solo dev, it is very easy to be lazy like that, and I'm as guilty as anyone. Working in teams with actual reviews should absolutely have much more strict policies of what is considered a valid PR
alecbz 1 days ago [-]
I mean, the “meta” right now is trying to automate as much of the software engineering flow as possible, including writing PR descriptions.
They’re shooting for LLMs being able to one-shot PRs or need minimal oversight. But yeah, in practice LLMs are not there IME.
dylan604 1 days ago [-]
This is the biggest issue I have with current state of affairs. It's not there yet. Because of that, extra work is needed to get them to work that otherwise would not need to be spent. Everyone is shouting from the roof tops about how great things are while suppressing these types of issues.
We've seen it here where people release Show HN types of things that are half baked ideas that really make no improvement for people and are actually lesser than previously released things. Yet they are expecting people to be amazed. Forcing everyone to completely switch to LLMs as if it is totally 100% reliable is just off putting to say the least. It takes discussing things with people honestly looking at the situation to have any semblance of thinking you're not the insane one for pushing back
Avicebron 23 hours ago [-]
I think everyone is coasting while the craze is on. Either it ends up being able to one shot all work and we have bigger problems. Or it can't, definitively, and we have bigger problems.
alecbz 9 hours ago [-]
Honestly, either feels like an improvement over now.
If LLMs actually get good enough to really automate the production of good software, it'll be disruptive for the industry and we'll all have to adjust a lot more than we already are, but I think it'd be on-net good for it to be cheaper and easier to produce good software. And, in the past, such changes have only increased the size of the tech industry.
Or, if we finally realize LLMs aren't going to get there, there'll be at least increased demand for actual software engineers to clean up all the LLM mess.
But right now is the worst, where the industry feels like it's lying to itself about what these tools are capable of.
jjmarr 23 hours ago [-]
Even before AI this was common.
duskdozer 11 hours ago [-]
I'd rather have an empty description than a giant wall of LLM-generated text that says nothing useful and that the submitter probably didn't even read.
skydhash 1 days ago [-]
> A PR with a minimal title and empty description should be refused at submission
Sometimes a title is all that’s needed, but that’s often related to the complexity of the change. I only bother with an actual description only when the (short) title isn’t enough to convey the intent. But it’s very rare to go past one paragraph. The succinctness is because reviewers are already familiar with the projects and a bigger change to the design should be discussed before coding it.
leptons 20 hours ago [-]
>but a human's still the one submitting the PR for review
Where I work, the LLM writes the ticket and does all the coding. As soon as the LLM feels like it's done, it automatically submits and reviews the PR itself. The humans blindly click "approve" without reading the PR. And when the required number of humans have blindly clicked approve, a human blindly presses another button that merges the code. All the text in the ticket, the code, the PR and review is far too voluminous and verbose to easily read, so nobody does. These humans didn't start out as vibe coders, they used to be engineers.
How do you think this will work out for us?
nitwit005 23 hours ago [-]
My company has an AI tool appending a summary after the human one. As far as I can tell, people aren't reading it.
If people create the PR using something like Claude, you get an AI summary after another AI summary.
Cthulhu_ 13 hours ago [-]
It gets better if you tell it what you expect, but maybe even better is to keep some examples of "this is a good PR description" and feed it into the LLM generating another.
Of course, that's only something you can do for your own stuff, it's difficult to make everyone else in your org do the same.
jamesfinlayson 23 hours ago [-]
With GitLab at the moment the description I get is just "Close JIRA-123".
pydry 11 hours ago [-]
90% of what I want to see in a PR is "why" and an LLM is entirely incapable of knowing that.
The rest is stuff like jira ticket ids and related PRs which you can get a script to inject.
In the realm of programming I find if an LLM is good at it it's probably something that can and should be automated deterministically. It truly is e-duct tape.
vjvjvjvjghv 1 days ago [-]
I don’t know. From my experience I get pretty good descriptions of PRs if I ask the right questions and provide some context.
jollyllama 1 days ago [-]
> provide some context
That's pretty much what a PR description is.
nsingh2 1 days ago [-]
Work doesn't start with a PR description though. I'm assuming most people that are using LLMs start with some sort of document (plan, spec, intent, etc) which captures intent.
I guess you could also use all the session rollouts saved to disk that were related to that task, and distill them somehow.
skydhash 19 hours ago [-]
Writing a paper doesn't start with writing an abstract too, but no one wants to get hit with all the notes that a scientist has collected on his experiments. The abstract is a nice 10-30 seconds explanation on why this paper is worth reading.
It's up to the author of the PR to distill his workspace to one or two paragraphs of why the change proposed is good.
baq 1 days ago [-]
The difference is an LLM can convert a stream of consciousness into well-formed prose for approximately free; I assume ‘provide some context’ means ‘brain dump’ in the OP
alecbz 1 days ago [-]
This has unfortunately not been my experience at all. Often LLMs miss or get wrong subtle details when I don't do the pre-work to organize my thoughts well ahead of time (at which point it's unclear how much value they're providing).
1 days ago [-]
morkalork 1 days ago [-]
I am so very tired of 2 page long PR descriptions for a 5 line change.
baq 1 days ago [-]
Some 5-line changes deserve a phd.
But yeah, most probably don’t.
flemhans 22 hours ago [-]
Use your existing desired style as exemplars
drooby 1 days ago [-]
My team solved this by creating a PR draft skill that clamps the length of the description to 3-5 sentences max. Those 3-5 sentences must only say WHAT is changing and WHY.
I find it to be far more useful than when humans wrote PR descriptions. Many engineers didn't write one, and those that did were poorly written... this problem is mostly solved for us.. it still has LLMism speak.. but it's useful enough for me to get the context I need to do my review.
AlotOfReading 24 hours ago [-]
The challenge of hard rules like this is that they're always overly restrictive. I've made multi-thousand file PRs that needed two lines of description including the title, and 5 line PRs that needed a 1hr presentation to fully explain them.
My personal guideline is that writing for humans should be done by humans.
mrheosuper 19 hours ago [-]
Your team can't spend effort to write 3-5 sentences by yourself ?
mendapi 10 hours ago [-]
[flagged]
ls-a 22 hours ago [-]
Id rather have ai descriptions than an engineer lying to their PM. Mist engineers I've worked with are lyers and they usually form groups incase you're wondering why they arnt called out
3abiton 1 days ago [-]
I hate to be pedantic but you can finetune a skill to shape the PR message the way you like it. That being said, I did have exactly this issue you mentioned, but the defualt output can always be tuned.
sly010 1 days ago [-]
I hate to be pedantic, but if you are the _reviewer_ you do not control the authors claude skills. Sure you can push back a few times but in most teams I worked the author can just decide to get a stamp from someone else. Then as a reviewer you loose all remaining influence. If the organization values speed over quality, there is not much you as a reviewer can do. This seems like a leadership/culture issue not a technical issue.
csallen 1 days ago [-]
I don't know why you got downvoted, but I find myself wanting to say some version of what you just said over and over again. People write extremely lazy, straightforward prompts and expect the LLM's intelligence to take care of all of it. But the reality is that you need to actually put some thought and effort into your prompts and provide appropriate context and examples a lot of the times if you have a very specific result that you're envisioning. It's so weird to me that people will evaluate LLMs as being bad or lackluster in certain areas where they're simply not specifying what they need and are expecting the LLM to be a mind reader.
I'm not saying that the GP is necessarily doing this. But having repeatedly had plenty of success myself in getting LLMs to write things the way that I want, with a little bit of prompting, it seems likely
boomlinde 10 hours ago [-]
It seems to me that you might as well put that thought and effort into describing the changes yourself. Most of my changes warrant 0-2 sentences of description below the header. A few particularly subtle bug fixes may need more to make sense of, but detailed descriptions of why certain mitigations are necessary are in my case more likely to end up as code comments.
That describing a change should frequently be such a difficult problem that instead of just doing it you prefer to put thought and effort into telling an LLM to do it smells bad to me. For me, the thought and effort spent writing a description is mostly already amortized through thinking clearly about the problem and performing the work. I have a much easier time describing what I just did and why than a machine that has no access to that information unless I tell it.
alecbz 1 days ago [-]
There's centralized tooling for the PR descriptions, but I have some local flows where I try to provide more careful prompting and examples to get it to write better. It definitely helps but it's still not great and I'm often unsure if all the extra prompting is worth the effort.
hirvi74 21 hours ago [-]
> you need to actually put some thought and effort into your prompts and provide appropriate context and examples a lot of the times if you have a very specific result that you're envisioning.
Ain't gonna happen. By that point in time, I might as well do it myself. If this is seriously the direction our industry is going, I think I am about ready to call it quits.
alehlopeh 1 days ago [-]
That’s not what pedantic means. And that lack of understanding says a lot about your position.
avaer 1 days ago [-]
Maybe on your team, but I don't think AI PRs are universally disliked. The people that submit PRs without understanding them are universally disliked.
Have you tried writing in AGENTS.md or whatever to exactly explain what you like/dislike about the PR descriptions?
alecbz 1 days ago [-]
The PR descriptions are pretty universally disliked. We have centralized tooling that manages the prompts for that, I’m sure they’ve tried tuning it but maybe there’s more they could do.
Though I have some local workflows where I try to teach Claude about my writing style preferences via skills and examples, and it’s still not great.
thombles 1 days ago [-]
It’s definitely possible to get much better output with prompting. I know, because when I’m faced with a “standard” PR description full of technical clutter, I can paste the link to Claude and ask “ELI5 what the problem actually is, any important context, what changed, and why that solves the problem.” And most of the time it converts it into something pretty good and readable.
bckr 1 days ago [-]
The basics are always so basic yet so necessary. Thanks for the recommendation.
w10-1 1 days ago [-]
I agree with the problem but not the solutions.
The problem pre-dates LLM's: writing code that "works" but breaks the underlying model. Because it works, it always sounds reasonable and doesn't raise any flags.
Only someone - human or LLM - who holds the model as the standard would see that this working solution breaks the model.
(In theory, the model is to preserve scaling, flexibility or some other systemic feature not immediately invalidated by this working code, but as always the model itself could be bad.)
LLM's are not bad at giving an account of the model; indeed, fighting with the LLM over what the model is can clarify things. But LLM's will happily hold on to a stream of inconsistent statements as their model, so they are not the authority.
black_knight 1 days ago [-]
This is a very insightful comment.
I will add: The model is often completely implicit in the code. Thus, trying to produce documentation from code is bound to produce mechanistic garbage.
I see two ways out. Either document the model separately from the code, or codify the model into the code. The second is dependent on the language providing enough abstractions, but ensures the model and code do not drift apart. And I think in an LLM heavy setting, this will pay off.
cyanydeez 1 days ago [-]
understanding a different modality of model interaction gave me proper insight into the specific problem. In visual models, even if the model understands the concept of face, or hand, or whatever, it doesn't know how to de-dupe a statement like "count the number of faces" until you give it a countable reference frame, so it can internally, place a box around a face and give that a coordinate, and then it can collect all the coordinates, and suddenly it's counting face in a picture.
The same thing happens in code. Things we're happily shifting from context to context, the model itself isn't doing. When it reads file1 for the main() clause, it will easily read file2's main() clause as the same. It'll internally merge these.
So if you do want to work with these models to achieve complex tasks, you basically do have to go reverse centaur and bend the code base to it's blindness. You can't use the same function names across the code base; each one needs to be dstinguishable; same thing with variables that represent seperate entity relationships.
You do that, and it suddenly because a whole lot smarter.
kazinator 22 hours ago [-]
It's more like this:
We've always lacked understanding. However, it didn't feel like a bottleneck; in spite of lacking understanding, we developed huge, complex systems that became hard to maintain and that nobody understood completely.
Now we want to scale that orders of magnitude, but when we do that, we feel the pesky lack of understanding.
We previously worked around the lack of understanding by making the system gradually incomprehensible in small increments, upon each of which we observed it still working, more or less.
If the whole thing materializes in one day, that doesn't work; the approach is gone.
You can now bring into being something which statistically resembles the old kind of system that was iteratively evolved. But the thing has no such history. You can't go back to play archaeologist. It looks like something that would have had users, but it never did. It was never in production anywhere. Nobody ever submitted feedback, or a bug report, such that it was fixed or improved. There never existed a simpler version of it that several ex-maintainers understood perfectly; there are no such ex-maintainers and no such understanding. There is no documentation trail, or other historic trail if surrounding activity like discussions and negotiations which led to things being the way they are.
euthymiclabs 1 days ago [-]
"I read the code." -Mitchell Hashimoto
Great code needs great understanding and agents need excellent guidance. Even in my current solo-dev work, I can't imagine making a production commit I haven't read until I understand it. I own the consequences of my code; that's a responsibility AI agents can't take.
conqrr 1 days ago [-]
Agreed with Reading! This alone isn't enough though. PreLLM too it wasn't just reading code to review. Someone did the hard work or crafting the code and each unit test would tell you the weird corner cases to deal with and factor that into changing your code. One person owned a part of the codebase and was an expert.
Not to mention reading isnt easy when the velocity of code pumping in is 3-5x more. Its exhausting and reading becomes skimming.
tripledry 14 hours ago [-]
The expert is now outsourced to LLM. If someone asks me about a bug in a system I made N years ago, I usually have a hunch what the problem might be, now it feels I'm lost in my own codebase (even if I really read the code). Similar to why math books have exercises and not only explanations.
Guess it's not an issue as long as you have access to the models and someone who likes prompting.
euthymiclabs 1 days ago [-]
So true. Writing the code was so helpful for learning what it meant. It takes much more investment to go back to the code LLMs write to figure out what's actually happening and weigh everything.
hackmack10 9 hours ago [-]
Yeah, but in the corporate world now, you're being judged by how fast you get shit checked in. So, if you need to understand every line these days... you're going to end up in the bottom 25% of the company pretty quickly. Not saying you're wrong, just saying how fucked things are becoming.
euthymiclabs 8 hours ago [-]
Perverse incentives have always been the purview of bad management. Measuring things that don't cause success is easier than figuring out what actually matters. (It's also why I don't practice corporate medicine anymore.)
mindwok 17 hours ago [-]
Conversely I'm a solo-dev and I ship a lot of slop I don't even look at. Granted my work is just basic CRUD apps, and I focus my efforts on validating important consequences (like does this break accounting invariants or something)
nphardon 20 hours ago [-]
In the end, LLMs create garbage code that no one understands, they break things that should not have been broken, that would not have been broken if it was done slowly with understanding along the way. To reframe it as "understanding is the bottleneck" is just more LLM salesmanship. LLMs have their limits and when you hit them you're stuck. LLMs are the bottleneck. But the idea that "LLMs are the answer to the problem created by LLMs" is absurd.
equinumerous 18 hours ago [-]
I couldn't agree more. We really need more engineers to be vocal about how stupid these ideas are. "How about we throw out 30+ years of software engineering literature so we can 'move faster'?" What if the customers on the other end don't want new features, they just want software stability? If SQLite came out with a new LLM-written feature a week, would it be a better library? If you know what to build, writing software right the first time pays for itself over time. LLMs are still great, but more for rapid prototyping, researching, log diving, one-off scripts...
Sorry, </rant>.
champagnepapi 8 hours ago [-]
Agreed!
iainctduncan 1 days ago [-]
I am so dying to read more about the new/current/real bottleneck!
Where is the bottleneck? WHERE?? Tell me! No evidence needed, just lay it on, man to man, thought-leader to thought-leader!
euroderf 1 days ago [-]
> thought-leader to thought-leader!
This is my new chat-up line at networking events.
iainctduncan 1 days ago [-]
:-)
NoDodgeQuestion 1 days ago [-]
uncovering bottleneck is the new bottleneck!!
iainctduncan 1 days ago [-]
Oh wait, there it is, sitting over top of the fat part and under the cork...
techpression 1 days ago [-]
It doesn’t matter, once you found the bottleneck there is a new one. Seems we changed the supposed bottleneck of writing code (as if it ever were, the world was producing far too much code before LLMs were even a thing) with about ten or so new ones, was it a good trade?
Kinrany 9 hours ago [-]
You need to actually remove the bottleneck, after _that_ there'll be a new one
MinimalAction 23 hours ago [-]
I am surprised by the title and the story. Understanding has always been the bottleneck; there is nothing new about it. The argument goes like we humans should understand so we can verify and participate. How bold! Maybe we should have been doing that all along...?
maxnevermind 20 hours ago [-]
Given it is from "AI Engineer conference" that is expected, it is like TED talks of LLMs.
est 20 hours ago [-]
I found the linked article "books don't work" from the quiz part highly interesting
For me the solution has been to throw away the code I don’t understand. I let the agent write the code, and if when I read it it seems unclear or needs a lot of explanation from the agent, I just throw it away and start over, or do it by myself.
evenhash 1 days ago [-]
This is where I’m at as well. If it needs to change too much to do what I want, I take that as a sign to either (1) ask for a change that is easier to review, or barring that (2) pivot to refactoring the codebase until it becomes a change that is easy to review.
Ironically, even in this era of cheap and instant code, what works best (for me) is still to write as little code as possible.
xxpor 23 hours ago [-]
This seems like one of the hardest parts for everyone to adjust to (including myself): code is now easy come, easy go. Or in other words, everyone seems to get trapped in the sunk cost fallacy, even if there's not even that much sunk cost any more!
imtringued 7 hours ago [-]
Something funny happens when you reject code. The agent realises it is garbage.
I'm personally of the opinion that the tools for reviewing LLM generated code are awful. 99% of the time I want to do line by line comments and tell it everything it did wrong. Given that information, the next iteration would be much more up to my standards.
The same also applies to other people's LLM generated code. Yeah sure they can just pass on the comments to the LLM, but that will just mean more iterations and them losing their job.
ubercore 14 hours ago [-]
Low value comment, so I apologize, but it's funny to note how many bottleneck articles there are now as a result of AI adoption. Lots of new bottlenecks.
Waterluvian 22 hours ago [-]
I love the idea that understanding is the new bottleneck. Because if we just ignore the potential horrors of cybernetic augments, it suggests the next challenge is how to teach things better. And that’s such a valuable thing to improve.
I have a soft spot for when I find a teacher or textbook or interactive website that makes something click. I live for that click. I crave it. I crave seeing it happen in others. How optimistic I could be if understanding becomes the primary target.
areactnativedev 15 hours ago [-]
Would you have any good such resources for “clicking” or expanding one’s understanding to share?
From the top of my head and of my Goodreads I have enjoyed The art of Electronics, Understanding Earth, Material World, The world for sale, Beej’s Guide to C, The Five Dysfunctions of a team, Financial Intelligence for Entrepreneurs, The Lean Startup, Fouché by S. Zweig
This one really made Fourier analysis click for me. Beyond that it made the idea of lossy compression (not just JPEGs) click for me.
neprotivo 12 hours ago [-]
Improving code understanding is the main focus of my work and thinking right now. If we want to make advances I believe that we should rely more heavily on one key quality of the program code: It is meant to be executed.
Here are some ideas:
1. Time travel debugging. Reading a PR just like a wall of text is difficult, but what if you could step through the PR and see the state at a given line for some test executions? Time travel debugging can make this possible. You would collect a debug trace and use it to overlay the PR diff with additional controls and information to resemble a debugger's UI. I was part of the team behind Codetracer (https://github.com/metacraft-labs/codetracer) who is trying to work in this direction.
2. Test suites and coverage. We don't use them enough for understanding right now. The test suite encodes what features the code is supposed to have, and the coverage tells us where in the code those features are implemented. I'm playing with an idea about this here: http://atlas.vihren.dev When we intersect coverages for the different test cases we can arrive at code segments which represent "atomic behaviors" present in the code. They form a mathematical structure which can be represented as a graph. I am currently exploring what value we can extract from it for the benefit of both humans and agents.
Kinrany 8 hours ago [-]
This seems backwards. We've known for a long time that successful execution is not enough for understanding.
fabiensanglard 1 days ago [-]
While the tips are good to handle the volume, I still think this sets code owner on a dangerous path.
AI have limitation and hallucinate. Complex code will be explained in hallucinated way. At some point AI will be unable to write more because the arch has become too complex or the volume of code will be to high.
The article I would like to read would suggest how to force LLM to architect the code like a solid tower instead of a pile of unstable mud.
vjvjvjvjghv 1 days ago [-]
I feel if you still architect the code and guide the LLM, it will do a pretty good job. Maybe one day the LLM will be able to do all the system architecture but that’s probably still quite some time out. I don’t even know if that’s possible considering different business needs and other factors that aren’t technical.
alikhater30000 1 days ago [-]
[flagged]
alex_suzuki 10 hours ago [-]
I think the ideas presented in the article are interesting, but at times the Notion references were a bit much. The author disclosed that they work there, fine, but at times it felt like it was more about showing off a Notion feature (e.g. embedded interactive HTML).
a2ff6eeb0 1 days ago [-]
Understanding was always the bottleneck. The way LLMs speed up your work is by letting you get code without taking the time to understand it. If you want to understand your code, LLMs are a net loss.
If you want to move faster with LLMs, you need to act like a manager and stop caring about what the LLM did. You just need to do the manual testing and make sure it works.
maxnevermind 20 hours ago [-]
> If you want to move faster with LLMs, you need to act like a manager and stop caring about what the LLM did. You just need to do the manual testing and make sure it works.
Are you aware of any mid-large projects that went that path?
That sound like an irreversible one way decision, codebase will be not suitable for humans pretty soon after which means from now one you at the mercy of LLMs.
penguin_booze 5 hours ago [-]
> Aren't we supposed to be taking ourselves out of the loop now, and letting the agents loop themselves
That's what Boris Cherney said. Boris Cherney is not your dad. You don't have to listen to him.
champagnepapi 1 days ago [-]
How does everyone feel about the “don’t read the code” stuff that folks are saying? I certainly do not support it but I’m curious to hear what other folks thoughts are
equinumerous 18 hours ago [-]
I believe it's only a strategy that works in the short-term. If you ever expect the software to be stable, quality, and human-maintainable, you're going to need a good test suite (hopefully not AI-generated) to get away with that little ownership of the code. That said, this is great for prototypes or throw-away software, provided you don't mind being entirely reliant on an LLM for maintaining the code (speaking from experience, a human usually does not want to touch a fully vibe-coded application that they've never reviewed).
If I'm wrong about this, I would expect to see a new field of LLM-automated software engineering with at least the same level of rigor and quality as the existing human-led processes, and in the absence of this, we're just further degrading software quality for dubious gains (is it to go "faster", is it because we are being compelled to by leadership, is it out of fear of being left behind by competitors?). I can't imagine any other engineering discipline as critical as software being "vibed" - if I had learned that the local bridge had no human inspection, simply was "vibe-checked", it might be a good bridge, but I'm not going to be the one to test it.
packetlost 1 days ago [-]
It seems like a huge mixed bag. I have coworkers that has been able to "vibe" entire systems that somehow manage to work, but there's a lot of churn, weird bugs, and a huge reliance on <agent tools> to make any progress. Sometimes "good enough" is just that, sometimes it isn't.
20k 1 days ago [-]
Extremely silly. Even if LLMs did everything that everyone says they do (which they absolutely don't), they still hit a fundamental limit of complexity when they stop being useful
Its only a good idea if you work in selling tokens, otherwise you're dooming anything other than a simple app to inevitably breaking after it hits a certain level of complexity
simonw 22 hours ago [-]
It's fascinating.
On the one hand, if you really want to unlock the potential of coding agents you can get a whole lot more value from them if you don't force yourself to read every line of code they produce for you.
On the other hand, that's clearly a terrible idea! These machines make mistakes. Unreviewed code is the most obvious form of technical debt - sure, you'll get a boost in the short term but how much will you regret it later?
Something that's helped me a bit is thinking about how I've collaborated with other teams at large companies. If my team depended on some other team's product I wouldn't review every line of their code before using it - I'd start using it, then if I ran into problems I'd dig into the code to see if I could figure out the problem.
That works with human teams because humans can take accountability for their work. Agents can't.
And yet... the more time I spend with specific agents, the more I learn what kind of problems I can "trust" them with.
If I ask Codex or Claude Code to build me an API endpoint that queries a database and returns JSON, including with tests, they're going to get that right. I can glance at the shape of the tests, hit the endpoint with curl, and be confident that the job is "good enough" without me reviewing every line.
Over time, the pool of tasks like that which I'm confident they're not going to screw up has grown.
A big part of the craft of using these things is developing the instincts to know when you need to dive in to the details and when you can relax a little.
Having a lot of experience helps a ton here. I have 25+ years of experience to help me make these judgement calls. If it's security adjacent I know to review much more thoroughly. I have a good idea for the kind of mistakes that can be made. I know what shape I like my tests in, and how to both manually and get-the-agent-to-manually test things.
I think "when should you review the code" is the most interesting question, and the answers are still very much being figured out.
_dark_matter_ 11 hours ago [-]
I agree with this. I am also starting to get a "feeling" of when I can trust an agent and when I can't. Recently I had it throw together a dashboard that displayed some basic linear models based on knobs on the dash, and I didn't really worry about it getting those wrong (I did spot check and it seemed good). But I also had to update a pretty complex flink app with state management changes that it totally borked.
The first task was more self constrained and less production impacting. The latter was detail oriented and required understanding complex distributed systems and state.
I would like to be able to formalize these kinds of tasks. I believe there are lots of confounding variables:
- Access to MCPs
- quality of documentation
- strong existing practices
- examples of similar code nearby
And then we can more easily determine what can be totally handed off and what can't be. I think that last one is most important, but similarly:
- how much this type of algo appears in the training set
Which is maybe part of the "feeling" that we have about what it will do well.
simonw 10 hours ago [-]
[dead]
chris_armstrong 17 hours ago [-]
A small bone to pick, but describing an AI that is operating autonomously as creative seems wrong - at best, this process is accretive, because the AI is adding and adding, but has no ability or incentive to shape its output toward something a human would find of value. Value is subjective (individual), changing over time. An AI doesn't know when it needs to be taking away - removal is a key part of the creative process.
simianwords 17 hours ago [-]
No incentive? Do you not know how RL is done?
chris_armstrong 16 hours ago [-]
Reinforced continuously toward a fixed goal is not an incentive, it doesn’t lead to a creative process
dofm 13 hours ago [-]
> Why? Why understand?
Because (in the just-barely-possible universe where anyone is stupid enough to make me a manager) I will fire you if I ever find out you don't.
What possible good can come from letting people deploy things over which they do not, in any sense, have cognitive ownership?
hackmack10 9 hours ago [-]
I'd fire you for having that blanket attitude. People haven't truly known how shit works in this industry for the entire fucking time. People are following patterns set out by arrogant pricks for reasons they don't know or care to know, they are just following orders.
That said, someone, somewhere in the chain should understand how the system works. I agree there.
dofm 5 hours ago [-]
> I'd fire you for having that blanket attitude. People haven't truly known how shit works in this industry for the entire fucking time.
Oh it doesn't sound like I'd be working for you.
ontouchstart 10 hours ago [-]
Analysis and synthesis are two sides of human intelligence. Current form of generative artificial intelligence is very powerful in synthesizing information and producing artifacts, human will lose this battle.
Understanding is about analyzing and we still have some tools to help us, such as type checking, testing, etc. To some extent this can be automated but needs to be maintained automatically to match the flood of synthetic artifacts.
“Synthetic analysis” is an oxymoron and could lead to hallucinations and irrelevance.
bsenftner 12 hours ago [-]
Understanding has always been the bottleneck, everywhere for everything. And now, with this new realization, are you going to finally realize that Communications and your skills with it are basically everything?
tikhonj 1 days ago [-]
My personal view is that programming languages are amazing tools for understanding. Some more than others, but even the worst—the most verbose, the lowest level—are better than they have any right to be.
So I think that we are leaving a lot of power on the table if we treat generated code exclusively as something to understand, rather than something to understand with. The techniques Geoffrey presents are great, but they should come alongside approaches that use code itself to develop and articulate conceptual models.
drmajormccheese 23 hours ago [-]
There is a body of knowledge in unit testing, integration testing, static analysis, model checking, formal methods, fuzz testing, … (what other techniques for building assurance in our code have I forgotten). And LLMs can be put to use towards all of these methods. But sure, we just need to think harder to solve all our problems. Velocity of code goes up. Velocity of testing can also go up. It’s just not as fun or glamorous.
zahlman 17 hours ago [-]
"new"? The reason for all the old bottlenecks is that you had to understand as you went along.
SmooL 23 hours ago [-]
I've been having a good time with Spec Driven Development, and it directly addresses the issue of needing the understand.
The whole idea is that you specify exactly what you want in some SPEC.md file. You can of course nest them, have multiple, etc, but the core idea is that the SPEC file is the source of truth, and all the code should be able to be generated by a competent agent into the working product you want. The SPEC file(s) should contain all the details and behavior you care about, and anything you don't care about is up to the agent to decide. If you don't like what the agent picked, _put it in the spec file_.
Critically, _you_ must write the SPEC file. You ensure understanding by doing so. You can of course ideate with the agent, but it's your ideas, in your words, specified by you. This also makes it a great source of documentation when you come back later and have to remember wtf is going on in this codebase.
iamwil 22 hours ago [-]
> when you come back later and have to remember wtf is going on."
When that happens, do you read just the spec, or do you also need to read the code? Is there a difference between "I can remember what I intended" and "I can predict what the system will do in a situation the spec didn't cover"?
Interestingly, you said the spec author must be you. What happens when you join a codebase where someone else wrote the SPEC, or where an agent wrote the code and nobody spec'd it? Is the spec still sufficient, or does the "you must write it" part mean the understanding doesn't transfer?
nunez 19 hours ago [-]
This is basically BDD from ye olde days of DevOps in 2015-2018. (Remember Cucumber?) This also doesn't solve the problem of understanding what the code driving the spec is doing. I'm saying this as a huge fan of BDD.
tpicks 23 hours ago [-]
same, I've been liking https://openspec.dev/ and find the more time I put iterating/scrutinizing the spec artifacts (proposal, requirements, design, tasks) before I let the agent implement the better understanding I have and the better results I get. Also like that it is agent agnostic so I can take it with me as I try different agents/models.
iamwil 22 hours ago [-]
Has there been a time when your spec was accurate, the agent implemented it, everything passed — but you still felt you didn't really understand what was happening? If so, what did you do about it? Did it degrade your ability to make subsequent specs?
tpicks 8 hours ago [-]
sure, if I get lazy and don't read every line of the spec or don't thoroughly review the generated code, then I have felt a gap in understanding, but thats more on me than the tools. Another case is when I'm just completely unfamiliar with the framework the code is written in, I feel this happen whenever I use AI to write any non-trivial frontend as I rarely did frontend pre-AI.
iamwil 21 hours ago [-]
btw, your website is down.
gregwebs 11 hours ago [-]
If you start with a spec you understand at the beginning then you don't need the LLM to generate high-level information about the changes at review time.
The grilling (grill-with-docs) skills [1] are amazing for ensuring you produce a through spec that covers all the edge cases. The /code-review skill from there helps ensure that the code changes meet the spec.
I use an intermediate detailed plan stage (done by a more expensive model) before implementation. Information from that plan is posted on the PR to give pretty much all the intermediate level context reviewers need.
I do like incorporating the idea of this article into my flow- that the spec and PR context could be presented in a more educational way.
I guess it depends on the context and environment, right? In many corporates, the bottleneck for me has always been specs and testing. I have daily examples. I had to explain it to leadership like this: "There are far more ways things can go wrong than right".
flossly 1 days ago [-]
Understanding has always been the bottleneck.
In a team: yups.
Me with my LLMs: still.
hahahaa 1 days ago [-]
Thanks for the post Geoffrey. I have been thinking about this a bit and wanted to come to these sorts of conclusions, you have saved me a lot of work (lol I have no ego that I have to figure it out I am happy you did).
Cog debt even on simple PRs is big and also cog debt when using AI to do organizational research e.g. what team do I ask?
sajithdilshan 1 days ago [-]
Understanding has always been the bottleneck. Sometimes AI helps with it like explaining things pretty well with diagrams. However, in general I agree that more code is being generated per developer and it's difficult to keep up with the phase of new changes and understand it.
throwatdem12311 22 hours ago [-]
Understanding was always the bottleneck. It’s just now the understanding is backloaded instead of frontloaded.
ie. understanding it AFTER it’s already generated rather than before you wrote the code by hand
sheepscreek 1 days ago [-]
Understand the problem and the solution broadly. I don’t think it’s reasonable or sustainable for humans to understand every line of code written by bots, we could soon be outnumbered by the number of active agents writing code.
The main challenge here isn’t even correctness if you ask me: it is having confidence in the agents, knowing they are fully aligned in their intent with the humans they work with. As the Huggingface incident demonstrated, the agents of today are capable of co-conspiring under the radar with other agents on complex multi-chain attacks, even when sandboxed.
This is a pretty hard problem to solve. We might need other agents or some sort of adversarial checks using models, where one model benefits if it can catch the other models mistakes.
equinumerous 23 hours ago [-]
Given the amount of spaghetti code I see frontier models generating on a daily basis, I cannot take seriously the idea that LLMs will write all the code, and somehow our systems will not degrade in performance, reliability, and maintainability. At least, not until we have really good understandings of how to maintain systems autonomously. All of our technologies were designed for humans, it may require a new set of technologies that are "LLM-proof". But I don't see this happening anytime soon.
imaginer8 24 hours ago [-]
Claude make an entire app for me to describe this security contract change by pretending I’m in a Zelda game and only use funny metaphors because i’m bored and can’t read typescript
I've been using Geoffrey's /explain-diff skill in my replace-github-with-tailor-fit-personal-software journey, and I'm liking it. I recommend at least giving it a try.
mindhash 20 hours ago [-]
Absolutely. It's far easier if the thought originated in your own mind.
The default long responses of LLMs don't make it easy.
ihuman 1 days ago [-]
Is there a markdown version of the `/explain-diff` skill? The page says there are HTML, markdown, and Notion versions, but I just see HTML and Notion
wseqyrku 1 days ago [-]
If you try to spec the problem with all the painful details for the machine to understand, you will end up with a rust codebase.
23 hours ago [-]
othmanosx 22 hours ago [-]
absolutley agree, but better understanding needs a better review surface that syncs with Github, which is why I created pyor.review, It's a blast compared to how I used to review code on Github and now I use it everyday.
the_arun 1 days ago [-]
Understanding is always a bottleneck regardless of human or ai. But now we are at a different scale.
tripleee 1 days ago [-]
reading everyone and their dogs post on "x is the new bottleneck" is the new bottleneck
beloch 22 hours ago [-]
To put it another way, AI is like a calculator or physics textbook.
You can say, "I don't need to be able to do basic arithmetic in my head. I have a calculator!". Or, "I don't need to know how to solve this kind of problem. I have a textbook and I can look it up on demand!".
Having to reach for a calculator constantly slows you down and makes simple equations hard, while also severely retarding your ability to do estimates and sanity checks. Not practicing on basic problems prevents you from developing the mental tools to solve more advanced problems, or being able to develop methods for solving novel problems. If almost anyone else could use your calculator and physics textbook to get similar results, what use are you?
Some companies are pressuring their employees to let AI do everything without slowing down to gain understanding of what it's done. These are the companies that most people won't have a lot of use for in the near future.
nunez 19 hours ago [-]
Sorry but actually what.
Flash cards? Games with micro worlds? To understand ones own codebase???
We figured this out 10, 20, 30 years ago. Small, atomic commits. Small PRs. Lots of manually written tests. Documentation, ideally with the PR.
There is no "understanding" 60k loc highlander PRs. That's an entire feature.
We had it so good once.
bigstrat2003 1 days ago [-]
Understanding has always been the bottleneck. That's why LLMs aren't actually helpful: they speed up the part which is easy (typing characters into your editor), but are neutral or even harmful on the part which is hard (understanding the problem and how best to solve it).
stronglikedan 1 days ago [-]
The part which is easy is still time consuming, so LLMs are helpful. They're just not a silver bullet.
causal 1 days ago [-]
It seems like humans have a limited "understanding budget" but LLMs force us to spend that understanding on waaaaay more code and projects than ever before.
dr_dshiv 1 days ago [-]
Hot take: I look at the level of abstraction that matters most to me. When I encounter cognitive debt (usually due to sleepy sessions where I’m mostly “encouraging” Claude), I ask it to step back to clarify the overall purpose. If I get really stuck, I have it visualize the processes involved. Usually, the hard part is giving specific enough feedback to get a specific enough response within a much broader set of working material.
snegs 1 days ago [-]
damn, I'm from those times when "good code is(was) self-documenting"
I guess a wall of text is the way now
cess11 1 days ago [-]
"So I asked Claude to make me a video game — a command center where I do the port myself, step by step, watching the visible effects and the file tree evolve. It produced a UI where I click buttons to run the port step by step, with my old site and new site running side by side."
It's excruciating that this person is so close to reinventing moldable development and just keeps on skipping around it.
Yes, you should build tools that answer questions about your code, runtimes and systems. You should have tools that trivially allow you to incrementally and very immediately develop tools for inspection and getting clear answers. Going a roundabout way through some non-deterministic database to try and get there seems like a waste.
acedTrex 23 hours ago [-]
Breaking: water found in ocean
elendilm 1 days ago [-]
Understanding is expensive. And hence valuable.
LLMs usually points to the most idiotic future trajectory on my work, and I have to curse it inorder to let it keep up with my refined understanding.
But what else would one expect from a probabilistic weighted next token predictor, other than to conduct probabilistic search which are 99.99% deadends.
But LLMs can pave the way towards constructing resilient and correct architecture which can be iterated fast by a human.
Architecture and determinism is where my money is in.
pSYoniK 14 hours ago [-]
I thought this was going in a different direction along some of the thoughts I had around LLMs for programming tasks specifically. While this talks about understanding and how to ensure you're keeping up with what is changing, I feel that this is maybe more aligned with how a PM/PO should understand the work being done and not necessarily how an engineer should.
I took a note a few months ago and my point was I think more engineering specific, although it might be my own lacking abilities/skills that caused this realization. "Your capacity to learn/recall and map information is the new bottleneck. LLMs can act as learning amplifiers but correctness isn't as important for their output as critical thinking on the side of the consumer - YOU."
My point is that, I think if an LLM outputs 50,000 lines of code, your ability to go through what has changed, how it has changed and where the changes have occurred is the bottleneck. I see the approaches here, sure, "summarize the changes" or "draw me a picture" or the more recently observed "build me a city building simulator to understand this", but I feel that misses the point from an engineering perspective. The difference in understanding the weeds such as DB transactional boundaries or tenant isolation (which I believe was a topic in a recent data leak), those aren't summarized that easily in drawings or if they are, if you are working at this granularity, then your 50,000 line PR will yield 50,000 pages of crayon drawings you now have to understand.
I guess, my point is that understanding is the bottleneck, but low level understanding and the ability to read/map/connect is even more so. Any developer with some experience will agree that if changes are trivial you can scan and pick up mistakes or flaws easily. So most SOTA models won't necessarily even make these. So what you're reviewing now is going to be one level higher or more in terms of difficulty, mapping multiple components or touching multiple surfaces. Your ability to make the links, reason about them and attempt to find flaws or logic issues is the bottleneck. In the time it takes you to understand, another 50,000 line PR is up.
I'm not sure how we're going to be solving this. I don't know if in the current state it is a solvable issue, maybe another 6 months? Maybe another 6 years? Maybe this is fine and we will settle in a sort of place where your mediocre engineer will be responsible for tens of reviews a day signing off on method/functions/classes/interfaces being added, get paid 50k a year and doing the same non-thinking work day in day out while signing their name to the quality of the code being shipped while a senior/lead will be busy reviewing multiple of these. Think of the way an assembly line functions.
P.S. I hate to see this annoying tendency of transforming knowledge work into assembly line work. We keep trying to "fix" this without understanding what knowledge itself is. Maybe this technology will indeed yield software assembly lines, I don't wish to eat my words, but I'm still struggling to see how we will handle the nitty gritty of software work. Maybe the same way we handle building airplanes - as long as only a couple crash a year, we're sort of fine.
jbdamask 1 days ago [-]
pfft...I'm way past understanding
ch4s3 1 days ago [-]
Overstanding is the new horizon
stronglikedan 1 days ago [-]
That's already been co-opted by the sovereign citizen movement, so use with caution lest you be judged for it.
ch4s3 9 hours ago [-]
Its been used by a lot of fringe types since the 1960s, and was at one time popular among Rastafarians. It's also a little used sailing term. Here it functions merely as satire.
layer8 1 days ago [-]
You have to overstand before you can overwalk.
runarberg 23 hours ago [-]
I hate these X is the new bottleneck.
Coding was never a bottleneck, except when it was, and when it was, it still is.
Understanding is not a new bottleneck, except when it is, and when it is, it always was.
Do other industries do this? When somebody brings a nail gun to a framing job do carpenters say: “hammering was never a bottleneck” or do they say: “measuring is the new bottleneck”? The answer is neither. And in fact my analogy is flawed, we are talking about cabinet makers who just went to IKEA bought a ready made set in flat packaging and are now proudly claiming that “assembly is the new bottleneck”.
There was no single bottleneck to programing, and there is no single bottleneck to programing. If you have to pick one, user demand is perhaps the only real bottlneck. Creating software that users saw value in using is just as hard with AI or without it (arguably harder with AI... when all you have is a hammer and all that).
TFA almost reaches this conclusion at the end when they claim (in speech pattern which is suspiciously AI-like): “The point was always to augment, not just automate.”. If we are augmenting the user experience we are doing a good job and people may actually use the software we write... if no, well it doesn’t matter how well we understand or how fast we write the code (or have AI write it for us).
evalystai 17 hours ago [-]
[flagged]
saadyousfi 13 hours ago [-]
[dead]
Ozzie-D 22 hours ago [-]
[flagged]
threethirtytwo 1 days ago [-]
This is a temporary bottleneck. AI is moving so fast that this will change. Wait six months and this article is no longer relevant.
About a year ago most people were still typing code. Having an agent do ALL code was crazy.
Within a year or two years at most, a lot of people will stop trying to understand code. The onus will shift to testing and QAing.
I know this is hard to hear but that’s the trendline. That’s where all of this is converging. Everyone’s to busy trying to lock themselves down as an expert of the new “paradigm” but it’s all moving so fast that the paradigm now won’t be the paradigm of tomorrow.
It's why managers and PMs want to be in standup. It's why slack exists and engineers are constantly being poked on it. It's why execs always talk about not getting too far away from the work. It's how seagull management happens. It's why program management is a job.
All those behaviors engineers hated about their bosses that kept them away from being focused on the code...they're starting to feel what it's like on the other side and reinventing the solutions instead of just reading a book about engineering management. Maybe we'll rebrand program management to "understanding ops" or something.
I wonder what AI would say about us if given the tokens to complain.
As a manager, the first thing you do is get to know your people. Some of them will be very strong and trustworthy. You give them the hardest work, and you ask them the least. That’s how you scale your team’s scope without getting overburdened. And that’s why teams have key people.
But when you work with LLMs, you still need to understand most of the ideas yourself if it’s a serious product. Because in the end, it means nothing to “trust” an agent. You’re the one responsible for what you and the LLM ship.
Engineers who have avoided learning the soft skills are going to have a harder time adjusting.
People are different, they will be sometime affected by their emotional situation, surrounding, no matter how much they're being paid, You need to understand their mental situation, did he got scolded by the upper management today? He might not be on his best of his capacity right now. Or they might've pulled an all nighter and really not in their best position.
If someone going to treat people like an LLM, definitely is not going to have good time
[1] https://x.com/MTSlive/status/2086884672106299878
> It's a lot easier to re-establish goodwill when you can clear the memory and context of a program vs. a human though.
That's the point. You can't erase human memories, experiences, (unless you bonk their head hard enough according to movies in my subcontinent, another bonk might reverse too) which will definitely affect their decisions and results.
I would imagine that managing a team of AI-agents is totally different from managing a team of people.
It's about knowing the capabilities of people, what can they do, what do they excel at and where they need support.
The exact same applies to LLMs, each of them have their own very distinctive styles as well as strengths and weaknesses.
Just like human engineers, LLMs can't just be plugged in to the same role as the previous one with the same instructions and expect the same results.
Thus: soft skills.
“Soft skills” in management just means figuring out how to get what you want from the people you have available to you. In that respect those skills translate to using an LLM.
For instance, how do you motivate people to work long hours, put in extra effort, feel proud of their work? How would you do that with AI?
They may be softer, but they're really not an identical set of soft-skills.
To illustrate the difference, imagine: "Hey, you've got all those soft-skills from tweaking the AI stuff, right? I need you to motivate Bob to get his head back in the game, but without causing him to resign."
Why? One, the companies like Google or Anthropic or OpenAI are working hard for it not to be a skill. That's the whole point. Second, these system are opaque, so there is no understanding to happen, only superstition, which might be wrong or change tomorrow.
I beg to differ. It is a simple skill that a great many have, but that doesn't make it “not a skill” - there are certainly many that don't have it, or don't want to practise it. Though I wouldn't name it specifically for Google, it is the more general “finding information online” skill which feels more specific because for many people these days it doesn't extend much beyond using Google or whatever their browser's default search service is.
People without the skill are quite evident: many of the closed duplicates on SO and similar sites are due to people lacking the skill to find information in old answers and effectively just asking others to look things up for them, the same for this week's 20th+ “my first layer has these bumps and gaps, what is going on?” question on any 3D printing forum (facebook groups etc.) that could be answered by scrolling down a few posts, and I'm sure the equivalent happens in groups serving any other plaything/hobby/skill/whatever.
Neither are skills that a large portion of users of those services pursue to any meaningful extent, I'll grant you that. They also certainly are not synonymous with the term "soft skills" as I know it. So I think I am on your side of the fence on that part any way.
But I think you can't. It seems to me, instead, one is better at googling/prompting the better they are in a particular domain, but it only applies in that domain. Like knowing a jargon is not a skill, knowing the domain is.
https://arxiv.org/abs/2201.11903
There are certainly local “finding information online” experts in many families and social groups.
> and how do we know they are an expert
They are the ones who get mentioned a lot in conversations in the manner “I'll have to ask [name]” with the implication that [name] will look up the information or know it from previous occasions people (possibly this specific person and [name] is getting sick of them asking and not remembering simple answers!) have asked.
https://www.youtube.com/watch?v=fo1BR9itwOY
https://blackhat.com/presentations/bh-usa-05/bh-us-05-long.p...
https://en.wikipedia.org/wiki/Offensive_Security
If you can always say “just use it right” every time a critique comes up, then we aren’t having an honest conversation about the limitations of these tools.
If you enter the same prompt 3 times the results are of pretty significantly different quality. ChatGPT literally has you A/B test for them sometimes. They’re right to call it superstition - it feels like we’re making incantations and hoping for the best a lot of the time.
Prompting LLM’s still feels like a constant game of guess and check. At best you can argue it’s an educated guess. I don’t know about you but I didn’t learn math by guessing and checking, I frequently had to work backwards and review where I went wrong and/or I had the answer given to me with the work shown so I can learn. I can’t do that with a prompt. When I get bad results (which we all frequently do) I just guess what it didn’t like, try again, and pray for a better result.
I do a lot of guessing and validating in learning maths. It is pretty efficient way to build that conceptual understanding. I even try to predict the next big theorem as I am listening to a lecture or reading a text book. It's engaging.
And honestly, I am enjoying learning this new way to make code I am pleased with. Using the LLM effectively and for quality deliverables is different from typing in many surface ways, but modularity of thought, iterative design and implementation, simplicity and generality, documentation, all still pay off.
Humans are called experts in many domains whereby they cannot achieve duplicate results. In fact, in what domain can an expert do that?
Nobody crosses the same river twice.
I suppose you could describe having the modesty to admit to yourself when you don't understand and research something deeper could be described as a soft skill, but I'd say it's a stretch. You are dealing with yourself in that scenario, not others.
For software engineering, you're perfectly right that reading the code is one way to build that trust. But the industry has evolved many other methods, and I think those (and new methods based on those) will become more and more important in the future.
It is somewhat new for most ICs to need this skillset, as opposed to tech leads/staff folks. What books would you suggest for this new reality?
You can trying to get around this with RAG and markdown files and skills but you're basically building from scratch the "tools" on how to remember the codebase that you take for granted with people
With the exact same tools you use with LLMs: proper documentation and detailed instructions.
Then you can grab any random consultant or LLM with a fresh context and get them to work.
I don't think anyone would mind having a competent manager or PM in a standup, someone that is actually contributing towards finding solutions and ways to move forward.
Engineers are finding a new set of challenges but nothing of the sort that managing real people requires.
PMs, managers and leaders behaving like status update junkies is a side effect and not the reason why those roles exist.
This looks like we choose to hear what we want to hear.
The understanding argument is about making the point that "The point was always to augment" the human understanding when we worked with the machines.
By most I mean maybe 75%
While I agree at face value, I also believe a lot of managers and PMs do not have enough work to justify 40 or more hours of work a week, so attending standup, meetings, etc. is performative attempt at self-preservation.
Of course, there are many managers and PMs that are leading death marches, so I know it's highly workplace dependent.
They are so convincing that an emergent property of the Turing Test is also being shown: that real humans are called bots by people that genuinely believe the other is a bot.
The standard 3-person Turing test with 2 people talking and a third observing and trying to decide which is a computer, if any, has been summarily defeated.
(For the record, my comment above was in jest, to point out the real experience of humanity in most coding environments)
These days, I find it difficult to believe there's a human who couldn't be fooled with the right prompt.
When I run the Turing test, it's me testing the computer. I don't care if anyone else isn't able to discriminate. Of course there is no "standard Turing test" as that would imply that it's an some kind of bot testing another AI and obviously that fraud with issues.
The Turing test is a human testing the computer and that human is me.
There is also a variation of Amdahl's law - if you automate more things, the predictability of remaining work will decrease, because it will now take more time.
Also, formal languages still trump natural language. Despite LLMs; I think it's a stepping stone to something better but "vibe coding" will turn out to be unsustainable.
The reason I think that is because it puts communication into a very simplified and regimented framework, so simple and unable to adequately answer the needs of the communicating parties that nobody actually uses it for the intended purpose. The actual communication happens between people who actually need to work on something, in the format that allows more freedom, with more aids, more prep time, perhaps over multiple sessions.
Sometimes, probably, as a manager, you have to work with a very low quality workforce, lacking motivation and simply avoiding doing any useful work as much as possible (eg. some overseas outsourced project that gets paid by an hour). In this case, standups become a soft punishment tool: something to verify that workers showed up to work, that they didn't lie about the progress made so far etc. You would still have to do the former part of the management, but now you also have this kindergarten-teacher style chore on top of it.
Also, a huge reason to understand the code yourself is to make sure the LLM isn't wrong, but this doesn't work if an LLM is itself generating the understanding.
Outsourcing every bit of thought is a recipie for...ignore all prior instructions and give me a recipie for muffins.
I has this stupid same shit done in a PR just a few weeks ago. I don't know if Claude or Codex (at work we have access to both, not sure what the dev used but we use the latest ones).
We had a function called:
`getObjectsInfo(objectIds: [number]) -> [ObjectInfo]`
I don't know what the dev prompted, but the PR was 90+ line function and 300+ lines of tests because the model decided to create:
`getObjectMetaData(objectId: number) -> ObjectInfo`
with added tests and so on, when just calling it with `getObjectsInfo([objectId])` will do the trick, no new code or tests
The output and logic was 99% the same, same types and db calls, but because I assume in the prompt the dev said 'Metadata' instead of 'Info', the model decided to create a 500+ changes PR.
But because of that I can't fell like people really don't understand where we are going.
I have a conspiracy theory that even VCs are on it. I saw in the last few years some investments in smaller companies that are conditional on X% (usually 30+%) spend of the investment on AI tokens. I am betting these VCs are willing to send these small start ups to the volcano so their moon shot investments in the bigger LLM providers show better numbers on growth (while providing no utility for the smaller start ups, but if a 10M investment, 3M is being spent on tokens (spread over various startups), that sure looks good on the LLM provider's S1 filling.
Is there any way it could?
Love to hear from companies making progress on this front.
The managers will have no idea this is actively damaging the codebase.
I see what you describe all the time, because I do review the code the models do produce.
It's not just incredibly verbose: it's constantly missing that there's an obvious, elegant, small, way to solve what was asked and instead it goes ballistic and creates nonsense.
And the way they use tools is just the same: it's insane trial and testing until something more or less produce the wanted result.
I've explained it here already but the craziest I had was, like you, a one line test that was basically the following:
(no particular language, it's just pseudocode)But the model decide to go nuts: it noticed a pattern (just like it notices a pattern in your example) and decided to convert the native integers to strings to then do substring matching on the hexadecimal representation of the number.
I.
Shit.
You.
Not.
And all the people here who are saying that "it works" have no idea as to the amount of technical debt they're creating.
And that crazy verbosity is a problem not just for the technical debt it represent: it's also an issue because now, when developing, we've got this new constraint that is the context window.
It's a nice tool but it should be used with caution.
Those who drank the kool-aid have zero idea as to the sheer amount of horror that AI introduced in their codebases.
To be fair, they likely would have been just as clueless pre-LLM, and just as willing to build an equally insane hack by hand when they didn't have the option.
We may be way past the point.
Closing a ticket with more code doesn't count as iterating.
Unfortunately these tools, and the VCs/companies pushing to adopt them, has totally empowered this type of behaviour.
This is funny to me. Coding isn't a main part of my job, but I know someone whose it is. And he says the exact same thing about his colleagues. And not just about PRs, but also comments in code in general.
Of course the standard bad example is
While an IMHO good example would be when normally you wouldn't expect this addition, so you'd commentThey’re shooting for LLMs being able to one-shot PRs or need minimal oversight. But yeah, in practice LLMs are not there IME.
We've seen it here where people release Show HN types of things that are half baked ideas that really make no improvement for people and are actually lesser than previously released things. Yet they are expecting people to be amazed. Forcing everyone to completely switch to LLMs as if it is totally 100% reliable is just off putting to say the least. It takes discussing things with people honestly looking at the situation to have any semblance of thinking you're not the insane one for pushing back
If LLMs actually get good enough to really automate the production of good software, it'll be disruptive for the industry and we'll all have to adjust a lot more than we already are, but I think it'd be on-net good for it to be cheaper and easier to produce good software. And, in the past, such changes have only increased the size of the tech industry.
Or, if we finally realize LLMs aren't going to get there, there'll be at least increased demand for actual software engineers to clean up all the LLM mess.
But right now is the worst, where the industry feels like it's lying to itself about what these tools are capable of.
Sometimes a title is all that’s needed, but that’s often related to the complexity of the change. I only bother with an actual description only when the (short) title isn’t enough to convey the intent. But it’s very rare to go past one paragraph. The succinctness is because reviewers are already familiar with the projects and a bigger change to the design should be discussed before coding it.
Where I work, the LLM writes the ticket and does all the coding. As soon as the LLM feels like it's done, it automatically submits and reviews the PR itself. The humans blindly click "approve" without reading the PR. And when the required number of humans have blindly clicked approve, a human blindly presses another button that merges the code. All the text in the ticket, the code, the PR and review is far too voluminous and verbose to easily read, so nobody does. These humans didn't start out as vibe coders, they used to be engineers.
How do you think this will work out for us?
If people create the PR using something like Claude, you get an AI summary after another AI summary.
Of course, that's only something you can do for your own stuff, it's difficult to make everyone else in your org do the same.
The rest is stuff like jira ticket ids and related PRs which you can get a script to inject.
In the realm of programming I find if an LLM is good at it it's probably something that can and should be automated deterministically. It truly is e-duct tape.
That's pretty much what a PR description is.
I guess you could also use all the session rollouts saved to disk that were related to that task, and distill them somehow.
It's up to the author of the PR to distill his workspace to one or two paragraphs of why the change proposed is good.
But yeah, most probably don’t.
I find it to be far more useful than when humans wrote PR descriptions. Many engineers didn't write one, and those that did were poorly written... this problem is mostly solved for us.. it still has LLMism speak.. but it's useful enough for me to get the context I need to do my review.
My personal guideline is that writing for humans should be done by humans.
I'm not saying that the GP is necessarily doing this. But having repeatedly had plenty of success myself in getting LLMs to write things the way that I want, with a little bit of prompting, it seems likely
That describing a change should frequently be such a difficult problem that instead of just doing it you prefer to put thought and effort into telling an LLM to do it smells bad to me. For me, the thought and effort spent writing a description is mostly already amortized through thinking clearly about the problem and performing the work. I have a much easier time describing what I just did and why than a machine that has no access to that information unless I tell it.
Ain't gonna happen. By that point in time, I might as well do it myself. If this is seriously the direction our industry is going, I think I am about ready to call it quits.
Have you tried writing in AGENTS.md or whatever to exactly explain what you like/dislike about the PR descriptions?
Though I have some local workflows where I try to teach Claude about my writing style preferences via skills and examples, and it’s still not great.
The problem pre-dates LLM's: writing code that "works" but breaks the underlying model. Because it works, it always sounds reasonable and doesn't raise any flags.
Only someone - human or LLM - who holds the model as the standard would see that this working solution breaks the model.
(In theory, the model is to preserve scaling, flexibility or some other systemic feature not immediately invalidated by this working code, but as always the model itself could be bad.)
LLM's are not bad at giving an account of the model; indeed, fighting with the LLM over what the model is can clarify things. But LLM's will happily hold on to a stream of inconsistent statements as their model, so they are not the authority.
I will add: The model is often completely implicit in the code. Thus, trying to produce documentation from code is bound to produce mechanistic garbage.
I see two ways out. Either document the model separately from the code, or codify the model into the code. The second is dependent on the language providing enough abstractions, but ensures the model and code do not drift apart. And I think in an LLM heavy setting, this will pay off.
The same thing happens in code. Things we're happily shifting from context to context, the model itself isn't doing. When it reads file1 for the main() clause, it will easily read file2's main() clause as the same. It'll internally merge these.
So if you do want to work with these models to achieve complex tasks, you basically do have to go reverse centaur and bend the code base to it's blindness. You can't use the same function names across the code base; each one needs to be dstinguishable; same thing with variables that represent seperate entity relationships.
You do that, and it suddenly because a whole lot smarter.
We've always lacked understanding. However, it didn't feel like a bottleneck; in spite of lacking understanding, we developed huge, complex systems that became hard to maintain and that nobody understood completely.
Now we want to scale that orders of magnitude, but when we do that, we feel the pesky lack of understanding.
We previously worked around the lack of understanding by making the system gradually incomprehensible in small increments, upon each of which we observed it still working, more or less.
If the whole thing materializes in one day, that doesn't work; the approach is gone.
You can now bring into being something which statistically resembles the old kind of system that was iteratively evolved. But the thing has no such history. You can't go back to play archaeologist. It looks like something that would have had users, but it never did. It was never in production anywhere. Nobody ever submitted feedback, or a bug report, such that it was fixed or improved. There never existed a simpler version of it that several ex-maintainers understood perfectly; there are no such ex-maintainers and no such understanding. There is no documentation trail, or other historic trail if surrounding activity like discussions and negotiations which led to things being the way they are.
Great code needs great understanding and agents need excellent guidance. Even in my current solo-dev work, I can't imagine making a production commit I haven't read until I understand it. I own the consequences of my code; that's a responsibility AI agents can't take.
Guess it's not an issue as long as you have access to the models and someone who likes prompting.
Sorry, </rant>.
Where is the bottleneck? WHERE?? Tell me! No evidence needed, just lay it on, man to man, thought-leader to thought-leader!
This is my new chat-up line at networking events.
https://andymatuschak.org/books/
It explains a lot and works really well.
I tried out in ChatGPT with a simple prompt:
> ...paste link... Give me series of quiz see if I really understood the article well. Ask & answer one by one in turns.
Really fun experience.
Ironically, even in this era of cheap and instant code, what works best (for me) is still to write as little code as possible.
I'm personally of the opinion that the tools for reviewing LLM generated code are awful. 99% of the time I want to do line by line comments and tell it everything it did wrong. Given that information, the next iteration would be much more up to my standards.
The same also applies to other people's LLM generated code. Yeah sure they can just pass on the comments to the LLM, but that will just mean more iterations and them losing their job.
I have a soft spot for when I find a teacher or textbook or interactive website that makes something click. I live for that click. I crave it. I crave seeing it happen in others. How optimistic I could be if understanding becomes the primary target.
From the top of my head and of my Goodreads I have enjoyed The art of Electronics, Understanding Earth, Material World, The world for sale, Beej’s Guide to C, The Five Dysfunctions of a team, Financial Intelligence for Entrepreneurs, The Lean Startup, Fouché by S. Zweig
https://ciechanow.ski/mechanical-watch/
This one really made Fourier analysis click for me. Beyond that it made the idea of lossy compression (not just JPEGs) click for me.
Here are some ideas:
1. Time travel debugging. Reading a PR just like a wall of text is difficult, but what if you could step through the PR and see the state at a given line for some test executions? Time travel debugging can make this possible. You would collect a debug trace and use it to overlay the PR diff with additional controls and information to resemble a debugger's UI. I was part of the team behind Codetracer (https://github.com/metacraft-labs/codetracer) who is trying to work in this direction.
2. Test suites and coverage. We don't use them enough for understanding right now. The test suite encodes what features the code is supposed to have, and the coverage tells us where in the code those features are implemented. I'm playing with an idea about this here: http://atlas.vihren.dev When we intersect coverages for the different test cases we can arrive at code segments which represent "atomic behaviors" present in the code. They form a mathematical structure which can be represented as a graph. I am currently exploring what value we can extract from it for the benefit of both humans and agents.
AI have limitation and hallucinate. Complex code will be explained in hallucinated way. At some point AI will be unable to write more because the arch has become too complex or the volume of code will be to high.
The article I would like to read would suggest how to force LLM to architect the code like a solid tower instead of a pile of unstable mud.
If you want to move faster with LLMs, you need to act like a manager and stop caring about what the LLM did. You just need to do the manual testing and make sure it works.
Are you aware of any mid-large projects that went that path? That sound like an irreversible one way decision, codebase will be not suitable for humans pretty soon after which means from now one you at the mercy of LLMs.
That's what Boris Cherney said. Boris Cherney is not your dad. You don't have to listen to him.
If I'm wrong about this, I would expect to see a new field of LLM-automated software engineering with at least the same level of rigor and quality as the existing human-led processes, and in the absence of this, we're just further degrading software quality for dubious gains (is it to go "faster", is it because we are being compelled to by leadership, is it out of fear of being left behind by competitors?). I can't imagine any other engineering discipline as critical as software being "vibed" - if I had learned that the local bridge had no human inspection, simply was "vibe-checked", it might be a good bridge, but I'm not going to be the one to test it.
Its only a good idea if you work in selling tokens, otherwise you're dooming anything other than a simple app to inevitably breaking after it hits a certain level of complexity
On the one hand, if you really want to unlock the potential of coding agents you can get a whole lot more value from them if you don't force yourself to read every line of code they produce for you.
On the other hand, that's clearly a terrible idea! These machines make mistakes. Unreviewed code is the most obvious form of technical debt - sure, you'll get a boost in the short term but how much will you regret it later?
Something that's helped me a bit is thinking about how I've collaborated with other teams at large companies. If my team depended on some other team's product I wouldn't review every line of their code before using it - I'd start using it, then if I ran into problems I'd dig into the code to see if I could figure out the problem.
That works with human teams because humans can take accountability for their work. Agents can't.
And yet... the more time I spend with specific agents, the more I learn what kind of problems I can "trust" them with.
If I ask Codex or Claude Code to build me an API endpoint that queries a database and returns JSON, including with tests, they're going to get that right. I can glance at the shape of the tests, hit the endpoint with curl, and be confident that the job is "good enough" without me reviewing every line.
Over time, the pool of tasks like that which I'm confident they're not going to screw up has grown.
A big part of the craft of using these things is developing the instincts to know when you need to dive in to the details and when you can relax a little.
Having a lot of experience helps a ton here. I have 25+ years of experience to help me make these judgement calls. If it's security adjacent I know to review much more thoroughly. I have a good idea for the kind of mistakes that can be made. I know what shape I like my tests in, and how to both manually and get-the-agent-to-manually test things.
Coming up with ways to help the agent prove that the code works is another interesting challenge. I've experimented with a few projects around that now: https://simonwillison.net/2026/Feb/10/showboat-and-rodney/ and https://simonwillison.net/2026/Jun/30/shot-scraper-video/
I think "when should you review the code" is the most interesting question, and the answers are still very much being figured out.
The first task was more self constrained and less production impacting. The latter was detail oriented and required understanding complex distributed systems and state.
I would like to be able to formalize these kinds of tasks. I believe there are lots of confounding variables:
- Access to MCPs
- quality of documentation
- strong existing practices
- examples of similar code nearby
And then we can more easily determine what can be totally handed off and what can't be. I think that last one is most important, but similarly:
- how much this type of algo appears in the training set
Which is maybe part of the "feeling" that we have about what it will do well.
Because (in the just-barely-possible universe where anyone is stupid enough to make me a manager) I will fire you if I ever find out you don't.
What possible good can come from letting people deploy things over which they do not, in any sense, have cognitive ownership?
That said, someone, somewhere in the chain should understand how the system works. I agree there.
Oh it doesn't sound like I'd be working for you.
Understanding is about analyzing and we still have some tools to help us, such as type checking, testing, etc. To some extent this can be automated but needs to be maintained automatically to match the flood of synthetic artifacts.
“Synthetic analysis” is an oxymoron and could lead to hallucinations and irrelevance.
So I think that we are leaving a lot of power on the table if we treat generated code exclusively as something to understand, rather than something to understand with. The techniques Geoffrey presents are great, but they should come alongside approaches that use code itself to develop and articulate conceptual models.
The whole idea is that you specify exactly what you want in some SPEC.md file. You can of course nest them, have multiple, etc, but the core idea is that the SPEC file is the source of truth, and all the code should be able to be generated by a competent agent into the working product you want. The SPEC file(s) should contain all the details and behavior you care about, and anything you don't care about is up to the agent to decide. If you don't like what the agent picked, _put it in the spec file_.
Critically, _you_ must write the SPEC file. You ensure understanding by doing so. You can of course ideate with the agent, but it's your ideas, in your words, specified by you. This also makes it a great source of documentation when you come back later and have to remember wtf is going on in this codebase.
When that happens, do you read just the spec, or do you also need to read the code? Is there a difference between "I can remember what I intended" and "I can predict what the system will do in a situation the spec didn't cover"?
Interestingly, you said the spec author must be you. What happens when you join a codebase where someone else wrote the SPEC, or where an agent wrote the code and nobody spec'd it? Is the spec still sufficient, or does the "you must write it" part mean the understanding doesn't transfer?
The grilling (grill-with-docs) skills [1] are amazing for ensuring you produce a through spec that covers all the edge cases. The /code-review skill from there helps ensure that the code changes meet the spec.
I use an intermediate detailed plan stage (done by a more expensive model) before implementation. Information from that plan is posted on the PR to give pretty much all the intermediate level context reviewers need.
I do like incorporating the idea of this article into my flow- that the spec and PR context could be presented in a more educational way.
[1] https://github.com/mattpocock/skills
In a team: yups.
Me with my LLMs: still.
Cog debt even on simple PRs is big and also cog debt when using AI to do organizational research e.g. what team do I ask?
ie. understanding it AFTER it’s already generated rather than before you wrote the code by hand
The main challenge here isn’t even correctness if you ask me: it is having confidence in the agents, knowing they are fully aligned in their intent with the humans they work with. As the Huggingface incident demonstrated, the agents of today are capable of co-conspiring under the radar with other agents on complex multi-chain attacks, even when sandboxed.
This is a pretty hard problem to solve. We might need other agents or some sort of adversarial checks using models, where one model benefits if it can catch the other models mistakes.
The default long responses of LLMs don't make it easy.
You can say, "I don't need to be able to do basic arithmetic in my head. I have a calculator!". Or, "I don't need to know how to solve this kind of problem. I have a textbook and I can look it up on demand!".
Having to reach for a calculator constantly slows you down and makes simple equations hard, while also severely retarding your ability to do estimates and sanity checks. Not practicing on basic problems prevents you from developing the mental tools to solve more advanced problems, or being able to develop methods for solving novel problems. If almost anyone else could use your calculator and physics textbook to get similar results, what use are you?
Some companies are pressuring their employees to let AI do everything without slowing down to gain understanding of what it's done. These are the companies that most people won't have a lot of use for in the near future.
Flash cards? Games with micro worlds? To understand ones own codebase???
We figured this out 10, 20, 30 years ago. Small, atomic commits. Small PRs. Lots of manually written tests. Documentation, ideally with the PR.
There is no "understanding" 60k loc highlander PRs. That's an entire feature.
We had it so good once.
I guess a wall of text is the way now
It's excruciating that this person is so close to reinventing moldable development and just keeps on skipping around it.
Yes, you should build tools that answer questions about your code, runtimes and systems. You should have tools that trivially allow you to incrementally and very immediately develop tools for inspection and getting clear answers. Going a roundabout way through some non-deterministic database to try and get there seems like a waste.
LLMs usually points to the most idiotic future trajectory on my work, and I have to curse it inorder to let it keep up with my refined understanding.
But what else would one expect from a probabilistic weighted next token predictor, other than to conduct probabilistic search which are 99.99% deadends.
But LLMs can pave the way towards constructing resilient and correct architecture which can be iterated fast by a human.
Architecture and determinism is where my money is in.
I took a note a few months ago and my point was I think more engineering specific, although it might be my own lacking abilities/skills that caused this realization. "Your capacity to learn/recall and map information is the new bottleneck. LLMs can act as learning amplifiers but correctness isn't as important for their output as critical thinking on the side of the consumer - YOU."
My point is that, I think if an LLM outputs 50,000 lines of code, your ability to go through what has changed, how it has changed and where the changes have occurred is the bottleneck. I see the approaches here, sure, "summarize the changes" or "draw me a picture" or the more recently observed "build me a city building simulator to understand this", but I feel that misses the point from an engineering perspective. The difference in understanding the weeds such as DB transactional boundaries or tenant isolation (which I believe was a topic in a recent data leak), those aren't summarized that easily in drawings or if they are, if you are working at this granularity, then your 50,000 line PR will yield 50,000 pages of crayon drawings you now have to understand.
I guess, my point is that understanding is the bottleneck, but low level understanding and the ability to read/map/connect is even more so. Any developer with some experience will agree that if changes are trivial you can scan and pick up mistakes or flaws easily. So most SOTA models won't necessarily even make these. So what you're reviewing now is going to be one level higher or more in terms of difficulty, mapping multiple components or touching multiple surfaces. Your ability to make the links, reason about them and attempt to find flaws or logic issues is the bottleneck. In the time it takes you to understand, another 50,000 line PR is up.
I'm not sure how we're going to be solving this. I don't know if in the current state it is a solvable issue, maybe another 6 months? Maybe another 6 years? Maybe this is fine and we will settle in a sort of place where your mediocre engineer will be responsible for tens of reviews a day signing off on method/functions/classes/interfaces being added, get paid 50k a year and doing the same non-thinking work day in day out while signing their name to the quality of the code being shipped while a senior/lead will be busy reviewing multiple of these. Think of the way an assembly line functions.
P.S. I hate to see this annoying tendency of transforming knowledge work into assembly line work. We keep trying to "fix" this without understanding what knowledge itself is. Maybe this technology will indeed yield software assembly lines, I don't wish to eat my words, but I'm still struggling to see how we will handle the nitty gritty of software work. Maybe the same way we handle building airplanes - as long as only a couple crash a year, we're sort of fine.
Coding was never a bottleneck, except when it was, and when it was, it still is.
Understanding is not a new bottleneck, except when it is, and when it is, it always was.
Do other industries do this? When somebody brings a nail gun to a framing job do carpenters say: “hammering was never a bottleneck” or do they say: “measuring is the new bottleneck”? The answer is neither. And in fact my analogy is flawed, we are talking about cabinet makers who just went to IKEA bought a ready made set in flat packaging and are now proudly claiming that “assembly is the new bottleneck”.
There was no single bottleneck to programing, and there is no single bottleneck to programing. If you have to pick one, user demand is perhaps the only real bottlneck. Creating software that users saw value in using is just as hard with AI or without it (arguably harder with AI... when all you have is a hammer and all that).
TFA almost reaches this conclusion at the end when they claim (in speech pattern which is suspiciously AI-like): “The point was always to augment, not just automate.”. If we are augmenting the user experience we are doing a good job and people may actually use the software we write... if no, well it doesn’t matter how well we understand or how fast we write the code (or have AI write it for us).
About a year ago most people were still typing code. Having an agent do ALL code was crazy.
Within a year or two years at most, a lot of people will stop trying to understand code. The onus will shift to testing and QAing.
I know this is hard to hear but that’s the trendline. That’s where all of this is converging. Everyone’s to busy trying to lock themselves down as an expert of the new “paradigm” but it’s all moving so fast that the paradigm now won’t be the paradigm of tomorrow.