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?
rush to market mostly
enshitification is based on the ease of moving profits from users to creators then from creators to shareholders in a digital service economy all the while degrading the service for the users and then the creators as the profit fulcrum.
so enshitification might be a different thing than the reality around manufacturing items in an international environment which requires design decisions that later require revising because not all materials are available from everyone in the way a design is called for. and finding people that can assemble things while receiving a wage that they can live so that a company can make a profit requires compromises. and that is just two tiny points in not including shipping and workspaces and insurance et cetera
it is hard, yo. in a not a one part is inconceivable hard but in a it gets complicated pretty quickly type of hard.
The management culture emphasizes a workflow that’s heavy on low skill junior devs and cheap foreign labor of highly variable quality. You caaaaan do that well with infinite planning and QA and project management and test-driven design, but the reason you’re trying to do it that way to begin with is you’re an under qualified yes-man careerist dipshit trying to come in under budget and time, so you won’t. And these are the wages of low wages.
This is somewhat outside the box but as tech becomes easier, a lot of people tend to become weaker at certain tech skills. An example of this is directory management. A lot of folks don’t organize their file structures nowadays, relying heavily on the search bar to find everything.
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.
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.
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.
Aside from the effort required others have mentioned, there’s also an effect of capitalism.
For a lot of their tech, they have a near-monopoly or at least a very large market share. Take windows from Microsoft. What motivation would they have to fix bugs which impact even 5-10% of their userbase? Their only competition is linux with its’ around 4(?)% market share and osx which requires expensive hardware. Not fixing the bug just makes people annoyed, but 90% won’t leave because they can’t. As long as it doesn’t impact enterprise contracts it’s not worth it to fix it because the time spent doing that is a loss for shareholders, meanwhile new features which can collect data (like copilot for example) that can be sold generate money.
I’m sure even the devs in most places want to make better products and fight management to give them more time to deliver features so they can be better quality - but it’s an exhausting sharp uphill battle which never ends, and at the end of the day the person who made broken feature with data collector 9000 built in will probably get the promotion while the person who fixed 800 5+ year old bugs gets a shout-out on a zoom call.
I’m not sure Windows is a good example here since they’re historically well known for backwards compatibility and fixing obscure bugs for specific hardware.
Whereas Linux famously always had driver support issues.
Backwards compatibility - yes I agree, it’s quite good at it.
Hardware specific issues for any OSes - disagree. For windows that’s 80-90% done by the hardware manufacturer’s drivers. It’s not through an effort from Microsoft whether issues are fixed or not. For Linux it’s usually an effort of maintainers and if anything, Linux is famous for supporting old hardware that windows no longer works with.
But the point I was making is not to say Linux or osx is better than windows or vice versa, it’s that windows holds by far the largest market share in desktops and neither of the alternatives are really drop-in replacements. So in the end they have no pressure on them to improve UX since it’s infeasible to change OS for the majority of their users at the moment.
Things like planned obsolescence and software blocks on things like farmers fixing tractors without John Deere’s software permission almost makes me think the bad guys won the Cold War.
Between me and a mechanic friend, we can fix my car but we can’t turn off the (wholly unnecessary) “inspection needed” noise without me spending $1000 on software. Apparently, the inspection needed warning isn’t even related to anything. It just comes on every x miles. The car doesn’t have a detected issue or anything. That beep is radicalizing me.
I think that manufacturers of tech products test their products only with a few standard configurations - but in reality there are too many possible combinations of different configurations:
Take a bluetooth mouse for example. Generally, it connects to a computer and it works. Now imagine that you have a different configuration - a logicboard in your laptop that has not been tested by the manucacturer of the mouse or an obscure model of the bluetooth reciever, that also hasn’t been tested to work with that mouse. Your mouse works well in the beginning, but disconnects at random times. You can’t pinpoint the issue, and when you are looking for help online, nobody seems to have the same problems with that mouse.
In this case, said mouse sucks, because it doesn’t function reliably. A different person with a different configuration of their computer (different logicboard, different model of the bluetooth unit) might have no problems at all with the same mouse.
Have you tried Google keyboard (gboard) lately? It made me want to break my phone and just not have one at all. It corrects proper words to other words that make the sentences don’t make sense. It corrects words that are already correct and it ignores the misspelled words. It wants to speak for me. They think they’re making us type faster with their predictive text, but I was re-reading every thing I put on the internet. I became slower. Thankfully I found a worse keyboard, but it doesn’t autocorrect
sas much and I’m ok with that. Fuck Google.Go heliboard
I didn’t know about this keyboard actually. Just installed it and it’s great. Only issue with it that it only supports English. I guess I’ll use it for English only. Thank you so much.
EDIT: never mind. It does support other languages. All set now.
I use it with many languages. I even swipe in spanish
How do you enable swiping in this keyboard. I can’t, for the life of me, find it in the settings.
To enable gesture typing, download Google’s gesture typing library at https://github.com/erkserkserks/openboard/tree/master/app/src/main/jniLibs/arm64-v8a and then import it by opening the OpenBoard settings app, going to “Advanced”, and then choosing “Load gesture typing library”. Note: Google’s library is proprietary and not open source.
There is no gesture library in the link
Everyone else has great points about complexity, but there is an additional issue which is the constant desire for change keeping products from being refined and perfected.
Any product will have small changes that improve it, like reinforcing points of failure specific to that design. Let’s take a kitchen knife, the kind chefs use. Some manufacturers have the exact same model produced for decades, with ever so slight variations on angles, handles, and so on as they refined design. Now they are high quality if they keep the production going, and that is something that has no moving parts! These knives continue to sell because they are used constantly, can break or be damaged, and new restaurants open all the time requiring a constant supply of knives.
The home knife market does not have the same pressure for reliability because people don’t use them all day every day like a chef. Instead, companies are constantly changing designs to sell new versions to the same over saturated market that prizes form over function. They change the handles slightly, make a change to the blade, and sometimes these changes make the knife worse but they can slap a ‘new and improved’ sticker on the label as long as something changed.
The same thing happens with technology except complex systems have even more refinement needed while the companies are also trying to change things just to change them in the pursuit of the ‘new and improved’ market. Moving menus around, changing orders of things, making things look flashy are all side effects of tech being afraid of selling the same thing for an extended period of time because people want something new and shiny to replace what they had. Time and effort is spent on changing things, and it is hard to do bug fixes while also creating something new that might make a bunch of old bugs obsolete. Oh, and they will also be spending their time trying to patch critical vulnerabilities, because that might keep someone from buying their next thing.
So all the effort going into changing things, often making them worse if they happened to stumble into a useful design already, and they put all of their focus on that change and vulnerabilities so they don’t have time to fix usability issues or do the things that would make their product better because why bother as long as people are buying? Anything someone who is knowledgeable about being fixed is unlikely to be a priority because the regular user probably hasn’t even noticed and they are the ones who are going to buy the next version. That is why things like bluetooth continues to suck, because it works well enough to sell more things and doing it right would take more effort. The handy feature that you used to like being removed? They felt it needed to change just to change and whoever provided input or feedback came up with this instead.
Oh, and all of this was just talking about available time spent doing things but on top of that they want to spend as little as possible so they get the cheap parts that are made by companies who also make a product just good enough that they get more customers to buy their parts for as little cost to produce as possible.
TLDR: market pressures favor changing things constantly which introduces more design flaws and capitalist pressures focus on revising designs to sell more and security flaws so as long as it sells it doesn’t matter if it has shitty usability and minor flaws are never fixed
There was an article by Google about the security of their code base, and one of their core findings was that old code is good, as it gets refined and more free of bugs over time. And of course conversely, new code is worse.
https://security.googleblog.com/2024/09/eliminating-memory-safety-vulnerabilities-Android.html
Generally it seems like capitalism’s obsession with growth is at odds with complex software. It’s basis in property also.
We tend to forget that all of that is to support people. Tech shouldn’t be an end goal, merely one of the ways to achieve it. And not always the best one at that.
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
The difficulty of keeping something working scales exponentially as its complexity grows. Something 1x compexay 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.
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.
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.
It’s a monument to human achievement that they work
as well as they doat all.FTFY.
It’s a young field and we’re still entrenched in the consequences of the sort of mistakes that, in a few hundred years, will become “those silly things people used to do because they didn’t know better”.
Daily reminder that the web is a mess of corpo bullshit piled on top of 90s tech and most OSes currently in use are culturally from the early 80s.
Is that a thing that goes away? I think a lot of fields still have that silly things being done even closing in a half millennia on the industrial revolution. You still have tons of screw head sizes and types! Why such diversity!
The screw heads are mainly to prevent people from tampering with stuff they aren’t supposed to unscrew. Hard drives, for example, all use the same star-shaped heads that most people don’t have screwdrivers for.
I do think that people passionate about information technology – those who love it for the intrinsic awesomeness and not the money it brings – could break away with some of the legacy bullshit that holds back the quality of the software we use, if they were given the opportunity to defy software “tradition” and the profit motive. As of now, there is no systemic path forward, only occasional improvements incited by acute inadequacy of existing conventions for the growth of interested businesses.
Whole that’s true, you have Philips and flat heads and ikea hex which could all be those sort of flat and star that are for common people that could be more universal.
About software were a lot freeer, because if it doesn’t have hardware and specially infrastructure requirements, such as the whole Internet layers or new visualisation devices you’re open to change things up a lot.
I mostly agree - however there are physical/mechanical reasons behind the use of some of those. For example, Phillips head screws will ‘cam out’ (driver will slip out of the screw head) rather than get over-torqued, which is useful in various situations - although TIL this was not actually an intentional design feature!
https://en.wikipedia.org/wiki/Cam_out
Hex keys are better than a Robertson (square head) in tight spaces with something like an Allan key, and, in my experience anyway, Robertson can take a fair bit of torque, so they’re great for sinking into softwood - and also for getting out again, even when they’ve been painted over.
Flathead screws, on the other hand, should launched into the sun
Sometimes it’s a solution in search of a problem. Usually that’ll be some startup that really wants Google (or somebody) to either buy them out or shovel millions of venture capital money at them. VC that would be better used for anything that housing homeless people, feeding the hungry, or hell just burning to stay warm.