Software Engineering fundamentals matter more

(rhonabwy.com)

87 points | by ingve 8 hours ago

4 comments

  • mortalapeman 2 hours ago
    With generated code, the directory structure, interface design and general state management is usually a haphazard mess. Even with the best frontier models. But what really gets me is the model often tries to make assumptions for me that I didn't specify in the prompt. Subtle things like which error states are "oh shit we need to bail" vs "this isn't a deal breaker." Sometimes it will ask, but more often than not it will just make a decision and it's often the wrong one. If I don't have a fully kitted out test suit and a good type checker to verify the final product against, the the whole looping thing is just useless to me and I'm back to reviewing every line of code it puts out and having to draw on my years of architecture experience to make sure we don't build a giant pile of trash.
    • Gigachad 1 hour ago
      Because they are designed to be used by managers who don't know how to answer these questions and don't want to be asked them. Just have the magic answers box pick something.
    • bluegatty 47 minutes ago
      The generated code is fine at the functional level, the directory structure is usually the standard pattern for the given type of project.

      The error types and codes, it will produce to spec.

      If you type 'make me that thingy' - yes, it's probably not going to do what you want, but if you give it spec and guidance, it usually will.

      The 'interface design' ... not very good though.

    • slopinthebag 1 hour ago
      They're RLHF'ed to an inch of their lives to be able to one-shot complete tasks, since requiring human input defeats the purpose of being able to replace the labor force.

      But once the insanity ends LLMs will be packaged as tools for developers to use to boost their productivity, and we'll consider them as we do IDE's and debuggers and stuff. But we have to get through this hype cycle first.

  • theteapot 1 hour ago
    > It helps to know that LLMs don’t “reason”. They predict ..

    Semantics. Prediction is the training objective. The ability to reason can be, and very arguably is, an emergent property of that.

    • jayd16 1 hour ago
      Even if that was true, you'd have to still prove it has emerged.
      • krackers 25 minutes ago
        What would be your test to determine that?
    • slopinthebag 1 hour ago
      Why would "reasoning" be an emergent property of prediction?
      • js8 39 minutes ago
        There's a lot of reasoning in the training data.
      • mw888 41 minutes ago
        Predict multiple outcomes, induct across them, refine.
      • hsn915 42 minutes ago
        How do you predict without reasoning?
        • slopinthebag 16 minutes ago
          Where is the reasoning in linear regression?
          • danielbln 1 minute ago
            Where is the reasoning in synaptic transmission?
  • bluegatty 1 hour ago
    "They’re foundationally incapable of always and consistently preventing prompt injection attacks. “Alignment work”, safety harnesses, and sandboxes all help to add barriers against the worst, but there are fundamental gap" ...

    They seem to be very good at a lot of rudimentary best practices, more so than humans, but more accurately - if you run and audit pass with specific instructions ... they're very good at that.

    I mean - it's what they're the best at which is applying 'fuzzy heuristics' in a mechanical way. If can describe issues concisely, the patterns, the styles, the rules then LLMs can very mechanistically and methodologically grind through them.

    I don't even see how this is controversial - without getting into 'what their reasoning means' - we can all agree that their synthetic reasoning is pretty good at narrow scales, and they've been 'trained by compilers' and are extremely good at spotting common patterns.

    If you back that up with a lot of tokens ... they excel.

    Designing architecture, that's difficult, but hammering away at all the 'known-knows across a system' especially to identify things ... they're pretty good at that.

  • hirvi74 2 hours ago
    > In the past year, agent harnesses crossed the “can it be done” rubicon.

    Brother, I'm still in "Can you get it right?"-mode. What am I doing wrong? (Rhetorical, but advice welcomed).

    • jaggederest 3 minutes ago
      I'd be happy to screenshare with you if you like, we can work on something trivial or open source. Half an hour should be more than enough to see whether you're doing anything obviously self-sabotaging.
    • mw888 39 minutes ago
      You're appealing to ambiguity. All you've said is you have failed—how is anyone supposed to know what went wrong?
    • al_borland 2 hours ago
      I’ve found some success is small projects, with limited scope, in a greenfield.

      I’m terrified to attempt agentic anything in the repo my job actually cares about. I triggered it once by accident, when the agent was first rolled out and enabled by default… it broke everything. Now I just use ask mode, and even that is wrong half the time, and once it goes wrong it just keeps getting worse.

      I saw a post from Dave Plumber who vibe coded up a new cross platform task manager. He said his spec document for the AI was 107 pages long. So maybe what I’m doing wrong is not giving the AI a literal novel of spec.

      • applfanboysbgon 52 minutes ago
        > He said his spec document for the AI was 107 pages long.

        This sounds like programming but with extra steps that make it take longer with less reliability.

        • 0x696C6961 26 minutes ago
          Ikr, at that point the code itself is a better way of encoding the information.
    • simonw 1 hour ago
      Tell it to use red/green TDD and start things off with an already configured test suite, maybe with a single test that asserts 1+1==2.

      Make sure it know how to run the tests before it starts writing any additional code.

      Then set it a clear goal.

      • slopinthebag 1 hour ago
        Basically all the examples of LLM's building impressive things have been because they have human written tests to base the implementation on. If you have an LLM write the tests the results are far less impressive or valuable.
        • bharatsuthar 43 minutes ago
          Yes and LLMs are known to cheat on tests written by them.
          • slopinthebag 11 minutes ago
            It's not always cheating either. They aren't intelligent, so they don't actually understand the purpose of the tests or can build them to define the actual semantics of the problem space. It's literally just next-token prediction based on the codebase and prompt. Cheating implies that they have agency, and ironically agents don't.
    • MattGaiser 2 hours ago
      What is “it” specifically and what languages are you using?