Upvoted for the headline before I even read the post; and in full agreement after reading. I'm somewhat inspired to keep a similar diary of techno-suck moments... but there would be so many!
I never stopped to think about how much time I spend on this kind of request, just to get what I'm trying to obtain.
Then, if we are worried about using our time wisely, what to do?
This might sound like a flippant question, but it's not.
Isn't the point of tech to tinker? When did problems become problems that you shouldn't try to solve, instead of a reason to learn about the tech?
I've really been down about technology lately, after working with 6-12th graders. They just don't get how anything works, if it doesn't immediately work for them. They don't want to take it apart and figure it out.
This blog piece just seems like more of that. Why bother with figuring out how things work when you can just throw them away?
Here's an example. I use Discord for keeping in touch with friends, running D&D sessions, etc. Discord on Linux has a random crash whenever in a voice call. I've followed up on threads, and others have this same issue, possibly related to glibc, but there aren't any definitive solutions yet. So, instead, I tinker. I make a quick two-line python script to launch discord repeatedly every time it crashes. Discord reconnects to the voice chat on restart, and all is well. Usually, people don't even notice that I've dropped out of 1-2 seconds.
But Discord does more at startup than just reconnecting. It also checks for new updates, and refuses to start if there is an update waiting. So now I've dropped out of a call, I have self-opening popups letting me know that there is an update available, and I'm trying to download/install the .deb update before the D&D players get bored and start making puns. Nothing good happens when the players have started making puns.
I like tinkering. I really do. But I like tinkering in order to solve my own problems, and to make my life easier. I don't like tinkering on limited time in order to add yet another support to a house of cards that is gently swaying in the breeze while I'm trying to hold a D&D session in the top room of that card-house.
I think that is a terrible analogy. A car for the most part has a single purpose. Technology offers humans a lot more than just getting from point A to point B. If you only are capable of utilizing the bare minimum it's going to make life a lot harder. Take excel for example, the people who are able to reason about and write their own advanced excel spreadsheets in the workforce have a huge leg above those who only can do what the UI lets them do on their phone. There is a lot more to computing than treating it like a hammer.
You can’t say that they have a leg up in general because It Depends. I’m an engineer and my job is computational fluid dynamics (CFD). My dissertation involved developing highly parallelized solution algorithms for a specific type of problem. As such, I am quite well versed in low level Fortran/C code and MPI because I wrote code to do that, “that” being to solve an equation. I know this set of equations like it was second nature because of how much time I’ve invested in it. Not only that, but I would consider myself somewhat of an “expert” in the underlying mechanisms to solve these equations. Those being finite element methods. I can talk to you about tensor spaces and discretization and derivation of the numerical algorithms to solve these problems. I’d consider the code that I wrote/extended to be tech.
My current job role is “just” an engineer working for a company where all I basically do is run and analyze models using commercial software. Even though I know the underlying low level code/algorithms of what I’m doing, I would be the first to tell you that a 21 year old mechanical engineering graduate could do my job as effectively and as completely as I could. Because none of the above paragraph actually matters in what I do. Maybe it gave me a leg up in the hiring process, but the knowledge I am applying for my job (which I enjoy) is what you’d learn in a 4 year degree with electives in eg numerical methods and fluid dynamics.
> A car for the most part has a single purpose. Technology offers humans a lot more than just getting from point A to point B.
Sure, a car is just one example of technology. Technology in general is responsible for everything we have and everything we do. Here are some other technologies:
- farming
- weaving
- plastic
- glass
- ceramics
- steel
- cooking
To the nearest 0.0001%, 100% of people need these things to work and don't -- and can't -- understand why or how they work. That's the point of technology.
I'm really surprised to hear you question how computing is different from any other technology? General purpose computing is extremely broad in scope. It's used in everything from finance, design, manufacturing, communication, engineering, medical, entertainment - pretty much every field or industry in the world has been impacted by it. More so than any other technology in existence. Even something like gasoline has had less impact than computing. Being able to take advantage of this powerful tool is a huge leg up on life. There are countless applications of computers in our daily lives. To just ignore that and use them for their bare minimum function is quite sad!
> It's used in everything from finance, design, manufacturing, communication, engineering, medical, entertainment - pretty much every field or industry in the world has been impacted by it. More so than any other technology in existence.
Nope. Farming has this beat hands down. So does writing. (I unlisted writing from my earlier comment because, unlike other technologies, anyone capable of using writing must also have a good understanding of how it works.)
What no extremely not. It's to... do things? Tinkering with tech is cool if that's your hobby but it's not mine and I'm trying to do shit not pick up another hobby here.
It's like the people that argue that cars have lost something intrinsic in recent decades and now no one knows how to do work on their own vehicles. That standard was an artifact of unreliability, not something to be applauded.
Tech should get out of the way and let you do what you're trying to do. If "tinker" is that thing then sure have fun. But for most people that's not the point at all.
I think the op was close. I don't expect everyone to tinker with something. Not everyone needs to be interested in cars, or computers, and want to build and maintain them. But, I think people need to put in a little more effort to have a general understanding of the tools they entrust with their life and use constantly. If you interact with a computer all day, every day, you should dedicate some time to understanding more about how it works. That's not saying you're tinkering with it or it's your hobby. But, when it's a main part of your life, not knowing anything is just bad planning. When things go wrong you're now screwed. It's just survival planning, you don't need to be an expert, but knowing a little bit puts you ahead of 90% of users.
How much do you know about metallurgy, plastics, concrete engineering, hydrocarbon refining, etc etc etc all the thousands of extremely specific domains of expertise that modern society is built upon?
The fact that you can possibly get more out of some tech by knowing how it works is because most of it is very new, which is basically just an anomaly that is fading. Eventually how computers work will be like those other things: expert domains that we rely on but users don't need to understand.
It's already largely like that and that is good. I get that everyone here is a nerd and grew up tinkering with their computers and this makes them sad.
We claim to be building tools, but nothing we build operates like a tool does. My hammers don't randomly lose their heads. My vise grips don't every so often fly apart into a collection of oddly shaped bits of metal, and require I painstakingly reassemble them by hand. My benchtop power supply doesn't require constant calibration. Even my oscilloscope, which actually is a computer that just happens to be built for signal processing, functions in a way that's predictable and reliable. And if any of these did misbehave in the ways I describe, I'd regard them as unfit for purpose and, while I would likely be able to repair them and put them back in service, the ideal outcome would be replacement with something that didn't require the same effort just to make it able to do the job it is sold as being able to do. Tools exist for the sake of making other tasks easier, not as a source of tasks in themselves.
There is definitely failure happening here. But it's not on the part of people who are upset to have been told what they're buying are tools, only to have them turn out not to be.
I'm not sure there is an agreed point. The industrial revolution is still young. Most people made a substantial portion of the goods they use historically. Even when trading for goods, it often was for intermediate inputs like cloth rather than fully finished items.
But even then, I would say no, tinkering was the point of hobbyist tech, or professional/craftsman tech. But the recent history of "consumer goods" hasn't been about tinkering ... I think the key difference in the past few decades is maintenance. Even in the era of consumer goods in the past hundred years or so, maintaining your possessions was expected. Some might pay a professional for specialized work, but since most things were maintained a large fraction of the work fell on the owner ... and this also leads to tinkering, not as an expectation, but an outcome.
Consider darning your socks, or sharpening your hatchet. Shining ones shoes or replacing a sparkplug.
The point of technology is to enable us to do things that we either can’t or don’t want to do. This ranges from simple time savings (don’t want to do/make things easier) to things we literally can’t do (high precision timing for example).
Nowadays most software doesn’t let you tinker with it. Want to tinker with your chat client? Too bad, everything (that any of your friends actually use) is closed source and proprietary now. Frustrated with social media? Unless you can convince all your friends to switch to mastodon, you’re stuck with whatever Facebook/Instagram forces upon you. Excited about the future of virtual reality? Hope you don’t mind playing by Facebook/Oculus‘s rules. Want to fix an annoying issue with how your email client categorizes email? Well there’s no way to integrate with that system, google barely supports standards like pop and imap anymore, and outlook is transitioning away from a powerful plug-in system to a silly new web-based model.
A very specific example:
Something that’s been frustrating me for years is Google photos on iOS does not synchronize whether I have starred/favorited a photo on iOS‘s photos to google photos. I tried fixing this myself with a helper program, but the Google photos API does not let you set whether a photo is marked as a favorite, and you cannot manually add photos to the favorites album via API. I’ve tried several hacky workarounds but I simply cannot build the simple UX fix that seems obvious to me, nor can I get anyone from Google to acknowledge my many suggestions to them to implement this obvious feature. I looked into trying to use Plex or Microsoft onedrive as an alternate photo backup system, but they are much worse than Google Photos in terms of reliability and UX. I’ve looking into open source solutions to replace this whole workflow, but the amount of time and effort and money and compromises required for a system like that simply isn’t worth it. So I put up with the annoyance, since there’s effectively nothing I can do about it.
I used to love programming because it made me omnipotent, I could change things as I wanted and tie together systems exactly the way I liked. But now I keep hitting brick walls, most of which are imposed because of business models and not for purely technology reasons. The frustration adds up, to the point where I no longer enjoy bothering to try at all. Now I am only involved in technology to the extent that I make money from it, and I’m in the process of transitioning my career away from tech altogether. So much potential squandered.
that's why i use Free Software and Open Source. same bugs and same irritations, but at least i have the feeling that i could do something about it.
instead of feeling helpless i get to make a calculation: ok, so to fix this issue i have to get the source version, identify the problem, figure out how to fix it, submit the fix upstream.
hmm, 5 hours of work? do i have the time? can i pay someone to do it? is it worth it?
if the answer is 'no' then i made a conscious decision to tolerate this issue, because i considered the tradeoff.
because i have this choice, i feel empowered, even if i decide not to do anything about it.
with closed source software i don't have this choice and any issue i run into makes me feel helpless.
I'll point out that many of these annoyances don't have equivalents on the command-line. And the annoyances I do have on the command line I can mostly work around with wrapping things in shell scripts, aliases, or functions.
It's nice to have a simple interface and high extensibility on top of it.
Well, then there is also the annoyance of having way too many wrappers to wrap your head around, and it's one that I personally encounter somewhat regularly. Still has not figured out how to deal with that one.
meh. I’ve noticed recently that Bash for whatever reason seems to just randomly erase my entire history, which is infuriating (though obviously not enough for me to invest the time to investigate or fix it at all). Stuff breaks all over, CLI or otherwise.
Eh, it still happens. You'll find plenty of CLI utilities that can have small, but breaking changes between minor versions and require all kinds of hacks to get working correctly in a mixed environment.
"rm deleted my entire root filesystem because I told it to" seems along the same lines of unexpectedness as "i handed the homeless guy a $100 bill instead of $1 because i didn't look closely" :)
> I'll point out that many of these annoyances don't have equivalents on the command-line.
I'd argue the entire command line is nothing but annoyances. Everything is completely non-obvious and often requires reading man pages that can contain a hundred options that may or may not be in alphabetical order.
The fact people have to write scripts to really function on the command line is telling.
My personal nightmare is exiting vim. If I make a mistake typing, I enter recording mode instead of exiting. This happens to me several times per day. And, no it's not a matter of being more diligent, it's the result of a disability.
The command line is powerful and I absolutely love it but it is a pit of rusty razor blades people keep throwing ropes over. :)
The command line has suffered like everything else. Complexity creeps in and builds on itself. But scripts aren't the problem, scripts were part of the design as the intent was to glue together the many CLI utilities. Scripts bind them into performing a repeated task (versus one-offs).
I kind of agree, but calling it technology is pretty broad (article it's mostly app related). Technology-wise, I also expect things ranging from a flashlight to a CT scan to not suck, and they usually do not.
People literally have to get months of training to operate these machines because they are highly specialized, non intuitive and finnicky. Using medical instruments as an example of good software isn't a great idea
Consumer technology would be a better qualification. Or at least computers.
- The whole current USB ports fiasco;
- Just look at any wireless headset and you'll find at least 2 major bugs, between connectivity, quality, or general usability;
- Smart TVs suck terribly even at the high-ish level, both performance, image quality and usability;
- Touchscreen stovetops get triggered by food splatter;
And so on
Basically anything that has a microprocessor anywhere is bound to go haywire somehow at some point.
The sad thing is that it doesn't have to be this way. Business schools, in fear of phantom product development teams that waste huge R&D budgets developing beautiful products that cost too much for anybody to buy, spend all of their time preaching against quality in any form. Business school graduates are trained to be suspicious of any attention to detail and are explicitly incentivized to compress schedules for nothing more than the sake of compressing schedules.
I don't personally have an issue with this, as it makes the market perhaps slightly more friendly to those who do take (a little) extra time to put in some quality.
I feel like the slow decline of software quality has been in lockstep with the gradual transition from (expensive and non-measurable) manual software/hardware testing and QA to automated frameworks and rollout-based quality assurance.
I constantly encounter broken functionality, buggy or unpleasant UIs, just as the author has. It feels like many of these problems could be avoided if you just had one person whose job it was to sit there and look for broken stuff. (I'm sure I'm biased as someone whose first job out of college was to sit there and look for broken stuff.)
I agree with this sentiment in general. Of course, we have a ton more features than we used to have, but I think given the newness of software in years past, we were OK with bugs and issues because of the novelty of it all.
Now we are in 2020 and iPhone updates STILL cause battery issues. The iPhone has been out for 14 years...
Our expectations have changed. Tools like Excel should just work - and yet, when I try to save a file, sometimes it freezes and crashes. How is that acceptable now?
Yeah, but then you'd have to raise the price to pay for the testing and the jokers a block down the street who YOLO'd their competing product into the marketplace without testing would grab all your sales. You'd be out of business and your competitors would be laughing their way to the bank while the customers still suffered constantly from a broken product.
If it were only for novel products this would be a reasonable argument. See Netscape's rush to release their browser as an example of what you're talk about.
But the worst part is that this is an issue with established products that have secured their market, and will even receive money every year from their customers. They have both the money and the time to pace themselves and test things properly, but they don't.
Can you name a few of those who really truly have time but don't take their time? Also it seems there's always an opportunity cost. So time is always "of the essence".
An MS bug in an enterprise piece of software (so they get paid every year for it) is Skype for Business. Perhaps my org hasn't updated their installation, but if I drag a contact from the chat window (say you message me and aren't in my contacts yet) and then drag it to the contact list (in status view) it will reliably crash the program. If I drag it to groups view it'll place the contact in a group. My guess is that dragging it to status there is no "default" group and so there's some kind of null pointer exception occurring (it tries to add it but with group given as either junk or null).
I used to see more bugs in Outlook, but it seems somewhat better with the last update so I haven't noticed them. Though it was fun when I had negative 2 billion messages for a week or so (I certainly didn't have enough to cause overflow so I have no idea how it wrapped around like that).
Google's is an issue of usability of their webapps (IME), not strictly buggy but not sufficiently tested. Behind the proxy at work Maps is incredibly unreliable. It takes several reloads for it to actually start working "correctly", but don't change where you're looking too much (you can zoom in, but do not pan around). That's not the only unreliable one in this situation, but it is the most easily demonstrated.
Apple's Messages and Mail constantly tell me (they've been better the last few months, but it still happens) that I have unread messages, I'd search and search and never find them. Then I'd pull it up on a different device and finally see the unread message (which was both visible and marked as read on the original device).
Some of these may be shallow or seem petty, but it's an unpleasant experience that after so many years and with so much money should've been resolved for each of them. I'm willing to tolerate an indie game crashing on me. I'm not willing to tolerate an enterprise software solution (MS) crashing for a natural user behavior.
EDIT: I think resolved, but Apple's iOS calculator bugs were annoying for such a simple program. Not strictly a bug, but Windows' calculator, these days, is an unusable mess in many ways. It shouldn't require so many system resources to add some numbers together (the same could be said of many small utilities that were rewritten for, I think, Windows 10 or Windows 8).
Gmail showing me email meant for <first><last>@gmail.com instead of <first>.<last>@gmail.com. The fact that they ignored the . at all in the user names. The Youtube app on iOS when I first installed it and quickly uninstalled it years ago was an incredible annoyance. It wouldn't reliably show me the video I'd actually clicked on that caused the app to open.
Adobe is an almost perfect example of holding their market captive. I've run into a number of Adobe Acrobat issues over the years, though fewer recently (but I use it less often now). But especially Acrobat Reader on Mac OS X was awful, I actually once had to reinstall the OS to get it to stop fucking up PDF display even after uninstalling the software (I never found out what it had done to the system, and gave up). I needed it because I couldn't find anything else (at the time) that supported digital signatures in PDFs on the Mac (in the sense that it actually worked, I think Preview let me do it but what it made wasn't usable by the people receiving the file).
EDIT2: Another Google one, with Chrome on macOS in full screen. Hiding the location bar means you straight up can't get to it. You have to reenable it, versus a sane behavior like autohiding and moving the cursor to the top restoring it.
Skype for Business is just Lync [used to be Office Communicator, maybe?] renamed/reskinned, right?
I think that product is cursed. It was always a dumpster fire, like IBM's Lotus Notes. It's there so you their clients don't accidentally try Slack or any of the sane alternatives.
All products of MS, Apple, Google are in a constant churn mode. New design. New integrations with whatever platform changes happened in the back, new features to match the competitors, new trends, new mobile apps, new browser features, new framework.
Those are the products that are not the real products and not real money cows, so they get very limited attention.
I agree all of these are horrible. GMail is still a slow piece of shit. I recently tried Thunderbird, and .. it slowed down too. Wtf. Slack is slow too. Typing has become slow for some reason in a lot of "apps", maybe too fancy fonts?
Anyway, these companies have huge opportunity costs. Just look at Google. They try whatever crosses their mind and nothing is good enough compared to "ads". And so they shut them down because opportunity costs. (Not because upkeep, but because then your attention is not on the next big thing, whatever that will be.)
> I agree all of these are horrible. GMail is still a slow piece of shit. I recently tried Thunderbird, and .. it slowed down too. Wtf. Slack is slow too. Typing has become slow for some reason in a lot of "apps", maybe too fancy fonts?
Possibly because more companies are moving desktop apps to Electron so they can run JS everywhere.
You also need management willing to prioritize engineering time to fixing that broken stuff, and engineers who actually know how to make non-broken stuff. My experience is that having all three of these prerequisites is pretty rare.
I'm going to restate something that I said a few days ago:
There are a number of hats developers are expected to wear today:
1. Developer of new features
2. Sustainer of prior code and features
3. Tester of all of this
4. Constant student (outside work because who'd pay their employees to learn?)
The priority for the business is (1), so 2-4 get neglected. This compounds over time to mean that old code isn't properly refactored or rewritten when it should be, and none of the code is tested as thoroughly as it should be, and none but the smartest or most dedicated are really going to be perpetual students (or they'll choose to study things that interest them but don't help at work, like me).
When the old code and poor tests create sufficient problems, you get a business failure or a total rewrite. Which strips out half (or more) of the features and the whole process gets restarted.
It's another thing some companies expect you to do, but don't allocate time for it, so at the point you finally know enough to not do a bad job, you're suddenly being pulled out of 1-4 and expected to do 5.
Oof, we had a guy retire over that. In his appraisal he was dinged for not doing enough. They counted his training of new hires as 1 "point" (or whatever, the system was weird). They neglected to consider that he was training 5+ new hires in that year. He'd had enough, put in one last year to wrap some stuff up and then he was out and free.
Right. It's the curse of the name. DevOps wasn't meant to be a role, but a philosophy of working and organization. But management (and practitioners) latched onto the idea of it as a role and hosed themselves. Now you've got a 20+ year veteran developer tasked with keeping dozens of servers properly configured, secured, and operating as well.
At some point we have to accept that specialization isn't just for insects. It's helpful to have a proper sysadmin or DBA or whatever (appropriate to your domain) within the team, and not just diffuse those roles amongst the developers themselves.
Software has always sucked and had these issues. It has nothing to to with automated QA. The reason you see more issues is 'way back in the day' your software had a very limited number of things that it did, and in general it did not involve accessing a network or chugging down massive volumes of data from untrusted sources.
I work for a company that has a lot of individuals that test for QA issues, they have list miles long of things to check and write reports on.
The problem is more of "It's much easier to write mountains of code than it is to ensure that it works in all cases"
The one thing that has changed is updates can be delivered easily. This takes some of the pressure off in terms of QA because rolling out a fix to a centralised service delivered through the browser is quick and painless. The cost of pressing millions of CD's kept developers in check in the past.
Games are also massively more complicated today. It's one thing for three people getting a 2.5 MB single player DOS game reasonably bug free. It's an entirely different thing to get the 5 GB game made by a team of 100 or 1,000 people.
Most of the size difference is assets anyway, right? Games today use off the shelf engines. It should be alot easier to make rubust games when most of the techincally hard parts are allready done.
And, as you’ve alluded to, the scope of what software does for us on a daily basis has expanded by several orders of magnitude. Not only have a number of devices that used to be purely electro-mechanical been reworked to use microcontrollers (cars, everything in the kitchen), but the scope of activities that have migrated onto the web or our phones is truly massive.
30 years ago, software bugs might interfere with you professionally, but they wouldn’t stop your ability to get money from the bank, cook food, or do any other day to day tasks.
> Not only have a number of devices that used to be purely electro-mechanical been reworked to use microcontrollers (cars, everything in the kitchen),
Yup, and in most cases this not only did not improve them, but made them less useful and more fragile. Let's be honest: the software is there only because it can save on manufacturing costs, and sometimes can be used for extra marketing benefit. No attention is being given to providing value to the customer.
I have to disagree in the case of car engines. When I was a kid my dad and uncles spent hours each month fixing minor problems with their purely electro-mechanical cars. I don't miss carburetors or mechanical ignition timing one bit. Electronically controlled engine functions are much better both in terms of efficiency and consistency.
That's true. I don't have that much experience with car repair so I might be wrong in perceiving the 90s and the 2000s models as the optimum in terms of car reliability - the stuff mostly works without funky issues, parts are cheap, repairs can be made by anyone who spent some time with a wrench, and you don't have to visit a shop with a license for poking around car's computer over every minor issue. That is to say: advances in computer control don't have to go hand in hand with making the cars expensive to service and not end-user repairable. But they do, because greed.
Car engines are vastly improved in both reliability, cleanliness, and efficiency by the introduction of computers into them. You might not like that when it goes wrong, but we all appreciate not breathing in pre-computerized car engine exhaust.
And that’s the rub. While shoddily written software shoehorned into cheap consumer goods obviously degrades the experience, there are tons of places where well written software has massively improved the quality of the goods that they’re added into. Objectively car engines are just better for the addition of software both in design and in operation. They’re smaller, more powerful, more reliable, cleaner burning, and more efficient than they were before we computerized them.
Yes but at the same time the auto makers let another team make Electron apps for the dashboard. Engine ECUs are nice and decoupled. Maybe the hard realtime requirements is what saves them and keep all the novell crap out?
And that’s why this is hard. There are cases where software drastically improves the objective quality of things (car engines), cases where well done software makes items significantly more enjoyable (some car infotainment), and cases where software makes things worse (everything in the kitchen). Separating them out is hard.
I worked for almost 15 years in embedded and have 25YOE, and no, software has not always sucked as much as it does now.
I agree with your last point a lot, though I would modify it slightly: it's much easier to write mountains of code now than it as, and it's now common and much easier to import external dependencies (especially at system level) than ever, and those dependencies have tens of millions of lines of mediocre code all by themselves.
I work somewhere that primarily relies on manual testing rather than automated testing. It definitely does not make the software more reliable here, at the least. :-)
1. Manual testing that should be manual (exploratory).
2. Manual tests that are new and haven't been automated yet (but will be).
3. Manual tests that should be automated.
(3) is the one many people see and suffer through (I know I have). They need to be automated to free up time for (1), which is where many issues are actually discovered. But if (3) dominates your time, you can never get to (1) and you'll constantly ship broken things (or more broken than they should be).
I would tell a slightly different version of this story, focusing in on "rollout-based quality assurance".
I would say that effortless, automatic updates are to blame.
When you can always just push an update, the impact of a given bug goes way down. It's no longer mission-critical to exterminate flaws before shipping; a totally broken feature becomes a mere annoyance. So project prioritization shifts from polishing an artifact to outweighing the (presumed inevitable) constant stream of little annoyances with fixes and features. I think the shift towards automated testing is just a symptom; an attempt to bridge the gap in this brave new world.
For a clear-cut example of this phenomenon, look to the video game industry. Until around 2007, games received no updates. Ever. Once a game shipped, it was shipped. There wasn't even a mechanism for installing an update from physical media.
Right around that time, "glitches" went from very rare unicorns that people would spend lots of time actually seeking out, to nearly everyday occurrences. As long as it doesn't corrupt someone's save file, they mostly laugh it off and upload a clip to YouTube to show their friends. This is just how things are now.
(Edit: I should have scoped this to "console games")
> Until around 2007, games received no updates. Ever. Once a game shipped, it was shipped. There wasn't even a mechanism for installing an update from physical media.
Sure, but they still (sometimes) released (a few) extra revisions of a game. They were just targeted at people who bought physical copies after the revision date, rather than at existing customers.
Or said updates came on the 1.0 version of the game as shipped in markets that got the game later than others. (Just imagine — per-market release versioning. Every market effectively got its own fork of the codebase!)
Or said updates came in the form of a re-release port. There are patches made to the emulated downloadable app-store re-releases of some games, that never made it into any physical edition of the game.
Also, before home consoles, arcade game machines did receive bug-fix updates regularly. Arcade machines were essentially provided “as a service” from their manufacturers, with support contracts et al. Sort of like vending machines are today. If you reported a bug, they’d fix it and send you a new EEPROM chip to swap out in your cabinet. If there was a critical bug that affected all units, they’d send techs out to everybody’s machines to swap out the ROM for the newest revision. (For this reason, it’s actually kind of hard to do art-conservation / archiving of arcade games. The cabinets almost never have fully “original-release” components inside.)
I'm sure this happened occasionally, but it wasn't advertised. Nobody was buying a new copy to get an update. Reviewers weren't revising their reviews in accordance (something which does actually happen now). It was still absolutely mission-critical to get things as polished as possible the first time around.
I agree that games used to have far fewer bugs when shipped, but it's not true that games never received updates back in the day. I distinctly remember queuing on file sharing sites as a kid in the early 2000s to download half-life updates and updates for other games.
I remember when DLC used to be called “a patch” and it was both bug fixes and also huge amounts of new content. I wish I could remember what games this pertained to.
I think you've both got a piece of it. I've programmed PC software, embedded software, and mobile software, and my gut feeling (without data) is that the shipped software quality is inversely proportional to the update frequency and ease of updates. Had nothing to do with how smart or skilled the developers and testers were. Had nothing to do with management's priorities. Update frequency and ease changed immensely once we could feasibly deliver patches over the Internet. Before easy updates, you'd actually quality check every corner of the application, you'd actually fix those P2s and P3s. You'd do exploratory testing off the test plan rails to find things. There was even a concept of "done" in software, as in, you eventually stop constantly jamming features in and tweaking the UI in maddening ways.
Now, it's just "LOL just ship it, users will just deal with it until the next release!" Now, it's "Do experiments on N% in prod and use end users for A/B testing. If something's broken we'll update!"
In several industries, it's actually totally expected that v1.0 of the application simply won't work at all. It's more important for these companies to ship non-working software than to miss the deadline and ship something that works! Because who cares? Users will bear the cost and update.
I have witnessed this first hand comparing two systems.
One system has no patching, and updates incur some non-trivial amount of effort on the part of the installer. Releases are a few times a year, at most.
The other system has patching, updates are lighter weight, and as a result, the system has THOUSANDS of patches released over the last decade, north of 2 per work day.
absolutely this.
Back in the early 2000s quality assurance was insane. A release is was working on (aaa title from a major studio) was blocked because players' eyes were rendered incorrectly and you had to really zoom in to even see the glitch. And of course you had to find and fix all bugs before october, or else you won't be able to hit Christmas sales.
Once internet updates became the norm, it all became pretty much like the rest of software industry. (At least game companies still have QA departments, a lot of mainstream web companies have dispensed with those as well.)
Or as I tell my wife. I am playing my favorite game 'updating playstation'. I turn the thing on so rarely by the time I usually do turn it on there is 1-2GB of updates waiting. Glad I have a semi decent internet connection these days...
Great comment. People also used to use only a few pieces of software in any given day (or week, even!) e.g. email, web browser, and word processor.
Now, our computer ("phone") is with us everywhere we go and we'll use dozens of complex applications per day, connected by dozens of APIs, networks, protocols, and hardware features. It's a miracle any of it works sometimes! Thank you to everyone for making this stuff seem like magic; my twelve-year-old self would be amazed at how well it works.
I do feel like there are more UI bugs as we optimize for certain metrics over others. Timing updates has become far more complicated, so we get weird UI refreshes as new data comes in, stale caches, missed notifications, etc. Turning it off and on again often works, surprisingly (probably because devs start with clean environments often, so that's the functional baseline).
Lastly, it is probably far more lucrative for a technology based business to use their most valuable minds for the Next Thing, rather than iterating on the current thing. Incremental revenue improvements just don't cut it in a capital-driven world; everyone is trying to escape the local maxima to find billion/trillion dollar businesses.
This, but also remember that we're living through a transition from SAAP to SAAS, where the "service" is actually data extraction for advertisers. For that, software must be minimally useful to a user, but the true aim of UX is not user-satisfaction but data extraction or subscription lock-in.
I think tech is other people. Tech doesn't suck because technology is bad: it sucks because life is complicated, and other people are prone to mistakes, or prioritizes that don't align with yours, or have limited attention.
Case in point: I don't particularly like the design of this site, as I find it difficult to look at (even if I abstractly can see how the color choice is bold). The night mode toggle seems even harder to read; an uncharitable interpretation is the author thumbing their nose at people who want night mode. A charitable read is that it's a funny joke.
The author / designer of the blog has different priorities than I do. An uncharitable way of putting this is that the blog design is "bad," but I really dislike that outlook. I'd much rather that people look at things charitably, and try to understand what other people are going for, and be willing to say "this isn't for me." I think the article doesn't quite do this.
Of the people I know not in the tech industry, most people like technology and talk more about the benefits than sucking. Including my 87 y/o grandmother who loves her ipad.
I thought it was kind of a mental thing where you're so used to technology sucking you don't even know that it could be better.
There was another comment about a developer getting RSI and having to use an Android as their main device and not being familiar with the UI and feeling restrictive. Iff that's your default computing mental state and you don't expect computing devices to give you a lot more power you just expect and know them to be restrictive devices that you typically consume media from then you don't even have experiences to compare the suck to.
The suck is what it is and you expect it to suck why would you say that.
At least when you complain about the weather we both can acknowledge that the weather changes, unless you're a technological power user the weather doesn't change.
As soon as I clicked on this, I recognized the author's signature yellow background and font from their previous post about buying a new monitor (which I also found at the top of HN) https://tonsky.me/blog/monitors/
I enjoyed both posts. Great titles, well written, serious but witty. Props to the author; I'll be subscribing for more.
It really is night mode, not just some dark mode for a virtual world. It's even night on the wild mode; the author could add some crickets sound, it would make everything better.
The author also seems to be one of those people that think that sunlight is yellow.
It "sucks" because we're constantly changing stuff and making new stuff. We do this because we want new stuff. There are plenty of industries where things don't change quickly and people complain about everything taking forever.
To use an analogy, you can have things work like NASA's SLS Rocket - expensive, slow, well-thought-out and reliable. Or you can have things work like SpaceX - impressive pace, bleeding edge, occasional explosion. There's no happy medium, so careful what you wish for. I'd rather deal with all the author's problems than deal with a Nokia phone.
Mac OS 10.6, Ubuntu 10.04, Firefox, a pluralistic web based on progressive enhancement, music downloads, even Windows 7, all came to work towards what people actually wanted around that time. Then came the iPhone (not bad per se, but creating the mobile web crisis), AWS, Google dominance, fscking big data
Computers were good enough to perform basically any task a regular person would need, but simple enough that they couldn't fail in too many ways. User interfaces were honest about what was going on instead of giving blanket error messages with dead help links.
I really wish it was just nostalgia, but my parents somehow were able to fully use MSN Messenger's features with not much hassle, but if I even as much as show a screenshot of Discord, Slack, or even modern Skype, they might just shriek at the sight, let alone be able to use those softwares.
So I don't see how we've improved at large. Yes, UIs are prettier to look at and we have more animations and higher image quality and all that, but if anything functionality is very much stagnated, though I wouldn't be as bold as to say regressed.
I try to train my systems to behave just the way I like them. It's no different than coding: you are bending tech to your will. I don't see the difference in configuring a brand new Virtual Machine and that of coding a new piece of software. For me, the definition of non-sucky technology is the ability to configure, tinker, and otherwise mess with systems to make them do your bidding.
This is why I love computers, because no two computers are in the same state, and I always laugh using other people's computers because you can be sure they have configured it in a weird idiosyncratic way, entirely different than one's own configuration.
The definition of non-sucky technology is not having to waste time on any of that.
If you think tinkering and configuring are fun you should stay as far away as possible from software design, because you have no insight into what most users expect from tech.
> If you think tinkering and configuring are fun you should stay as far away as possible from software design
You overlook that not giving the user options to configure their systems is bad practice as it can force all manner of dark patterns on them, and they are left constrained in that software, unable to bend it to their will. Let them tweak, I say!
A big part of the problem is how new everything is. We keep improving it and rebuilding it. You can many of his examples would have all their bugs removed if we heavily constrained the features added and didn't migrate to new platform. Of course real people also want new features! We can probably expect increased quality when the rate of change decreases and we either see more stability and incremental growth or stagnation. But if new technology is be invented (not just new applications or iterations) we are going keep seeing issues. I'd rather just ride the tech-accelerate curve myself, but does come at a cost.
For me, part of the "suck" is the sprawl of so many different technologies and specialization areas. Back in the 70's, there weren't so many technology choices, and there weren't so many different job titles and roles.
So, typically, a tech team had a pretty clear path on what technology to use. And, you could get 3 or 4 "tech lead" type people in a room, even for a huge application, and between them, they knew the system from top to bottom. And they all understood who was responsible for what.
I understand we can't go back to that. But it's hard to deliver quality with today's sprawl.
The whole enterprise of writing software, from top to bottom, (historical) beginning to present day, has been based on the fallacious, machismo idea of perfect execution by the programmer of writing correct forms. This is actually impossible thus our software is terrible.
I don't buy that excuse at all. Sure, perfection is impossible, but there's a very, very broad spectrum of quality that spans between "perfect" and "completely unusable". To say "well, we can't be perfect, so everything is terrible" seems absurdly black and white to me.
- My macbook keyobard sucks, some keys dont press, other get pressed double or tripe. I deal with this using a bluetooth keyboard on top of the mac kb lol
- WSL Stopped working a few weeks ago after a windows update, I haven't been able to fix it, my only option is format and reinstall OS at this point...
- My phone screen broke a little first, then it stopped working for it's top half, Since it's an iphone x, I deal with this by using the little trick to reach the top parts of the screen with the thumb, and that's how I almost don't use my phone.
I can also get random stuff open if I leave it unlocked, since it's touchpad gets activated like crazy by itself, I luckily enough have an official cover which keeps it blocked if it's lid is closed.
LOL, and I'am a power user who can fix things and google for solutions, we're just f
The market encourages competition, not perfection.
If you want to see some high-quality but low-feature software, look in spaces where there is less market competition but the risk of failure is death (and the civil and criminal penalties attached for failure are high). You'll find programs that do only one or two things but definitely do them, as specified.
I've used many of the same technologies he's talking about and have experienced almost none of these issues...
maybe I just got lucky but it seems we have the bigger problem that these systems are so complex that they've almost reached chaos theory levels of total randomness of behavior from small changes to initial inputs.
This is one of the strangest takes that I have ever read. I can remember my dad's turn on the waiting list finally coming up so that it was his turn to bring the HP calculator home from the government lab where he worked for the weekend. It was an absolute marvel. The whole family sat around the kitchen table for hours as he talked about RPN and showed us how the calculator worked. It was magic.
Almost 50 years later I have an incredibly powerful computer that I carry around in my pocket and I call it "my phone". It can solve all kinds of mathematical equations, display live video, and communicate in real time with the furthest corners of the globe. Saying that I "expect technology to suck" is just completely bizarre. I have witnessed amazing changes and have access to technology that were just Star Trek visions when I was young.
Being grateful for technology that didn't exist 20 years is not incompatible with criticizing real, large, and avoidable failures that are infused with all the tech we use. Likewise, I can criticize a car model that is constantly breaking down because of owner-hostile choices made by the manufacturer even though it's better to live now than 200 years ago when there were no cars.
2.02 ln ex resulted in 2 rather than 2.02. When the bug was discovered, HP had already sold 25,000 units which was a huge volume for the company. In a meeting, Dave Packard asked what they were going to do about the units already in the field and someone in the crowd said "Don't tell?" At this Packard's pencil snapped and he said: "Who said that? We're going to tell everyone and offer them, a replacement. It would be better to never make a dime of profit than to have a product out there with a problem".
> Almost 50 years later I have an incredibly powerful computer that I carry around in my pocket and I call it "my phone". It can solve all kinds of mathematical equations, display live video, and communicate in real time with the furthest corners of the globe.
And you use it mostly to browse cat pictures :).
Perhaps it takes a technologist to notice, but for every actual technological improvement that happens, the UI glitter gets cycled 20 times. Majority of "change" in computing technologies isn't improving anything, it's only inciting you to throw away your old device and buy a new one.
Technology is amazing. But if you think of Star Trek visions, you can realize that our technology could be 10x more ergonomic and better than it is, and could be solving 10x more problems than it is. That's what I read these complains are about - unrealized potential. But perhaps it's because I'm a techie and a trekkie that I see it this way.
I completely agree with you about the unrealized potential, but my greatest regret over the past 50 years is not about the technology, but our ability to harness it. I remember helping to setup a computer show at our local high school when I was still very young. The local vendors had agreed to donate an Apple //+ to the school in return for having space to show off all of their wares. We were thrilled and I can vividly remember my father saying that my generation would be the last one to learn programming as an add-on elective skill. He imagined a world where everyone could harness the power of digital technologies and that programming, building, tinkering, would be second nature to all of us.
We spend our time thinking about UI glitter because we gave up on that dream of having every student learn to program. We took the exercises out of math and science books where we asked students to write programs to use the Pythagorean theorem or convert Celsius to Fahrenheit. It became "enough" to learn how to enter a few numbers in a spreadsheet and perhaps add a trend line.
A few hard working people in a garage can still turn out wonderful things, but if we really want to see the promise of technology then we need to fix the bigger problem of building an educational system that empowers many more people.
"Technology sucks" in my eyes just means there is a mismatch between expectations and reality.
People expect their technology to solve their problems. But often their problems have nothing to do with their technology, and anything to do with outside aspects like how they use it.
E.g. during Corona one boss at a institution I know bought a incredibly expensive Video conferencing "thing" and expected it to run incredibly smooth, which it didn't, because he neither was willing to invest into the buildings bandwidth/latency nor did he make sure the people on the other side also had that bandwidth/latency as well.
People like to believe into technology, like they would believe into gods or magic words: they don't want to understand how it fits into the world they are part of: they just want it to make their problems go away.
My most trouble-free period was when I was using Xubuntu exclusively for several years with a single monitor. Now I've been using Windows again for several years and I've grown accustomed to things just not working, ever, with tons of visual lag, usually just a few hundred milliseconds but sometimes stretching into seconds.
On Xfce I would sometimes idly hold down win-t to create a bunch of terminals then alt-d to close them one by one. As I might idly bounce a pencil up and down back when I used pencils. On Windows/OSX/Gnome I would never dream of just idly opening a bunch of applications for fear of what might happen.
That's a bit like saying that flying intercontinental sucks because the low aire pressur and humidity make the food tasteless. Of course it does, and of course it's annoying, yet almost noone crosses travels on ocean liners anymore, because for all the rough edges that air flight has is still beats spending weeks travelling.
People expect techonology to have countless minor flaws, which it has, because techies spend their time pushing tech forward at a crazy speed instead of slowly polishing it.
But most of the time we're not actually pushing anything forward, we're just adding more features that we think people need (not to mention many developers enjoy creating new features, not polishing existing features).
437 comments
[ 2.8 ms ] story [ 295 ms ] threadI never stopped to think about how much time I spend on this kind of request, just to get what I'm trying to obtain. Then, if we are worried about using our time wisely, what to do?
Isn't the point of tech to tinker? When did problems become problems that you shouldn't try to solve, instead of a reason to learn about the tech?
I've really been down about technology lately, after working with 6-12th graders. They just don't get how anything works, if it doesn't immediately work for them. They don't want to take it apart and figure it out.
This blog piece just seems like more of that. Why bother with figuring out how things work when you can just throw them away?
Now get off my lawn, I guess.
But Discord does more at startup than just reconnecting. It also checks for new updates, and refuses to start if there is an update waiting. So now I've dropped out of a call, I have self-opening popups letting me know that there is an update available, and I'm trying to download/install the .deb update before the D&D players get bored and start making puns. Nothing good happens when the players have started making puns.
I like tinkering. I really do. But I like tinkering in order to solve my own problems, and to make my life easier. I don't like tinkering on limited time in order to add yet another support to a house of cards that is gently swaying in the breeze while I'm trying to hold a D&D session in the top room of that card-house.
People want their phones and software to just work. Or at the very least not get bricked every friggin update.
My current job role is “just” an engineer working for a company where all I basically do is run and analyze models using commercial software. Even though I know the underlying low level code/algorithms of what I’m doing, I would be the first to tell you that a 21 year old mechanical engineering graduate could do my job as effectively and as completely as I could. Because none of the above paragraph actually matters in what I do. Maybe it gave me a leg up in the hiring process, but the knowledge I am applying for my job (which I enjoy) is what you’d learn in a 4 year degree with electives in eg numerical methods and fluid dynamics.
Sure, a car is just one example of technology. Technology in general is responsible for everything we have and everything we do. Here are some other technologies:
- farming
- weaving
- plastic
- glass
- ceramics
- steel
- cooking
To the nearest 0.0001%, 100% of people need these things to work and don't -- and can't -- understand why or how they work. That's the point of technology.
Nope. Farming has this beat hands down. So does writing. (I unlisted writing from my earlier comment because, unlike other technologies, anyone capable of using writing must also have a good understanding of how it works.)
What no extremely not. It's to... do things? Tinkering with tech is cool if that's your hobby but it's not mine and I'm trying to do shit not pick up another hobby here.
It's like the people that argue that cars have lost something intrinsic in recent decades and now no one knows how to do work on their own vehicles. That standard was an artifact of unreliability, not something to be applauded.
Tech should get out of the way and let you do what you're trying to do. If "tinker" is that thing then sure have fun. But for most people that's not the point at all.
The fact that you can possibly get more out of some tech by knowing how it works is because most of it is very new, which is basically just an anomaly that is fading. Eventually how computers work will be like those other things: expert domains that we rely on but users don't need to understand.
It's already largely like that and that is good. I get that everyone here is a nerd and grew up tinkering with their computers and this makes them sad.
No.
We claim to be building tools, but nothing we build operates like a tool does. My hammers don't randomly lose their heads. My vise grips don't every so often fly apart into a collection of oddly shaped bits of metal, and require I painstakingly reassemble them by hand. My benchtop power supply doesn't require constant calibration. Even my oscilloscope, which actually is a computer that just happens to be built for signal processing, functions in a way that's predictable and reliable. And if any of these did misbehave in the ways I describe, I'd regard them as unfit for purpose and, while I would likely be able to repair them and put them back in service, the ideal outcome would be replacement with something that didn't require the same effort just to make it able to do the job it is sold as being able to do. Tools exist for the sake of making other tasks easier, not as a source of tasks in themselves.
There is definitely failure happening here. But it's not on the part of people who are upset to have been told what they're buying are tools, only to have them turn out not to be.
But even then, I would say no, tinkering was the point of hobbyist tech, or professional/craftsman tech. But the recent history of "consumer goods" hasn't been about tinkering ... I think the key difference in the past few decades is maintenance. Even in the era of consumer goods in the past hundred years or so, maintaining your possessions was expected. Some might pay a professional for specialized work, but since most things were maintained a large fraction of the work fell on the owner ... and this also leads to tinkering, not as an expectation, but an outcome.
Consider darning your socks, or sharpening your hatchet. Shining ones shoes or replacing a sparkplug.
Tinkering is a hobby, your hobby.
A very specific example: Something that’s been frustrating me for years is Google photos on iOS does not synchronize whether I have starred/favorited a photo on iOS‘s photos to google photos. I tried fixing this myself with a helper program, but the Google photos API does not let you set whether a photo is marked as a favorite, and you cannot manually add photos to the favorites album via API. I’ve tried several hacky workarounds but I simply cannot build the simple UX fix that seems obvious to me, nor can I get anyone from Google to acknowledge my many suggestions to them to implement this obvious feature. I looked into trying to use Plex or Microsoft onedrive as an alternate photo backup system, but they are much worse than Google Photos in terms of reliability and UX. I’ve looking into open source solutions to replace this whole workflow, but the amount of time and effort and money and compromises required for a system like that simply isn’t worth it. So I put up with the annoyance, since there’s effectively nothing I can do about it.
I used to love programming because it made me omnipotent, I could change things as I wanted and tie together systems exactly the way I liked. But now I keep hitting brick walls, most of which are imposed because of business models and not for purely technology reasons. The frustration adds up, to the point where I no longer enjoy bothering to try at all. Now I am only involved in technology to the extent that I make money from it, and I’m in the process of transitioning my career away from tech altogether. So much potential squandered.
instead of feeling helpless i get to make a calculation: ok, so to fix this issue i have to get the source version, identify the problem, figure out how to fix it, submit the fix upstream.
hmm, 5 hours of work? do i have the time? can i pay someone to do it? is it worth it?
if the answer is 'no' then i made a conscious decision to tolerate this issue, because i considered the tradeoff.
because i have this choice, i feel empowered, even if i decide not to do anything about it.
with closed source software i don't have this choice and any issue i run into makes me feel helpless.
It's nice to have a simple interface and high extensibility on top of it.
E.g., all my scripts for fixing transient problems are ~/bin/fix-*.sh
I'd argue the entire command line is nothing but annoyances. Everything is completely non-obvious and often requires reading man pages that can contain a hundred options that may or may not be in alphabetical order.
The fact people have to write scripts to really function on the command line is telling.
My personal nightmare is exiting vim. If I make a mistake typing, I enter recording mode instead of exiting. This happens to me several times per day. And, no it's not a matter of being more diligent, it's the result of a disability.
The command line is powerful and I absolutely love it but it is a pit of rusty razor blades people keep throwing ropes over. :)
Edit: flashlight instead of torchlight.
Since the article talks about technology... Why is "technology = only software or apps or things related to a phone"?
Technology can be something that goes from fire, passing through a pencil up to whatever application of scientific knowledge for practical purposes.
Edit: flashlight instead of torchlight.
- The whole current USB ports fiasco; - Just look at any wireless headset and you'll find at least 2 major bugs, between connectivity, quality, or general usability; - Smart TVs suck terribly even at the high-ish level, both performance, image quality and usability; - Touchscreen stovetops get triggered by food splatter; And so on
Basically anything that has a microprocessor anywhere is bound to go haywire somehow at some point.
I constantly encounter broken functionality, buggy or unpleasant UIs, just as the author has. It feels like many of these problems could be avoided if you just had one person whose job it was to sit there and look for broken stuff. (I'm sure I'm biased as someone whose first job out of college was to sit there and look for broken stuff.)
Now we are in 2020 and iPhone updates STILL cause battery issues. The iPhone has been out for 14 years...
Our expectations have changed. Tools like Excel should just work - and yet, when I try to save a file, sometimes it freezes and crashes. How is that acceptable now?
But the worst part is that this is an issue with established products that have secured their market, and will even receive money every year from their customers. They have both the money and the time to pace themselves and test things properly, but they don't.
An MS bug in an enterprise piece of software (so they get paid every year for it) is Skype for Business. Perhaps my org hasn't updated their installation, but if I drag a contact from the chat window (say you message me and aren't in my contacts yet) and then drag it to the contact list (in status view) it will reliably crash the program. If I drag it to groups view it'll place the contact in a group. My guess is that dragging it to status there is no "default" group and so there's some kind of null pointer exception occurring (it tries to add it but with group given as either junk or null).
I used to see more bugs in Outlook, but it seems somewhat better with the last update so I haven't noticed them. Though it was fun when I had negative 2 billion messages for a week or so (I certainly didn't have enough to cause overflow so I have no idea how it wrapped around like that).
Google's is an issue of usability of their webapps (IME), not strictly buggy but not sufficiently tested. Behind the proxy at work Maps is incredibly unreliable. It takes several reloads for it to actually start working "correctly", but don't change where you're looking too much (you can zoom in, but do not pan around). That's not the only unreliable one in this situation, but it is the most easily demonstrated.
Apple's Messages and Mail constantly tell me (they've been better the last few months, but it still happens) that I have unread messages, I'd search and search and never find them. Then I'd pull it up on a different device and finally see the unread message (which was both visible and marked as read on the original device).
Some of these may be shallow or seem petty, but it's an unpleasant experience that after so many years and with so much money should've been resolved for each of them. I'm willing to tolerate an indie game crashing on me. I'm not willing to tolerate an enterprise software solution (MS) crashing for a natural user behavior.
EDIT: I think resolved, but Apple's iOS calculator bugs were annoying for such a simple program. Not strictly a bug, but Windows' calculator, these days, is an unusable mess in many ways. It shouldn't require so many system resources to add some numbers together (the same could be said of many small utilities that were rewritten for, I think, Windows 10 or Windows 8).
Gmail showing me email meant for <first><last>@gmail.com instead of <first>.<last>@gmail.com. The fact that they ignored the . at all in the user names. The Youtube app on iOS when I first installed it and quickly uninstalled it years ago was an incredible annoyance. It wouldn't reliably show me the video I'd actually clicked on that caused the app to open.
Adobe is an almost perfect example of holding their market captive. I've run into a number of Adobe Acrobat issues over the years, though fewer recently (but I use it less often now). But especially Acrobat Reader on Mac OS X was awful, I actually once had to reinstall the OS to get it to stop fucking up PDF display even after uninstalling the software (I never found out what it had done to the system, and gave up). I needed it because I couldn't find anything else (at the time) that supported digital signatures in PDFs on the Mac (in the sense that it actually worked, I think Preview let me do it but what it made wasn't usable by the people receiving the file).
EDIT2: Another Google one, with Chrome on macOS in full screen. Hiding the location bar means you straight up can't get to it. You have to reenable it, versus a sane behavior like autohiding and moving the cursor to the top restoring it.
I think that product is cursed. It was always a dumpster fire, like IBM's Lotus Notes. It's there so you their clients don't accidentally try Slack or any of the sane alternatives.
All products of MS, Apple, Google are in a constant churn mode. New design. New integrations with whatever platform changes happened in the back, new features to match the competitors, new trends, new mobile apps, new browser features, new framework.
Those are the products that are not the real products and not real money cows, so they get very limited attention.
I agree all of these are horrible. GMail is still a slow piece of shit. I recently tried Thunderbird, and .. it slowed down too. Wtf. Slack is slow too. Typing has become slow for some reason in a lot of "apps", maybe too fancy fonts?
Anyway, these companies have huge opportunity costs. Just look at Google. They try whatever crosses their mind and nothing is good enough compared to "ads". And so they shut them down because opportunity costs. (Not because upkeep, but because then your attention is not on the next big thing, whatever that will be.)
Possibly because more companies are moving desktop apps to Electron so they can run JS everywhere.
But not the motivation, because "it works" and improving UX would cost money and doesn't have an immediately visible return.
There are a number of hats developers are expected to wear today:
1. Developer of new features
2. Sustainer of prior code and features
3. Tester of all of this
4. Constant student (outside work because who'd pay their employees to learn?)
The priority for the business is (1), so 2-4 get neglected. This compounds over time to mean that old code isn't properly refactored or rewritten when it should be, and none of the code is tested as thoroughly as it should be, and none but the smartest or most dedicated are really going to be perpetual students (or they'll choose to study things that interest them but don't help at work, like me).
When the old code and poor tests create sufficient problems, you get a business failure or a total rewrite. Which strips out half (or more) of the features and the whole process gets restarted.
5. The mentor of younger developers.
It's another thing some companies expect you to do, but don't allocate time for it, so at the point you finally know enough to not do a bad job, you're suddenly being pulled out of 1-4 and expected to do 5.
- Infrastructure design
- Deployment
- Monitoring / log-based debugging and fault tracing / handling customer issues
In addition to wanting a "full stack" developer of course...
At some point we have to accept that specialization isn't just for insects. It's helpful to have a proper sysadmin or DBA or whatever (appropriate to your domain) within the team, and not just diffuse those roles amongst the developers themselves.
Software has always sucked and had these issues. It has nothing to to with automated QA. The reason you see more issues is 'way back in the day' your software had a very limited number of things that it did, and in general it did not involve accessing a network or chugging down massive volumes of data from untrusted sources.
I work for a company that has a lot of individuals that test for QA issues, they have list miles long of things to check and write reports on.
The problem is more of "It's much easier to write mountains of code than it is to ensure that it works in all cases"
And despite the issues lamented in this think piece, it is _Apple_ that the author should blame for setting technology expectations impossibly high.
No organization had been remotely as successful in understanding and releasing tech products that were truly great.
Everything since is just a comparison to expectations Apple set. Even when Apple fails, it is in comparison with an Apple that does not.
Games are also massively more complicated today. It's one thing for three people getting a 2.5 MB single player DOS game reasonably bug free. It's an entirely different thing to get the 5 GB game made by a team of 100 or 1,000 people.
I disagree, subjectively it had its ups and downs and we are in a down phase right now. YMMV.
30 years ago, software bugs might interfere with you professionally, but they wouldn’t stop your ability to get money from the bank, cook food, or do any other day to day tasks.
Yup, and in most cases this not only did not improve them, but made them less useful and more fragile. Let's be honest: the software is there only because it can save on manufacturing costs, and sometimes can be used for extra marketing benefit. No attention is being given to providing value to the customer.
Car engines are vastly improved in both reliability, cleanliness, and efficiency by the introduction of computers into them. You might not like that when it goes wrong, but we all appreciate not breathing in pre-computerized car engine exhaust.
And that’s the rub. While shoddily written software shoehorned into cheap consumer goods obviously degrades the experience, there are tons of places where well written software has massively improved the quality of the goods that they’re added into. Objectively car engines are just better for the addition of software both in design and in operation. They’re smaller, more powerful, more reliable, cleaner burning, and more efficient than they were before we computerized them.
I agree with your last point a lot, though I would modify it slightly: it's much easier to write mountains of code now than it as, and it's now common and much easier to import external dependencies (especially at system level) than ever, and those dependencies have tens of millions of lines of mediocre code all by themselves.
1. Manual testing that should be manual (exploratory).
2. Manual tests that are new and haven't been automated yet (but will be).
3. Manual tests that should be automated.
(3) is the one many people see and suffer through (I know I have). They need to be automated to free up time for (1), which is where many issues are actually discovered. But if (3) dominates your time, you can never get to (1) and you'll constantly ship broken things (or more broken than they should be).
I would say that effortless, automatic updates are to blame.
When you can always just push an update, the impact of a given bug goes way down. It's no longer mission-critical to exterminate flaws before shipping; a totally broken feature becomes a mere annoyance. So project prioritization shifts from polishing an artifact to outweighing the (presumed inevitable) constant stream of little annoyances with fixes and features. I think the shift towards automated testing is just a symptom; an attempt to bridge the gap in this brave new world.
For a clear-cut example of this phenomenon, look to the video game industry. Until around 2007, games received no updates. Ever. Once a game shipped, it was shipped. There wasn't even a mechanism for installing an update from physical media.
Right around that time, "glitches" went from very rare unicorns that people would spend lots of time actually seeking out, to nearly everyday occurrences. As long as it doesn't corrupt someone's save file, they mostly laugh it off and upload a clip to YouTube to show their friends. This is just how things are now.
(Edit: I should have scoped this to "console games")
Sure, but they still (sometimes) released (a few) extra revisions of a game. They were just targeted at people who bought physical copies after the revision date, rather than at existing customers.
Or said updates came on the 1.0 version of the game as shipped in markets that got the game later than others. (Just imagine — per-market release versioning. Every market effectively got its own fork of the codebase!)
Or said updates came in the form of a re-release port. There are patches made to the emulated downloadable app-store re-releases of some games, that never made it into any physical edition of the game.
Also, before home consoles, arcade game machines did receive bug-fix updates regularly. Arcade machines were essentially provided “as a service” from their manufacturers, with support contracts et al. Sort of like vending machines are today. If you reported a bug, they’d fix it and send you a new EEPROM chip to swap out in your cabinet. If there was a critical bug that affected all units, they’d send techs out to everybody’s machines to swap out the ROM for the newest revision. (For this reason, it’s actually kind of hard to do art-conservation / archiving of arcade games. The cabinets almost never have fully “original-release” components inside.)
Now, it's just "LOL just ship it, users will just deal with it until the next release!" Now, it's "Do experiments on N% in prod and use end users for A/B testing. If something's broken we'll update!"
In several industries, it's actually totally expected that v1.0 of the application simply won't work at all. It's more important for these companies to ship non-working software than to miss the deadline and ship something that works! Because who cares? Users will bear the cost and update.
One system has no patching, and updates incur some non-trivial amount of effort on the part of the installer. Releases are a few times a year, at most.
The other system has patching, updates are lighter weight, and as a result, the system has THOUSANDS of patches released over the last decade, north of 2 per work day.
Guess which system is higher quality? The former.
Much, much higher quality.
Once internet updates became the norm, it all became pretty much like the rest of software industry. (At least game companies still have QA departments, a lot of mainstream web companies have dispensed with those as well.)
Warcraft II, from 1995 received multiple patches. So did many other games from that era.
Do you perhaps mean console games when you say "games"?
The level of complexity in modern day software is orders of magnitude greater than that of even a decade ago.
What has changed is our reliance on that software. We are now so deeply embedded into our software existence we see these flaws up close.
Now, our computer ("phone") is with us everywhere we go and we'll use dozens of complex applications per day, connected by dozens of APIs, networks, protocols, and hardware features. It's a miracle any of it works sometimes! Thank you to everyone for making this stuff seem like magic; my twelve-year-old self would be amazed at how well it works.
I do feel like there are more UI bugs as we optimize for certain metrics over others. Timing updates has become far more complicated, so we get weird UI refreshes as new data comes in, stale caches, missed notifications, etc. Turning it off and on again often works, surprisingly (probably because devs start with clean environments often, so that's the functional baseline).
Lastly, it is probably far more lucrative for a technology based business to use their most valuable minds for the Next Thing, rather than iterating on the current thing. Incremental revenue improvements just don't cut it in a capital-driven world; everyone is trying to escape the local maxima to find billion/trillion dollar businesses.
Case in point: I don't particularly like the design of this site, as I find it difficult to look at (even if I abstractly can see how the color choice is bold). The night mode toggle seems even harder to read; an uncharitable interpretation is the author thumbing their nose at people who want night mode. A charitable read is that it's a funny joke.
The author / designer of the blog has different priorities than I do. An uncharitable way of putting this is that the blog design is "bad," but I really dislike that outlook. I'd much rather that people look at things charitably, and try to understand what other people are going for, and be willing to say "this isn't for me." I think the article doesn't quite do this.
As someone who didn't realize I had a permanent eye floater until browsing this site, I agree.
What people?
Of the people I know not in the tech industry, most people like technology and talk more about the benefits than sucking. Including my 87 y/o grandmother who loves her ipad.
There was another comment about a developer getting RSI and having to use an Android as their main device and not being familiar with the UI and feeling restrictive. Iff that's your default computing mental state and you don't expect computing devices to give you a lot more power you just expect and know them to be restrictive devices that you typically consume media from then you don't even have experiences to compare the suck to.
The suck is what it is and you expect it to suck why would you say that.
At least when you complain about the weather we both can acknowledge that the weather changes, unless you're a technological power user the weather doesn't change.
I enjoyed both posts. Great titles, well written, serious but witty. Props to the author; I'll be subscribing for more.
Night mode: I've played this video game before. A monster is going to jump out and get me at any moment.
The author also seems to be one of those people that think that sunlight is yellow.
To use an analogy, you can have things work like NASA's SLS Rocket - expensive, slow, well-thought-out and reliable. Or you can have things work like SpaceX - impressive pace, bleeding edge, occasional explosion. There's no happy medium, so careful what you wish for. I'd rather deal with all the author's problems than deal with a Nokia phone.
I really wish it was just nostalgia, but my parents somehow were able to fully use MSN Messenger's features with not much hassle, but if I even as much as show a screenshot of Discord, Slack, or even modern Skype, they might just shriek at the sight, let alone be able to use those softwares.
So I don't see how we've improved at large. Yes, UIs are prettier to look at and we have more animations and higher image quality and all that, but if anything functionality is very much stagnated, though I wouldn't be as bold as to say regressed.
This is why I love computers, because no two computers are in the same state, and I always laugh using other people's computers because you can be sure they have configured it in a weird idiosyncratic way, entirely different than one's own configuration.
If you think tinkering and configuring are fun you should stay as far away as possible from software design, because you have no insight into what most users expect from tech.
You overlook that not giving the user options to configure their systems is bad practice as it can force all manner of dark patterns on them, and they are left constrained in that software, unable to bend it to their will. Let them tweak, I say!
So, typically, a tech team had a pretty clear path on what technology to use. And, you could get 3 or 4 "tech lead" type people in a room, even for a huge application, and between them, they knew the system from top to bottom. And they all understood who was responsible for what.
I understand we can't go back to that. But it's hard to deliver quality with today's sprawl.
- WSL Stopped working a few weeks ago after a windows update, I haven't been able to fix it, my only option is format and reinstall OS at this point...
- My phone screen broke a little first, then it stopped working for it's top half, Since it's an iphone x, I deal with this by using the little trick to reach the top parts of the screen with the thumb, and that's how I almost don't use my phone.
I can also get random stuff open if I leave it unlocked, since it's touchpad gets activated like crazy by itself, I luckily enough have an official cover which keeps it blocked if it's lid is closed.
LOL, and I'am a power user who can fix things and google for solutions, we're just f
If you want to see some high-quality but low-feature software, look in spaces where there is less market competition but the risk of failure is death (and the civil and criminal penalties attached for failure are high). You'll find programs that do only one or two things but definitely do them, as specified.
maybe I just got lucky but it seems we have the bigger problem that these systems are so complex that they've almost reached chaos theory levels of total randomness of behavior from small changes to initial inputs.
Your computer with 1TB storage has ~2^8trillion possible states it could all be in.
Number of states you could count through if you burnt up The Sun trying: ~2^128 or so, tops.
Atoms in the universe: ~10^80.
Almost 50 years later I have an incredibly powerful computer that I carry around in my pocket and I call it "my phone". It can solve all kinds of mathematical equations, display live video, and communicate in real time with the furthest corners of the globe. Saying that I "expect technology to suck" is just completely bizarre. I have witnessed amazing changes and have access to technology that were just Star Trek visions when I was young.
2.02 ln ex resulted in 2 rather than 2.02. When the bug was discovered, HP had already sold 25,000 units which was a huge volume for the company. In a meeting, Dave Packard asked what they were going to do about the units already in the field and someone in the crowd said "Don't tell?" At this Packard's pencil snapped and he said: "Who said that? We're going to tell everyone and offer them, a replacement. It would be better to never make a dime of profit than to have a product out there with a problem".
And you use it mostly to browse cat pictures :).
Perhaps it takes a technologist to notice, but for every actual technological improvement that happens, the UI glitter gets cycled 20 times. Majority of "change" in computing technologies isn't improving anything, it's only inciting you to throw away your old device and buy a new one.
Technology is amazing. But if you think of Star Trek visions, you can realize that our technology could be 10x more ergonomic and better than it is, and could be solving 10x more problems than it is. That's what I read these complains are about - unrealized potential. But perhaps it's because I'm a techie and a trekkie that I see it this way.
I completely agree with you about the unrealized potential, but my greatest regret over the past 50 years is not about the technology, but our ability to harness it. I remember helping to setup a computer show at our local high school when I was still very young. The local vendors had agreed to donate an Apple //+ to the school in return for having space to show off all of their wares. We were thrilled and I can vividly remember my father saying that my generation would be the last one to learn programming as an add-on elective skill. He imagined a world where everyone could harness the power of digital technologies and that programming, building, tinkering, would be second nature to all of us.
We spend our time thinking about UI glitter because we gave up on that dream of having every student learn to program. We took the exercises out of math and science books where we asked students to write programs to use the Pythagorean theorem or convert Celsius to Fahrenheit. It became "enough" to learn how to enter a few numbers in a spreadsheet and perhaps add a trend line.
A few hard working people in a garage can still turn out wonderful things, but if we really want to see the promise of technology then we need to fix the bigger problem of building an educational system that empowers many more people.
People expect their technology to solve their problems. But often their problems have nothing to do with their technology, and anything to do with outside aspects like how they use it.
E.g. during Corona one boss at a institution I know bought a incredibly expensive Video conferencing "thing" and expected it to run incredibly smooth, which it didn't, because he neither was willing to invest into the buildings bandwidth/latency nor did he make sure the people on the other side also had that bandwidth/latency as well.
People like to believe into technology, like they would believe into gods or magic words: they don't want to understand how it fits into the world they are part of: they just want it to make their problems go away.
On Xfce I would sometimes idly hold down win-t to create a bunch of terminals then alt-d to close them one by one. As I might idly bounce a pencil up and down back when I used pencils. On Windows/OSX/Gnome I would never dream of just idly opening a bunch of applications for fear of what might happen.
People expect techonology to have countless minor flaws, which it has, because techies spend their time pushing tech forward at a crazy speed instead of slowly polishing it.