Sometimes I’ll run into a baffling issue with a tech product — be it headphones, Google apps like maps or its search features, Apple products, Spotify, other apps, and so on — and when I look for solutions online I sometimes discover this has been an issue for years. Sometimes for many many years.
These tech companies are sometimes ENORMOUS. How is it that these issues persist? Why do some things end up being so inefficient, unintuitive, or clunky? Why do I catch myself saying “oh my dear fucking lord” under my breath so often when I use tech?
Are there no employees who check forums? Does the architecture become so huge and messy that something seemingly simple is actually super hard to fix? Do these companies not have teams that test this stuff?
Why is it so pervasive? And why does some of it seem to be ignored for literal years? Sometimes even a decade!
Is it all due to enshittification? Do they trap us in as users and then stop giving a shit? Or is there more to it than that?
TL;DR software development is hard.
Hard to respond with anything else since you haven’t really given examples.
I’d expend your tldr just a bit to include.
- users are stupid
- software is designed to work for both Tom Tecnowizard and Paul Pebkac
- finally, ads ruin everything they touch
I worked at Google for over a decade. The issue isn’t that the engineers are unaware or unable. Time and time and time again there would be some new product or feature released for internal testing, it would be a complete disaster, bugs would be filed with tens of thousands of votes begging not to release it, and Memegen would go nuts. And all the feedback would be ignored and it would ship anyway.
Upper management just doesn’t care. Reputational damage isn’t something they understand. The company is run by professional management consultants whose main expertise is gaslighting. And the layers and layers of people in the middle who don’t actually contribute any value have to constantly generate something to go into the constant cycle of performance reviews and promotion attempts, so they mess with everything, re-org, cancel projects, move teams around, duplicate work, compete with each other, and generally make life hell for everyone under them. It’s surprising anything gets done at all, but what does moves at a snail’s pace compared to the outside world. Not for lack of effort, the whole system is designed so you have to work 100 times harder than necessary and it feels like an accomplishment when you’ve spent a year adding a single checkbox to a UI.
I may have gone on a slight tangent there.
I fucking hate how accurate this is
I ran into a guy from high school and it turns out he worked for Microsoft back in the Windows Mobile days. He said that changing even a single button on a submenu would take six months of meetings, and if it involved other departments they would actively sabotage any progress due to the way MS internally made departments compete, so you could basically forget it. He said they literally backdoored software so they could sidestep other departments to get features in.
I think about that a lot.
Reputational damage isn’t something they understand
Is this really the case? I feel like they might, but are deciding that its “worth the cost of business”
I’d think since companies get big enough they can just buy the promising competition before it becomes a problem, I’d say it’s a worthwhile cost to them
Yeah, lack of competition is driving a lot of this. Fixing bugs doesn’t increase their stock value. It doesn’t make the line go up.
Launching products and bragging about profits makes the line go up (especially just before a quarter or monthly report is due).
AT&T/Bell Telephone was like this for years until they were finally broken up (nominally). When cellphones came out and provided nationwide competition, long distance suddenly became free.
We need to bust up google, Facebook, etc. They have nothing to push them to be better, just CEO egos and investors to please.
Facebook as a product is over. It’s like 90% ads. I almost never see my friends posts anymore.
Its marketplace has been really popular in my area. Craigslist has all but dried up for may item types.
But they own Instagram as well don’t forget, and they have bought out many other competitors that we won’t ever get to experience.
A corporate analogy/strategy is to block your competition from the market share.
For example, a company I used to work for would open accounts in non-viable/non-profitable locations so that our competition would not have the chance to get more market share.
Big corps don’t give a shit if it works or not, as long as they are the biggest they can squeeze out anyone else, so they will launch whatever is trending (meta/threads) and bullshit thier way into another piece of the pie.
This sounds like working as a North American public servant hahahahaha
This is what you get when humans try to work beyond our monkeysphere. It’s not “capitalism” or “greed” or any other such childish ideas. Groups that large cannot be efficient.
https://www.cracked.com/article_14990_what-monkeysphere.html
The article is so old the formatting is all jacked, but you can get the jist of it easily enough.
except capitalism incentivises top down organizations that lead to those problems?
But the trick is having layers of monkey spheres! The ceo monkey has 20 directors below it and each of those has 20 people leading people so it all reports up and gets lost but is “good enough”.
It ain’t that bad I’m sure
Agile has poisoned software development to the point where it’s fine to ship shit products that can be fixed post-release, which of course gives stakeholders and execs the reasons to tie performance and bonuses to shipping, as opposed to routine stable operations.
I don’t know if going back to Waterfall is the right fix, but something has to change. Shipping crap is the new normal. If programmers organize to fight for better wages and conditions, we absolutely must fight to hold management responsible for code quality. Get us additional hours for unit and behavioral testing, assessing and tackling technical debt, and so on.
-
Monopolization. If you have become the standard, there’s no reason to improve.
-
Technological advancement. If the speed of new processors continue to double every year, why bother optimizing your program?. This pisses me off so much, games don’t look much better but are 4x harder to run compared to 8 years ago.
-
Cost. Having many programmers, and bug testers on payroll to improve your product is expensive. Massive companies are pennywise pound foolish and will hack and slash at their staff line up until catastrophe strikes (which usually only occurs long after the layoffs)
-
The difficulty of keeping something working scales exponentially as its complexity grows. Something of 1x complexity take 1y effort, but 2x complex is 10y effort, 3x complex is 100y, on and on.
Phones/computers/apps are at hilarious levels of complex now, and even 100k people running flat out can barely maintain the illusion that they “just work.” Add enshittification heaping its intentionally garbage experience onto the unintentional garbage experience that is modern computing, and it’s just gotten stupid.
Seriously. Millions of things have to go right for your consumer electronics or software experience work seemingly flawlessly. Think about the compounding probabilities of it. It’s a monument to human achievement that they work as well as they do.
It’s a monument to human achievement that they work
as well as they doat all.FTFY.
It doesn’t help that every new generation adds a new blackbox abstraction layer with little to no end-user benefit, the possibility of duplicated functionality and poor implementation, security concerns, poor support, and requiring a flashy new CPU with system crashing speed tricks to maintain a responsive environment through 12 levels of interpreters.
Is this a complaint about the OSI model?
No, the OSI model is fine.
I’m talking more about sandboxing an interpreted app that runs a container that runs another sandboxed interpreted app, both running their own instances of their interpreter with their own dependencies and accessible through a web interface that is accessible through yet another container running a web server that is running in Python with a virtual environment despite being the only Python app on the container, which is then connected to from another sandboxed tab on a sandboxed browser on your machine.
But hey, at least it isn’t, god forbid, a MONOLITH. That would require someone to take the time to understand how the application works.
Ah, yeah I get that. Java interpreter so you can virtual machine your way into having someone else making sure the thing works with all hardware it can live in.
Blind scalability and flexibility are neat tho, gives access to a lot less knowledgeable people to do stuff and theoretically frees up those who know for more complicated tasks.
It almost never works like that.
People who don’t understand computers will work against it in almost every case.
Been saying that about the internet for 30 years. It’s a damned miracle it works at all and people whine and cry about every little hitch.
Yes, people often want things that work. If there are good reasons why there is clunkiness, then, if these reasons are commonly understood, more people will be more patient. Knowledge is power. That’s the point of this entire thread.
Capitalism
“Unless it’s renders the product completely unusable, why spend money and fix it?”
Corporate mindset in a nutshell!
“Unless it’s renders the product completely
unusableunprofitable, why spend money and fix it?”
Good enough 90% of the time makes 99.9% of the money so why bother making things perfect for the power users?
Because you’re not paying extra for those problems to get fixed. And no, when you receive millions of forms per day, not every piece of feedback makes it back to someone to actually fix the issue. Especially when half those issues are “when I don’t have internet I don’t receive new emails”.
Software, like hardware, is a balance between supply and demand. People would rather pay less for a phone crammed full of ads than pay for a service. Just look at YouTube for that one.
Also, those clunky interfaces are there for a reason. Maybe the interface element that’s a lot better doesn’t work in right to left languages. Maybe the information overload of too many buttons and labels made the old interface impossible to extend. Maybe the prettier solution doesn’t work with screen readers or with the font size and colour cranked up for people with low vision. Maybe the feature redesign worked great but SomeCorp Tweaker Software will bluescreen the machine when it finds the word “checkbox” in a settings page for your mouse. Maybe the design team had a great idea but the feature needs to ship next week so whatever needs to happen to make that works happens, and the five other features planned for the month already eat up the rest of the dev team’s time anyway.
But most of the time, things are suboptimal because there are seven teams of people working on features on the same screen/system/application and they need to make do.
If you have serious issues with some software, many companies will let you partner with them. In exchange for hundreds of thousands or millions, you can directly get support for your use cases, your workflow, and the stuff you need to get done, over the billions of other people that also need to use the software. And sometimes, that means your super duper expensive preference/feature/demand means someone else’s workflow is entirely broken.
If you know what you want, there is a way out: going the way of open source and self hosted. Within a few years, you too will grow resentful of dozens of systems made by different people all interpreting standards differently and not working together. You have the power to fix each and every feature, bug, problem, and design flaw, but none of the time or the detailed knowledge. You don’t have the money to pay experts, and even if you did, what they do may not entirely suit you either. Trying to fix everything will drive you absolutely mad. And that’s why companies and people often don’t try for perfection.
Most tech sucks because it’s closed source. Closed source products are typically made with “the least amount of work done to sell for the most amount of buck”. So standards are only sloppily and partially implemented (or sometimes purposefully badly or differently to ensure incompatibility), and bugs after sale won’t be fixed because why would they? They already have your money. Middle managers will work hard to ensure more money goes to advertising and marketing than to actual development.
Then there is the embrace, expand, extinguish mentality (hello Microsoft!) to force customers to stay around their shitty products. Microsoft 365 and teams shit are perfect examples. The company I work at currently uses it and it’s beyond garbage shit that is expensive as hell. Not an hour goes by without me being confronted by bad design, bugs, bugs, bugs, so many bugs… And it’s all designed to ensure you stay in their little walled garden. I can’t change this today, but I’m planning to be rid of it in about a year from now, fingers crossed.
In my experience, open source software is fucking awesome because people built it to actually build something awesome. Standards are implemented to the letter, bugs are fixed, and it all works and looks awesome.
People who weren’t interested in tech found out they could make a lot of money in the field. The scene went from nerds who were passionate about the field to people who would be just as (un)interested in being doctors and lawyers. The vibrancy is gone.
Source: tech-excited nerd who got into the industry in the late aughts.
I definitely agree about the vibe being different in the mid 90s to the early 00s. Lots of passion and energy about the tech. I don’t think it’s all gone but it’s definitely nowhere near as intense.
Every single new “innovation” is literally locked behind a paywall, sometimes multiple, in tiers. You can’t just “buy” anything anymore, you can only lease it, usually at exorbitant prices compared to not that long ago.
Tge problem is money. The incentive if to make as much money as they can, not the company. Company loyalty has completely been blown up by companies, so now not even the ceo gives a fuck, he’ll be running another company with a 10% raise this time next year.
Speaking as a software engineer, it’s usually a combination of things.
The root of all evil is that yes, fixing that thing doesn’t just take one hour, as it should, but rather a few days. This is mostly preventable by having sufficient automated tests, high code quality and frequent releases, but it’s a lot of work to keep up with. And you really need management to not pressure early feature delivery, because then devs will skip doing necessary work to keep up this high feature-delivery velocity.
Well, and as soon as such a small fix has a chance of taking more than a day or so, then you kind of need to talk to management, whether this should be done.
Which means probably another day or so of just talking about it, and a good chance of them saying we’ll do it after we’ve delivered this extremely important feature, which usually means ‘never’, because there is always another extremely important feature.This. Worked at a consulting firm doing e-commerce for a client. The client always pushed making changes on banners or promotional texts rather than fixing bugs.
There was an issue with the address validator in the checkout (why and how is irrelevant) and it was raised by the QAs, but we were told to fix it in the future, they didn’t see it as a priority, they preferred a checkout that worked most of the time an focus on adding a promo banner.
Now I work in a better place, working on product with stakeholders who don’t prioritise new things over fixing stuff, but we still need to fight to have time allocated for technical improvements that the benefits are not directly evident in the final product.
Why is it so pervasive? And why does some of it seem to be ignored for literal years?
Considering that you know that these problems have not yet been fixed, you must still be using these products despite these problems not yet being fixed and there’s your answer: What would the motivation be to fix problems that aren’t severe enough to make you stop using the product?
For example?
Programmers don’t get given the leeway to make the work they do of good quality if it doesn’t directly lead to more profit