Live data from Hacker News

Understanding is the new bottleneck

geoffreylitt.com

181–190 of 259 posts

Re: Understanding is the new bottleneck

#181

Earlier quoted context omitted.

> 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.

Recently?

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++;

Re: Understanding is the new bottleneck

#182

Earlier quoted context omitted.

Until an AI does that, it won't be able to pass a Turing test.

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.

Because managers themselves can't pass the test xD

Re: Understanding is the new bottleneck

#183
post #60

"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.

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 a…

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.

Re: Understanding is the new bottleneck

#184
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.

Re: Understanding is the new bottleneck

#185
post #82

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 ma…

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.

Re: Understanding is the new bottleneck

#186

Earlier quoted context omitted.

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 th…

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.

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.

Re: Understanding is the new bottleneck

#188
post #186

Earlier quoted context omitted.

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.

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.

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.

Re: Understanding is the new bottleneck

#189

Earlier quoted context omitted.

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 th…

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.

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.

Re: Understanding is the new bottleneck

#190
post #82

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 ma…

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

Post reply on HN