• IrateAnteater@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 months ago

    I think a substantial part of the problem is the employee turnover rates in the industry. It seems to be just accepted that everyone is going to jump to another company every couple years (usually due to companies not giving adequate raises). This leads to a situation where, consciously or subconsciously, noone really gives a shit about the product. Everyone does their job (and only their job, not a hint of anything extra), but they’re not going to take on major long term projects, because they’re already one foot out the door, looking for the next job. Shitty middle management of course drastically exacerbates the issue.

    I think that’s why there’s a lot of open source software that’s better than the corporate stuff. Half the time it’s just one person working on it, but they actually give a shit.

    • MotoAsh@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 months ago

      Definitely part of it. The other part is soooo many companies hire shit idiots out of college. Sure, they have a degree, but they’ve barely understood the concept of deep logic for four years in many cases, and virtually zero experience with ANY major framework or library.

      Then, dumb management puts them on tasks they’re not qualified for, add on that Agile development means “don’t solve any problem you don’t have to” for some fools, and… the result is the entire industry becomes full of functionally idiots.

      It’s the same problem with late-stage capitalism… Executives focus on money over longevity and the economy becomes way more tumultuous. The industry focuses way too hard on “move fast and break things” than making quality, and … here we are, discussing how the industry has become shit.

      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        Shit idiots with enthusiasm could be trained, mentored, molded into assets for the company, by the company.

        Ala an apprenticeship structure or something similar, like how you need X years before you’re a journeyman at many hands on trades.

        But uh, nope, C suite could order something like that be implemented at any time.

        They don’t though.

        Because that would make next quarter projections not look as good.

        And because that would require actual leadership.

        This used to be how things largely worked in the software industry.

        But, as with many other industries, now finance runs everything, and they’re trapped in a system of their own making… but its not really trapped, because… they’ll still get a golden parachute no matter what happens, everyone else suffers, so that’s fine.

        • MotoAsh@piefed.social
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 months ago

          Exactly. I don’t know why I’m being downvoted for describing the thing we all agree happens…

          I don’t blame the students for not being seasoned professionals. I clearly blame the executives that constantly replace seasoned engineers with fresh hires they don’t have to pay as much.

          Then everyone surprise pikachu faces when crap is the result… Functionally idiots is absolutely correct for the reality we’re all staring at. I am directly part of this industry, so this is more meant as honest retrospective than baseless namecalling. What happens these days is idiotry.

          • sp3ctr4l@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 months ago

            Yep, literal, functional idiots, as in, they keep doing easily provably as stupid things, mainly because they are too stubborn to admit they could be wrong about anything.

            I used to be part of this industry, and I bailed, because the ratio of higher ups that I encountered anywhere, who were competent at their jobs vs arrogant lying assholes was about 1:9.

            Corpo tech culture is fucked.

            Makes me wanna chip in a little with a Johnny Silverhand solo.

            • MotoAsh@piefed.social
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              2 months ago

              Fuck man, why don’t more ethical-ish devs join to make stuff? What’s the missing link on top of easy sharing like FOSS kinda’ already has?

              Obviously programming is a bit niche, but fuck… how can ethical programmers come together to survive under capitalism? Sure, profit sharing and coops aren’t bad, but something of a cultural nexus is missing in this space it feels…

      • Croquette@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        My hot take : lots of projects would benefit from a traditional project management cycle instead of trying to force Agile on every projects.

        • MotoAsh@piefed.social
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          2 months ago

          Agile SHOULD have a lot of the things ‘traditional’ management looks for! Though so many, including many college teachers I’ve heard, think of it way too strictly.

          It’s just the time scale shrinks as necessary for specific deliverable goals instead of the whole product… instead of having a design for the whole thing from top to bottom, you start with a good overview and implement general arch to service what load you’ll need. Then you break down the tasks, and solve the problems more and more and yadda yadda…

          IMO, the people that think Agile Development means only implement the bare minimum … are part of the complete fucking idiot portion of the industry.

  • vane@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 months ago

    Quality in this economy ? We need to fire some people to cut costs and use telemetry to make sure everyone that’s left uses AI to pay AI companies because our investors demand it because they invested all their money in AI and they see no return.

  • panda_abyss@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Fabricated 4,000 fake user profiles to cover up the deletion

    This has got to be a reinforcement learning issue, I had this happen the other day.

    I asked Claude to fix some tests, so it fixed the tests by commenting out the failures. I guess that’s a way of fixing them that nobody would ever ask for.

    Absolutely moronic. These tools do this regularly. It’s how they pass benchmarks.

    Also you can’t ask them why they did something, they have no capacity of introspection, they can’t read their input tokens, they just make up something that sounds plausible for “what were you thinking”.

  • panda_abyss@lemmy.ca
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    I’ve been working at a small company where I own a lot of the code base.

    I got my boss to accept slower initial work that was more systemically designed, and now I can complete projects that would have taken weeks in a few days.

    The level of consistency and quality you get by building a proper foundation and doing things right has an insane payoff. And users notice too when they’re using products that work consistently and with low resources.

  • afk_strats@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Accept that quality matters more than velocity. Ship slower, ship working. The cost of fixing production disasters dwarfs the cost of proper development.

    This has been a struggle my entire career. Sometimes, the company listens. Sometimes they don’t. It’s a worthwhile fight but it is a systemic problem caused by management and short-term profit-seeking over healthy business growth

  • chunes@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Software has a serious “one more lane will fix traffic” problem.

    Don’t give programmers better hardware or else they will write worse software. End of.

    • nelson@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      This is very true. You don’t need a bigger database server, you need an index on that table you query all the time that’s doing full table scans.

      • GenosseFlosse@feddit.org
        link
        fedilink
        English
        arrow-up
        0
        ·
        edit-2
        2 months 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.

  • themaninblack@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Being obtuse for a moment, let me just say: build it right!

    That means minimalism! No architecture astronauts! No unnecessary abstraction! No premature optimisation!

    Lean on opinionated frameworks so as to focus on coding the business rules!

    And for the love of all that is holy, have your developers sit next to the people that will be using the software!

    All of this will inherently reduce runaway algorithmic complexity, prevent the sort of artisanal work that causes leakiness, and speed up your code.

  • geoff@midwest.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    Anyone else remember a few years ago when companies got rid of all their QA people because something something functional testing? Yeah.

    The uncontrolled growth in abstractions is also very real and very damaging, and now that companies are addicted to the pace of feature delivery this whole slipshod situation has made normal they can’t give it up.

  • ThePowerOfGeek@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 months ago

    I don’t trust some of the numbers in this article.

    Microsoft Teams: 100% CPU usage on 32GB machines

    I’m literally sitting here right now on a Teams call (I’ve already contributed what I needed to), looking at my CPU usage, which is staying in the 4.6% to 7.3% CPU range.

    Is that still too high? Probably. Have I seen it hit 100% CPU usage? Yes, rarely (but that’s usually a sign of a deeper issue).

    Maybe the author is going with worst case scenario. But in that case he should probably qualify the examples more.

    • MotoAsh@piefed.social
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 months ago

      Well, it’s also stupid to use RAM size as an indicator of a machines CPU load capability…

      Definitely sending off some tech illiterate vibes.

      • panda_abyss@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 months ago

        Most software shouldn’t saturate either RAM or CPU on a modern computer.

        Yes, Photoshop, compiling large codevases, and video encoding and things like that should make just of an the performance available.

        But an app like Teams or Discord should not be hitting limits basically ever (I’ll excuse running a 4k stream, but most screen sharing is actually 720p)

        • MotoAsh@piefed.social
          link
          fedilink
          English
          arrow-up
          0
          arrow-down
          1
          ·
          2 months ago

          You’re right, they shouldn’t be stressing either resource. Though my point was that referencing how much RAM is in the system is a bit silly when referring to a CPU being pinned at 100%. There is a HUGE swathe of CPUs with an even bigger range of performance that are all sold in 32GB systems.

          I’m positive the low end of that scale could be rightfully pinned at 100% for certain common tasks.

    • squaresinger@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      arrow-down
      1
      ·
      2 months ago

      They mainly show what’s possible if you

      • don’t have a deadline
      • don’t have business constantly pivoting what the project should be like, often last minute
      • don’t have to pass security testing
      • don’t have customers who constantly demand something else
      • don’t have constantly shifting priorities
      • don’t have tight budget restrictions where you have to be accountable to business for every single hour of work
      • don’t have to maintain the project for 15-20 years
      • don’t have a large project scope at all
      • don’t have a few dozen people working on it, spread over multiple teams or even multiple clusters
      • don’t have non-technical staff dictating technical implementations
      • don’t have to chase the buzzword of the day (e.g. Blockchain or AI)
      • don’t have to work on some useless project that mostly exists for political reasons
      • can work on the product as long as you want, when you want and do whatever you want while working at it

      Comparing hobby work that people do for fun with professional software and pinning the whole difference on skill is missing the point.

      The same developer might produce an amazing 64k demo in their spare time while building mass-produced garbage-level software at work. Because at work you aren’t doing what you want (or even what you can) but what you are ordered to.

      In most setups, if you deliver something that wasn’t asked for (even if it might be better) will land you in trouble if you do it repeatedly.


      In my spare time I made the Fairberry smartphone keyboard attachment and now I am working on the PEPit physiotherapy game console, so that chronically ill kids can have fun while doing their mindnumbingly monotonous daily physiotherapy routine.

      These are projects that dozens of people are using in their daily life.

      In my day job I am a glorified code monkey keeping the backend service for some customer loyalty app running. Hardly impressive.


      If an app is buggy, it’s almost always bad management decisions, not low developer skill.

  • squaresinger@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    edit-2
    2 months ago

    The article is very much off point.

    • Software quality wasn’t great in 2018 and then suddenly declined. Software quality has been as shit as legally possible since the dawn of (programming) time.
    • The software crisis has never ended. It has only been increasing in severity.
    • Ever since we have been trying to squeeze more programming performance out of software developers at the cost of performance.

    The main issue is the software crisis: Hardware performance follows moore’s law, developer performance is mostly constant.

    If the memory of your computer is counted in bytes without a SI-prefix and your CPU has maybe a dozen or two instructions, then it’s possible for a single human being to comprehend everything the computer is doing and to program it very close to optimally.

    The same is not possible if your computer has subsystems upon subsystems and even the keyboard controller has more power and complexity than the whole apollo programs combined.

    So to program exponentially more complex systems we would need exponentially more software developer budget. But since it’s really hard to scale software developers exponentially, we’ve been trying to use abstraction layers to hide complexity, to share and re-use work (no need for everyone to re-invent the templating engine) and to have clear boundries that allow for better cooperation.

    That was the case way before electron already. Compiled languages started the trend, languages like Java or C# deepened it, and using modern middleware and frameworks just increased it.

    OOP complains about the chain “React → Electron → Chromium → Docker → Kubernetes → VM → managed DB → API gateways”. But he doesn’t even consider that even if you run “straight on bare metal” there’s a whole stack of abstractions in between your code and the execution. Every major component inside a PC nowadays runs its own separate dedicated OS that neither the end user nor the developer of ordinary software ever sees.

    But the main issue always reverts back to the software crisis. If we had infinite developer resources we could write optimal software. But we don’t so we can’t and thus we put in abstraction layers to improve ease of use for the developers, because otherwise we would never ship anything.

    If you want to complain, complain to the mangers who don’t allocate enough resources and to the investors who don’t want to dump millions into the development of simple programs. And to the customers who aren’t ok with simple things but who want modern cutting edge everything in their programs.

    In the end it’s sadly really the case: Memory and performance gets cheaper in an exponential fashion, while developers are still mere humans and their performance stays largely constant.

    So which of these two values SHOULD we optimize for?


    The real problem in regards to software quality is not abstraction layers but “business agile” (as in “business doesn’t need to make any long term plans but can cancel or change anything at any time”) and lack of QA budget.