you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 1 day ago* (2 children)

I’m not really discussing smaller scoped patches, though. An LLM can change a single line in a file, sure, but the prerequisite there is that the file adequately contains the necessary context to do so. With small patches, you’re advantaged in that way.

Larger patches suffer from a distinct kind of problem where the LLM can heavily over optimize submodules within the code, without proper consideration for the larger premise. This is a problem I’ve seen referred to as “decoherence.” In large projects, it can sort of take over the codebase after enough LLM engagement.

Decoherence makes your codebase unmaintainable. The cost of every change increases logarithmically and the situation gets worse. The heavily optimized submodules are often incompatible semantically, so the agent also optimizes channels between them. This is an explosion in unwarranted complexity. This isn’t a human problem.

Good developers can accelerate their work with agents. However, back to the topic on hand, reviewing agentic code changes is necessarily harder — because it’s prone to more issues that run far deeper. You have to review the code almost adversarially, with more cognitive load being used to unravel the gargantuan mess of barely sensible changes when viewed from a birds eye.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 16 hours ago (1 child)

    You can also have multiple models review the result, seek consensus, and then review the results of that report. I find that's the best way to find legitimate issues, prior manual review. Huge time saver because the multitude of models can converge while you make yourself a cup of coffee, and you can find things that need to be fixed before you ask someone to spend their precious time in reviewing a pull request.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 16 hours ago

    You don’t throw more oil on oil fires.

    Dont get me wrong, you can’t use AI to speed things up. But if you’re facing the problems I’m describing, then you need a targeted and explicit recovery effort — not just more bots.

    Remember part of the problem is the increased cost of every subsequent change.

    Humans will have this little voice in the back of their head, always screaming at them about how the architecture of an app should be adjusted to better account for a feature. We’re constantly reorganizing our apps, or backlogging features because we know that it should come with a reorganization.

    By contrast, an agent just does as it’s told. When you start using agents in a manner that outpaces your capacity to review and understand the breadth of its work, you’re necessarily ignorant of what changes should and shouldn’t necessarily be occurring. It creates the conditions for the problem which I’m referring to. Also, AI is really good at moving fast — so it created the preconditions of the conditions for the problem which I am referring to. It’s turtles all the way down.

  • source
  • parent