I’ve not read the article, but if you actually look at old code, it’s pretty awful too. I’ve found bugs in the Bash codebase that are much older than me. If you try using Windows 95 or something, you will cry and weep. Linux used to be so much more painful 20 years ago too; anyone remember “plasma doesn’t crash” proto-memes? So, “BEFORE QUALITY” thing is absolute bullshit.
What is happening today is that more and more people can do stuff with computers, so naturally you get “chaos”, as in a lot of software that does things, perhaps not in the best way possible, but does them nonetheless. You will still have more professional developers doing their things and building great, high-quality software, faster and better than ever before because of all the new tooling and optimizations.
Yes, the average or median quality is perhaps going down, but this is a bit like complaining about the invention of printing press and how people are now printing out low quality barely edited books for cheap. Yeah, there’s going to be a lot of that, but it produces a lot of awesome stuff too!
Software quality collapse
That started happening years ago.
The developers of .net should be put on trial for crimes against humanity.
Dorothy Mantooth.NET is a saint, A SAINT..NET is FOSS. You’re welcome to contribute or fork it any way you wish. If you think they are committing crimes against humanity, make a pull request.
You mean .NET
.net is the name of a fairly high quality web developer industry magazine from the early 2010s now sadly out of print.
I think we all can understand the correct capitalization from context.
What does this have to do with .NET? AFAIK all the programs mentioned in the article are written in JavaScript, except Calculator. Which is probably Swift.
nonsense, software has always been crap, we just have more resources
the only significant progress will be made with rust and further formal enhancements
I’m sure someone will use rust to build a bloated reactive declarative dynamic UI framework, that wastes cycles, eats memory, and is inscrutable to debug.
Don’t give clicks to substack blogs. Fucking Nazi enablers.
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.
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.
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.
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.
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.
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…
My hot take : lots of projects would benefit from a traditional project management cycle instead of trying to force Agile on every projects.
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.
Funny how agile seems to mean different things to different people.
Agile was the cool new thing years back and has been abused and misused and now, pretty much every dev company force it on their team but do whatever the fuck they want.
Agile should have a lot of traditional project management but doesn’t because it became the MBA wet dream of metrics. And when metrics become the target, people will do whatever they need to do to meet the metrics instead of actually progressing the project.
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.
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.
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.
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…
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?
i think about this every time i open outlook on my phone and have to wait a full minute for it to load and hopefully not crash, versus how it worked more or less instantly on my phone ten years ago. gajillions of dollars spent on improved hardware and improved network speed and capacity, ans for what? machines that do the same thing in twice the amount of time if you’re lucky
Well obviously it has to ping 20 different servers from 5 different mega corporations!
And verify your identity three times, for good measure, to make sure you’re you and not someone that should be censored.
This seems like a problem with your phone tbh.
I wonder if this ties into our general disposability culture (throwing things away instead of repairing, etc)
Planned Obsolescence … designing things for a short lifespan so that things always break and people are always forced to buy the next thing.
It all originated with light bulbs 100 years ago … inventors did design incandescent light bulbs that could last for years but then the company owners realized it wasn’t economically feasible to produce a light bulb that could last ten years because too few people would buy light bulbs. So they conspired to engineer a light bulb with a limited life that would last long enough to please people but short enough to keep them buying light bulbs often enough.
Not the light bulbs. They improved light quality and reduced energy consumption per unit of light by increasing filament temperature, which reduced bulb life. Net win for the consumer.
You can still make an incandescent bulb last long by undervolting it orange, but it’ll be bad at illuminating, and it’ll consume almost as much electricity as when glowing yellowish white (standard).
Edison was DEFINITELY not unique or new in how he was a shithead looking for money more than inventing useful things… Like, at all.
That and also man hour costs versus hardware costs. It’s often cheaper to buy some extra ram than it is to pay someone to make the code more efficient.
Sheeeit… we haven’t been prioritizing efficiency, much less quality, for decades. You’re so right and þrowing hardware at problems. Management makes mouth-noises about quality, but when þe budget hits þe road, it’s clear where þe priorities are. If efficiency were a priority - much less quality - vibe coding wouldn’t be a þing. Low-code/no-code wouldn’t be a þing. People building applications on SAP or Salesforce wouldn’t be a þing.
Yes, if you factor in the source of disposable culture: capitalism.
“Move fast and break things” is the software equivalent of focusing solely on quarterly profits.
“AI just weaponized existing incompetence.”
Daamn. Harsh but hard to argue with.
Weaponized? Probably not. Amplified? ABSOLUTELY!
It’s like taping a knife to a crab. Redundant and clumsy, yet strangely intimidating
Love that video. Although it wasn’t taped on. The crab was full on about to stab a mofo
Yeah, crabby boi fully had stabbin’ on his mind.
Accurate but ironically written by chatgpt
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
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)
I’m glad that they added CloudStrike into that article, because it adds a whole extra level of incompetency in the software field. CS as a whole should have never happens in the first place if Microsoft properly enforced their stance they claim they had regarding driver security and the kernel.
The entire reason CS was able to create that systematic failure was because they were(still are?) abusing the system MS has in place to be able to sign kernel level drivers. The process dodges MS review for the driver by using a standalone driver that then live patches instead of requiring every update to be reviewed and certified. This type of system allowed for a live update that directly modified the kernel via the already certified driver. Remote injection of un-certified code should never have been allowed to be injected into a secure location in the first place. It was a failure on every level for both MS and CS.
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
“Apparently there’s never the money to do it right, but somehow there’s always the money to do it twice.”
Management never likes to have this brought to their attention, especially in a Told You So tone of voice. One thinks if this bothered pointy-haired types so much, maybe they could learn from their mistakes once in a while.
We’ll just set up another retrospective meeting and have a lessons learned.
Then we won’t change anything based off the findings of the retro and lessons learned.
Post-mortems always seemed like a waste of time to me, because nobody ever went back and read that particular confluence page (especially me executives who made the same mistake again)
Post mortems are for, “Remember when we saw something similar before? What happened and how did we handle it?”
They should also include the recommended steps to take to prevent the issue again, which would allow you to investigate why the changes you made (you were allowed to make the changes, right? Manglement let you make the changes?) didn’t prevent the issue
Twice? Shiiiii
Amateur numbers, lol
There’s levels to it. True quality isn’t worth it, absolute garbage costs a lot though. Some level that mostly works is the sweet spot.
That applies in so many industries 😅 like you want it done right… Or do you want it done now? Now will cost you 10x long term though…
Welp now it is I guess.
You can have it fast, you can have it cheap, or you can have it good (high quality), but you can only pick two.
Getting 2 is generous sometimes.
The sad thing is that velocity pays the bills. Quality it seems, doesn’t matter a shit, and when it does, you can just patch up the bits people noticed.
This is survivorship bias. There’s probably uncountable shitty software that never got adopted. Hell, the E.T. video game was famous for it.
I don’t make games, but fine. Baldurs Gate 3 (PS5 co-op) and Skyrim (Xbox 360) had more crashes than any games I’ve ever played.
Did that stop either of them being highly rated top selling games? No. Did it stop me enjoying them? No.
Quality feels important, but past a certain point, it really isn’t. Luck, knowing the market, maneuverability. This will get you most of the way there. Look at Fortnite. It was a wonky building game they quickly cobbled into a PUBG clone.
I love crappy slapped together indi games. Headliners and Peak come to mind. Both have tons of bugs but the quality is there where it matters. Peak has a very unique health bar system I love, and Headliners is constantly working on the balance and fun, not on the graphics or collision bugs. Both of those groups had very limited resources and they spent them where they matter, in high quality mechanics that are fun to play.
Skyrim is old enough to drive a car now, but back then it’s main mechanic was the open world hugeness. They made damn sure to cram that world full of tons of stuff to do, and so for the most part people forgave bugs that didn’t detract from that core experience.
BG3 was basically perfect. I remember some bugs early on but that’s a very high quality game. If you’re expecting every game you play to live up to that bar, you’re going to be very disappointed.
Quality does matter, but it only matters when it’s core to the experience. No one is going to care if your first-person-shooter with tons of lag and shitty controls has an amazing interactive menu and beautiful animations.
It’s not the amount of quality, it’s where you apply it.
(I’ve had that robot game that came with th ps5 crash on me, but folding@home on the ps2 never did, imagine that)
Non-technical hiring managers are a bane for developers (and probably bad for any company). Just saying.
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.