• GenosseFlosse@feddit.org
    link
    fedilink
    English
    arrow-up
    6
    arrow-down
    2
    ·
    edit-2
    16 hours ago

    You never worked on old code. It’s never that simple in practice when you have to make changes to existing code without breaking or rewriting everything.

    Sometimes the client wants a new feature that cannot easily implement and has to do a lot of different DB lookups that you can not do in a single query. Sometimes your controller loops over 10000 DB records, and you call a function 3 levels down that suddenly must spawn a new DB query each time it’s called, but you cannot change the parent DB query.

    • nelson@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 hours ago

      Where is this even coming from? The guy above me is saying not to give devs better hardware and to teach them to code better.

      I followed up with an example of how using indices in a database to boost the performance helped more than throwing more hardware at it.

      This has nothing to do with having worked on old code. Stop trying to pull my comment out of context.

      But yes you’re right. Adding indexes to a database does nothing to solve adding a new feature in the scenario you described. I also never claimed it did.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      4 hours ago

      but you cannot change the parent DB query.

      Why not?

      This sounds like the “don’t touch working code” nonsense I hear from junior devs and contracted teams. They’re so worried about creating bugs that they don’t fix larger issues and more and more code gets enshrined as “untouchable.” IMO, the older and less understood logic is, the more it needs to be touched so we can expose the bugs.

      Here’s what should happen, depending on when you find it:

      • grooming/research phase - increase estimates enough to fix it
      • development phase - ask senior dev for priority; most likely, you work around for now, but schedule a fix once feature compete; if it’s significant enough, timelines may be adjusted
      • testing phase/hotfix - same as dev, but much more likely to put it off

      Teams should have a budget for tech debt, and seniors can adjust what tech debt they pick.

      In general though, if you’re afraid to touch something, you should touch it, but only if you budget time for it.

          • Womble@piefed.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            10 hours ago

            You do accept that bad software has been written, yes? and that some of that software is performing important functions? So how is saying “It needs to be written better in the first place” of any use at all when discussing legacy software?

            • Reginald_T_Biter@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              9 hours ago

              It’s not, but you’ll still hear it a lot. Funny, no one can agree on what “better” means, especially not the first person who wrote it, who had unclear requirements, too little time, and 3 other big tickets looming. All of these problems descend from management, they don’t always spontaneously come into being because of “bad devs”, although sometimes they do.