• count_dongulus@lemmy.world
    link
    fedilink
    arrow-up
    24
    arrow-down
    7
    ·
    edit-2
    6 months ago

    The thing that frustrates me about developers who feel powerless over technical debt is…who is actually stopping them from dealing with it? They way I see it, as a software engineer, your customer is sales/marketing/product/etc. They don’t care about the details or maintenance, they just want the thing. And that’s okay. But you have to include the cost of managing technical debt into the line items the customer wants. That is, estimate based on doing the right things, not taking shortcuts. Your customer isn’t reading your commits. If they were, they wouldn’t need you.

    It would be bizarre if your quote for getting your house siding redone included line items for changing the oil on the work truck, organizing the shop, or training new crew members. But those costs of business are already factored into what you pay at the end of the day.

      • count_dongulus@lemmy.world
        link
        fedilink
        arrow-up
        10
        ·
        6 months ago

        Yeah management is totally backwards there; it’s like the building manager on a construction project going “all electrical needs to be done in X weeks”, but realistically they have no direct control over that deadline being met by declaring an arbitrary deadline. The unfortunate difference is that if you do a shitty job wiring a building, you’ll fail inspection and have to spend more time and money fixing it. Software can often hobble along; there aren’t strict enforcements for quality that the business can legally ignore, so you’ll always have sad defeated devs go “okay boss, we’ll skip the things we need to get this done faster for you (I hate this job and don’t care about the product’s long term success)”. Having a steady supply of those people will slowly kill a software company.

        In the past, I’ve dealt with estimate pushback not by explaining what necessary work can be removed like tests, documentation, or refactoring, but by talking through ways to divide the project more effectively to get more people involved (up to a point, a la mythical man month). That seems to go more proactively. Then we look at nixing optional requirements. But, I’ve also usually dealt with mostly competent engineering management.

    • AdamBomb@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      2
      ·
      6 months ago

      Yes, this. Refactor first to make the upcoming change easier and cleaner, not after. Don’t ask for permission, don’t even call it refactoring or cleanup. Just call it working on the feature, because that’s what it is. Don’t let non-engineers tell you how to engineer.

      • catalyst@lemmy.world
        link
        fedilink
        arrow-up
        7
        arrow-down
        1
        ·
        6 months ago

        Yes, this! I rarely ask for permission on that sort of thing. I’ll just do it as part of my work and see if anyone calls me out on it.

    • janAkali@lemmy.one
      link
      fedilink
      English
      arrow-up
      6
      ·
      6 months ago

      I believe for many companies, developers work on giant codebases with many hundred thousands or even millions of lines of code.

      With such large codebase you have no control over any system. Because control is split between groups of devs.

      If you want to refactor a single subsystem it would take coordination of all groups working on that part and will halt development, probably for months. But first you have to convince all the management people, that refactor is needed, that on itself could take eternity.

      So instead you patch it on your end and call it a day.

      • MajorHavoc@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        6 months ago

        So instead you patch it on your end and call it a day.

        Yep!

        I’m looking forward to the horror stories that emerge once some percentage of those changes are made solely by unmanaged hallucination-prone AI.

        I would feel bad for the developera who have to clean up the mess, but honestly, it’s their chance to make $$$$$$ off of that cleanup. If they manage not to, their union is completely incompetent.