• mabeledo@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    5 days ago

    The corollary to this is that code will generally become of lower quality, as more seniors burn out from taking on purely reviewer roles.

    I find myself frequently giving up on writing specs or skills for LLMs because even the most expensive and advanced models cannot produce production quality code. They can sometimes produce correct code, when multiple passes are done and the most egregious mistakes are ironed out, but at that point I’ve already burned $200 worth of tokens.

    To the author’s point, if I need to make my specs so fine grained that I could write the code instead, what’s the benefit in relying on a LLM?

    • cschreib@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      4 days ago

      You end up with a nice spec that you wouldn’t have had otherwise? That has value even if you discard all the LLM-generated code.

      I think experienced engineers are able to go straight from a vague requirement to an implementation without that intermediate step, and that power is easy to abuse. We build an implicit spec on our head, which gets translated to code on the fly, and then gets forgotten.

      Not defending the LLM technology, but i do think this is one of the upside.

      • mabeledo@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        4 days ago

        Specs are great for short term discussions about requisites and implementation.

        But there’s this old adage, “Confluence is where knowledge goes to die”. I don’t think I’ve ever worked at a company where this wasn’t true.

        If you write a spec, there’s a non zero chance that nobody will update it in a year, because it has no effect to the bottom line, and engineers have to be willing to look them up every time they make changes to code, which is never the case.

        • cschreib@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          2 days ago

          I think this will depend on the industry. Slow vs fast moving, regulated vs not, whether someone depends on your API or not, etc.

          But regardless, having had to deal with some legacy code written 10 years ago by someone who isn’t working at the company anymore, I would take an outdated spec over none at all. At least then I know what people intended back then, what they cared about, what they had and hadn’t considered. As long as the spec is written by a human, that information is surely valuable.

          • mabeledo@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            2 days ago

            But regardless, having had to deal with some legacy code written 10 years ago by someone who isn’t working at the company anymore, I would take an outdated spec over none at all. At least then I know what people intended back then, what they cared about, what they had and hadn’t considered. As long as the spec is written by a human, that information is surely valuable.

            I see your point, and I think I would partially agree. I guess that, to me, specs need to be more of a live document than something someone writes and gets forgotten over time. I still think that thoroughly commenting code and having a strong E2E test suite is a better option overall.