• squaresinger@lemmy.world
      link
      fedilink
      English
      arrow-up
      12
      ·
      14 hours 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.

  • humanspiral@lemmy.ca
    link
    fedilink
    English
    arrow-up
    11
    arrow-down
    1
    ·
    edit-2
    15 hours ago

    32gb+ memory leaks require reboot on any machine, and need higher level than critical.

    The AI later admitted: “This was a catastrophic failure on my part. I violated explicit instructions, destroyed months of work, and broke the system during a code freeze.” Source: The Register

    When I started using LLM’s, and would yell at its stupidity and how to fix it, most models (Open AI excepted) were good enough to accept their stupidity. Deleting production databases certainly feels better with AI’s woopsie. But being good at apologizing is not best employee desired skill.

    Collapse (Coming soon) Physical constraints don’t care about venture capital

    This is naive, though the collapse part is worse. Venture capital doesn’t care about physical constraints. Ridiculously expensive uneconomic SMRs will save us in 10 (ok 15) years. Kill solar now to permit it. But, scarcity is awesome for venture capital. Just buy the utilities, and get a board seat, get cheap, current price lock in, power for datacenters, and raise prices on consumers and non-WH-gifting-guest businesses by 100% to 200%. Physical constraints means scarcity means profits. Surely the only political solution is to genocide the mexican muslim rapists.

  • fodor@lemmy.zip
    link
    fedilink
    English
    arrow-up
    30
    arrow-down
    6
    ·
    24 hours ago

    All of the examples are commercial products. The author doesn’t know or doesn’t realize that this is a capitalist problem. Of course, there is bloat in some open source projects. But nothing like what is described in those examples.

    And I don’t think you can avoid that if you’re a capitalist. You make money by adding features that maybe nobody wants. And you need to keep doing something new. Maintenance doesn’t make you any money.

    So this looks like AI plus capitalism.

    • AnarchistArtificer@slrpnk.net
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      19 hours ago

      Sometimes, I feel like writers know that it’s capitalism, but they don’t want to actually call the problem what it is, for fear of scaring off people who would react badly to it. I think there’s probably a place for this kind of oblique rhetoric, but I agree with you that progress is unlikely if we continue pussyfooting around the problem

    • HugeNerd@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      18 hours ago

      You make money by adding features that maybe nobody wants

      So, um, who buys them?

      • rumba@lemmy.zip
        link
        fedilink
        English
        arrow-up
        4
        ·
        16 hours ago

        Stockholders

        Stockholders want the products they own stock in to have AI features so they won’t be ‘left behind’

      • kuhli@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        18 hours ago

        A midlevel director who doesn’t use the tool but thinks all the features the salesperson mentioned seem cool

    • vacuumflower@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      2
      ·
      22 hours ago

      “Open source” is not contradictory to “capitalist”, just involves a fair bit of industry alliances and\or freeloading.

      • Jason2357@lemmy.ca
        link
        fedilink
        English
        arrow-up
        5
        ·
        18 hours ago

        “Open source” was literally invented to make Free software palatable to capitol.

      • Jakeroxs@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        19 hours ago

        It absolutely is to the majority of capitalists unless it still somehow directly benefits them monetarily

  • squaresinger@lemmy.world
    link
    fedilink
    English
    arrow-up
    35
    arrow-down
    1
    ·
    edit-2
    1 day 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.

    • azertyfun@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      2
      ·
      10 hours ago

      THANK YOU.

      I migrated services from LXC to kubernetes. One of these services has been exhibiting concerning memory footprint issues. Everyone immediately went “REEEEEEEE KUBERNETES BAD EVERYTHING WAS FINE BEFORE WHAT IS ALL THIS ABSTRACTION >:(((((”.

      I just spent three months doing optimization work. For memory/resource leaks in that old C codebase. Kubernetes didn’t have fuck-all to do with any of those (which is obvious to literally anyone who has any clue how containerization works under the hood). The codebase just had very old-fashioned manual memory management leaks as well as a weird interaction between jemalloc and RHEL’s default kernel settings.

      The only reason I spent all that time optimizing and we aren’t just throwing more RAM at the problem? Due to incredible levels of incompetence business-side I’ll spare you the details of, our 30 day growth predictions have error bars so many orders of magnitude wide that we are stuck in a stupid loop of “won’t order hardware we probably won’t need but if we do get a best-case user influx the lead time on new hardware is too long to get you the RAM we need”. Basically the virtual price of RAM is super high because the suits keep pinky-promising that we’ll get a bunch of users soon but are also constantly wrong about that.

    • 0x0@lemmy.zip
      link
      fedilink
      English
      arrow-up
      9
      ·
      20 hours ago

      we would need exponentially more software developer budget.

      Are you crazy? Profit goes to shareholders, not to invest in the project. Get real.

    • JohnAnthony@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      14 hours ago

      I agree with the general idea of the article, but there are a few wild takes that kind of discredit it, in my opinion.

      “Imagine the calculator app leaking 32GB of RAM, more than older computers had in total” - well yes, the memory leak went on to waste 100% of the machine’s RAM. You can’t leak 32GB of RAM on a 512MB machine. Correct, but hardly mind-bending.
      “But VSCodium is even worse, leaking 96GB of RAM” - again, 100% of available RAM. This starts to look like a bad faith effort to throw big numbers around.
      “Also this AI ‘panicked’, ‘lied’ and later ‘admitted it had a catastrophic failure’” - no it fucking didn’t, it’s a text prediction model, it cannot panic, lie or admit something, it just tells you what you statistically most want to hear. It’s not like the language model, if left alone, would have sent an email a week later to say it was really sorry for this mistake it made and felt like it had to own it.

      • humanspiral@lemmy.ca
        link
        fedilink
        English
        arrow-up
        2
        ·
        16 hours ago

        You can’t leak 32GB of RAM on a 512MB machine.

        32gb swap file or crash. Fair enough point that you want to restart computer anyway even if you have 128gb+ ram. But calculator taking 2 years off of your SSD’s life is not the best.

        • squaresinger@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 hours ago

          It’s a bug and of course it needs to be fixed. But the point was that a memory leak leaks memory until it’s out of memory or the process is killed. So saying “It leaked 32GB of memory” is pointless.

          It’s like claiming that a puncture on a road bike is especially bad because it leaks 8 bar of pressure instead of the 3 bar of pressure a leak on a mountain bike might leak, when in fact both punctures just leak all the pressure in the tire and in the end you have a bike you can’t use until you fixed the puncture.

      • squaresinger@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        17 hours ago

        Yeah, that’s quite on point. Memory leaks until something throws an out of memory error and crashes.

        What makes this really seam like a bad faith argument instead of a simple misunderstanding is this line:

        Not used. Not allocated. Leaked.

        OOP seems to understand (or at least claims to understand) the difference between allocating (and wasting) memory on purpose and a leak that just fills up all available memory.

        So what does he want to say?

    • Valmond@lemmy.world
      link
      fedilink
      English
      arrow-up
      5
      ·
      22 hours ago

      Yeah what I hate that agile way of dealing with things. Business wants prototypes ASAP but if one is actually deemed useful, you have no budget to productisize it which means that if you don’t want to take all the blame for a crappy app, you have to invest heavily in all of the prototypes. Prototypes who are called next gen project, but gets cancelled nine times out of ten 🤷🏻‍♀️. Make it make sense.

      • squaresinger@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        21 hours ago

        This. Prototypes should never be taken as the basis of a product, that’s why you make them. To make mistakes in a cheap, discardible format, so that you don’t make these mistake when making the actual product. I can’t remember a single time though that this was what actually happened.

        They just label the prototype an MVP and suddenly it’s the basis of a new 20 year run time project.

        In my current job, they keep switching around everything all the time. Got a new product, super urgent, super high-profile, highest priority, crunch time to get it out in time, and two weeks before launch it gets cancelled without further information. Because we are agile.

  • vane@lemmy.world
    link
    fedilink
    English
    arrow-up
    26
    ·
    edit-2
    1 day 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.

  • FreedomAdvocate@lemmy.net.au
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    3
    ·
    edit-2
    1 day ago

    These aren’t feature requirements. They’re memory leaks that nobody bothered to fix.

    Yet all those examples have been fixed 🤣. Most of them are from 3-5 years ago and were fixed not long after being reported.

    Software development is hard - that’s why not everyone can do it. You can do everything perfectly in your development, testing, and deployment, and there will still be tonnes of people that get issues if enough people use your program because not everyone’s machines are the same, not everyone’s OS is the same, etc. If you’ve ever run one of those “debloat windows” type programs, for example, your OS is probably fucked beyond belief and any problem you encounter will be due to that.

    Big programs are updated almost constantly - some daily even! As development gets more and more advanced with more and more features and more and more platforms, it doesn’t get easier. What matters is if the problems get fixed, and these days you basically wait 24 hours max for a fix.

    • 0x0@lemmy.zip
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      2
      ·
      20 hours ago

      You can do everything perfectly in your development, testing, and deployment, and there will still be tonnes of people that get issues if enough people use your program because not everyone’s machines are the same, not everyone’s OS is the same, etc.

      Then you didn’t do it perfectly did you?
      Works on my machine is no excuse.

      • squaresinger@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        19 hours ago

        “Perfectly” is a strong word, so I wouldn’t subscribe to this.

        But it’s impossible to test software on all setups without installing it to them. There’s endless variation, so all you can do is to test on a good portion of setups and then you have to release and some setups will still have problems.

        The only way to guarantee that it works on every customer’s device is by declaring every customer’s device as a beta test environment, and people don’t seem to like that either.

      • FreedomAdvocate@lemmy.net.au
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        18 hours ago

        Who said “works on my machine”? Not me. You can test it on a hundred different machines and OS versions and it’s flawless on them all, and you’ll still get people having errors on their machines. I feel like you must have thought you found a “gotcha!” and just stopped reading my comment, because I explained why.

  • IrateAnteater@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    103
    ·
    2 days 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.

    • JustEnoughDucks@feddit.nl
      link
      fedilink
      English
      arrow-up
      4
      ·
      21 hours ago

      True, but this is a reaction to companies discarding their employees at the drop of a hat, and only for “increasing YoY profit”.

      It is a defense mechanism that has now become cultural in a huge amount of countries.

    • MotoAsh@piefed.social
      link
      fedilink
      English
      arrow-up
      21
      arrow-down
      6
      ·
      edit-2
      2 days 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
        20
        ·
        edit-2
        2 days 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
          6
          ·
          edit-2
          2 days 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
            2
            ·
            1 day 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
              3
              arrow-down
              1
              ·
              1 day 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…

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

                Well, I’m not quite sure how to … intentionally create a cultural nexus … but I would say that having something like lemmy, piefed, the fediverse, is at least a good start.

                Socializing, discussion, via a non corpo platform.

                Beyond that, uh, maybe something more lile an actual syndicalist collective, or at least a union?

      • Croquette@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 day 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
          ·
          1 day 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.

      • WanderingThoughts@europe.pub
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 days ago

        That’s “disrupting the industry” or “revolutionizing the way we do things” these days. The “move fast and break things” slogan has too much of a stink to it now.

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

          Probably because all the dummies are finally realizing it’s a fucking stupid slogan that’s constantly being misinterpreted from what it’s supposed to mean. lol (as if the dummies even realize it has a more logical interpretation…)

          Now if only they would complete the maturation process and realize all of the tech bro bullshit runs counter to good engineering or business…

    • HaraldvonBlauzahn@feddit.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      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).

      Well. I did the last jump because the quality was so bad.

  • jimmy90@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    3
    ·
    18 hours ago

    nonsense, software has always been crap, we just have more resources

    the only significant progress will be made with rust and further formal enhancements

  • panda_abyss@lemmy.ca
    link
    fedilink
    English
    arrow-up
    64
    ·
    2 days 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.

    • Log in | Sign up@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      1 day ago

      (I write only internal tools and I’m a team of one. We have a whole department of people working on public and customer focused stuff.)

      My boss let me spend three months with absolutely no changes to functionality or UI, just to build a better, more configurable back end with a brand new config UI, partly due to necessity (a server constraint changed), otherwise I don’t think it would have ever got off the ground as a project. No changes to master for three months, which was absolutely unheard of.

      At times it was a bit demoralising to do so much work for so long with nothing to show for it, but I knew the new back end would bring useful extras and faster, robust changes.

      The backend config ui is still in its infancy, but my boss is sooo pleased with its effect. He is used to a turnaround for simple changes of between 1 and 10 days for the last few years (the lifetime of the project), but now he’s getting used to a reply saying I’ve pushed to live between 1 and 10 minutes.

      Brand new features still take time, but now that we really understand what it needs to do after the first few years, it was enormously helpful to structure the whole thing to be much more organised around real world demands and make it considerably more automatic.

      Feels food. Feels really good.

        • Log in | Sign up@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          12 hours ago

          He’s a great boss. He really is.

          I had goodwill stored up because like me, he uses the tool to several times a day, he really likes it because it makes some tasks far easier (v0.1) and I added loads of extras over the years, and it was me that dreamed it up in the first place.

          The new server constraint affected me on the daily but wasn’t going to affect him at all for most of those three months, and even then, not often and there was a workaround for his usage, but he trusted me and he wants my end to be as convenient as his is (very fair minded guy indeed).

          I would go a long long way for him. I went to his wedding in 2023 and we sometimes have drinks after work. He knows how it is, has been there, done that and got the T shirt and isn’t afraid to tell truth to power:

          You know you like to have X? We’re gonna need Y…

          Remember the prioritisation of Y you were going to do?..

          Yeah, so no, sorry, we don’t quite have X, partly because of this and that mistake we made, but also we weren’t able to get very close to X because we never got Y.

          Genuinely, cue recommitment of senior management to Y in the next quarter! It might not happen, but no shouting, no blaming, and rationality all round.

          I don’t think they like it at all when he says stuff like that, but they love that the crises pretty much dwindled out when they put him in charge and as he gradually recruited more people who put more effort into making things better than shouting and blaming, and as the shouters and blamers left to find employment elsewhere where shouting and blaming was effective. It simply does not work on my boss even a little bit, and he simply never does it. Customers now praise his department instead of complain about it, so he gets a lot of leeway from management to do things his way.

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

            Brilliant. It’s so valuable to have a manager that actually treats you like a professional in these situations. Sounds like a diamond in the rough alright.

            Some agency when working goes a long way to fostering a really good working relationship. I’m still a lot earlier in my career, so generally in my first non-internship role I was expecting to be given little bits of work like change this button, widen this form, that kind of stuff.

            Turns out I’d joined one of those “sink or swim” smaller companies where you have to wear a lot of hats. Initially I thought quite negatively about it but once I started to gain some confidence I realised he was giving me the time and space to properly learn stuff and develop it until it was “good”. He, thankfully, still shoots down my sillier ideas but if I have a good one he throws his full support behind me.

            Currently he was like, I need you to investigate how to set up automated fraud prevention checks and flag, let’s say things, for clients to investigate further, and he sent me off for a week to analyse the problem, speak to everyone involved and gather a list of data points and how to calculate them. Then he gave me the time to design the system, including the mental room to develop our first shared lib after .net framework.

            Really I’m rambling a bit, but my point is, you can get a lot of good work out of people if you invest in them and allow them some agency. Maybe some can’t work well without constant pressure, but I think a lot of people thrive when supported and enabled correctly by management.

    • Telorand@reddthat.com
      link
      fedilink
      English
      arrow-up
      22
      ·
      2 days ago

      This is one of the things that frustrates me about my current boss. He keeps talking about some future project that uses a new codebase we’re currently writing, at which point we’ll “clean it up and see what works and what doesn’t.” Meanwhile, he complains about my code and how it’s “too Pythonic,” what with my docstrings, functions for code reuse, and type hints.

      So I secretly maintain a second codebase with better documentation and optimization.

      • panda_abyss@lemmy.ca
        link
        fedilink
        English
        arrow-up
        10
        arrow-down
        2
        ·
        2 days ago

        How can your code be too pythonic?

        Also type hints are the shit. Nothing better than hitting shift tab and getting completions and documentation.

        Even if you’re planning to migrate to a hypothetical new code base, getting a bunch of documented modules for free is a huge time saver.

        Also migrations fucking suck, you’re an idiot if you think that will solve your problems.

  • chunes@lemmy.world
    link
    fedilink
    English
    arrow-up
    46
    arrow-down
    2
    ·
    2 days 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
      19
      ·
      2 days 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
        6
        arrow-down
        4
        ·
        edit-2
        1 day 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
          3
          ·
          21 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
          2
          ·
          edit-2
          22 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.

          • lightnegative@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            16 hours ago

            “Don’t touch working code” stems from “last person who touched it, owns it” and there’s some shit that it’s just not worth your pay grade to own.

            Particularly if you’re a contractor employed to work on something specific

          • iegod@lemmy.zip
            link
            fedilink
            English
            arrow-up
            1
            ·
            16 hours ago

            That budget is the key. You have to demonstrate/convince the purse holders first. This isn’t always an easy task.

              • Womble@piefed.world
                link
                fedilink
                English
                arrow-up
                3
                ·
                1 day 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
                  ·
                  1 day 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.

    • AnarchistArtificer@slrpnk.net
      link
      fedilink
      English
      arrow-up
      3
      ·
      18 hours ago

      Is it? I didn’t get that sense. What causes you to think it’s written by chatGPT? (I ask because whilst I’m often good at discerning AI content, there are plenty of times that I don’t notice it until someone points out things that they notice that I didn’t initially)

    • BillBurBaggins@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 day ago

      And you can’t even zoom into the images on mobile. Maybe it’s harder than they think if they can’t even pick their blogging site without bugs

  • themaninblack@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    ·
    edit-2
    1 day 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.

      • MonkderVierte@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        22 hours ago

        Every single electron software i used was a laggy mess, including Vscode. Tauri is more decent.

          • Log in | Sign up@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            13 hours ago

            Dunno. Always avoided electron because everyone said how slow and crash print it is. I very much doubt it, though. Upgrading from tauri v1 to tauri v2 is already non trivial to the extent that I didn’t bother for a new project because I already had bindings and config for v1. I’d be very surprised if they just copied election got the interface for their shiny new, more principled, faster, leaner, less leaky, more secure, “better” web-as-ui thing.

  • PattyMcB@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    1 day ago

    Non-technical hiring managers are a bane for developers (and probably bad for any company). Just saying.