Step 2. Don’t educate users. Blame them and call them dumb.
Step 3. Remove features. Make UI worse.
Step 4. GOTO 1.
I also blame engagement metrics. “Hey look! We removed this useful widget and now users spend an extra 2 minutes in the app. They love it!”
Expecting them to spend time to learn and configure your UI is not cost free. Therefore it needs some convincing value to justify the investment.
If that can't be done for most users simplification (by way of removal) is a valid way of caring for your user ecosystem.
It's valid, but extremely selfish. I think one should strive to minimize the amount of negative externalities one creates for their users, especially by removing something that people use. I'm not against removing things -- it's just that the current development zeitgeist seems to believe in killing things as soon as they hit a growth peak, and not when that something is nearly dead.
To this end I really admire(d) Microsoft for just how much they cho(o)se to keep in their big ol enterprise platforms like Windows or Office. Hell the Mac OS versions of Office have the same menu layouts that I learned when I was in elementary school. There are so many things they could/should kill -- please God let Wordart be on that list -- but don't, because they know people have muscle memory, and because they know a platform with lots of diverse capabilities is part of how their customer base thrives.
The Office ribbon may be a fantastic UI design, but people hate it because it broke muscle memory and shattered expectations. Some of the groupings make no sense, and people constantly have trouble finding things, is at least partially attributable to just how long is takes for intuition and expectations to die.
I think it’s ok to have some expectation for the user to learn the UI. As a user though, it often feels like the designers want to impede my ability to learn the UI. I used to be able to click around and discover everything. Now I need to sort through 50 articles of blog spam to find out what gestures or hidden menus to use. Even the docs suck (or don’t exist).
It's true that the average computing device is turning into an appliance (is it a bad thing?), but it also appears the options for DIY are ever-expanding.
Yes, for those of us who mostly want the appliance, but sometimes want to tweak it. I don't want to have to build a system from the ground up to get my desired experience if it's 98% the same as the appliance would have been out of the box; I'd much rather start from the appliance and just change the 2%.
I know of one company that has a few "desktops" that are Pi4 and I've seen loads of them powering "active terminals" - like in-store menu and office status screens. Gotta start somewhere. Special case and move towards general case (some call it crossing the chasm)
As Strong Bad might say, we have too much appliance in our computers, and too much computer in our appliances.
Probably a little too much customization to be totally honest.
Edit: I guess this wasn't really related, but you may enjoy nonetheless. I personally found myself enjoying tech again by playing around with Linux/BSD and alternative software. YMMV
All of these things seem to be under direct attack, mostly by businesses, wantrepreneurs, and security considerations brought about by them:
Extensibility.
Manipulating files.
Open standards.
Options dialogs and deep customization.
Information density.
Consensual updates.
Privacy.
Multiple code paths.
Low-level/technical details.
Backwards compatibility.
Secrets and easter eggs.
Platform-native applications.
Ownership of the bits in your possession.
And I've been a linux geek for a while. It is still a bastion of "the old way" of doing things but there are so many people trying to rewrite the rules, pulling the platform in their own direction and writing new code when they should be contributing to existing code. Mastering Linux seems to entail mastering several sub-platforms all at once. If only they'd agree on conventions newer than 30 years old.
BSD looks interesting though.... if only it ran software I actually want to use
As an increasingly old computer nerd, I am yelling at clouds and holding on to what I have for dear life. Too much of my identity is wrapped around this idea that computers and tech are personal brain-amplification devices, and not appliances like everyone else seems to want them to be.
It’s kind of possible already, but the massive profits in per user per month billing alongside feature tiers to maximize price discrimination means we’re stuck with the status quo for a while.
> As an increasingly old computer nerd, I am holding on to what I have for dear life. Too much of my identity is wrapped around this idea that computers and tech are brain-amplification devices, and not appliances like everyone else seems to want them to be.
I feel this. I hate seeing everyone become more and more sucked into technology, but with less and less understanding.
I want to know my tech inside and out as much as possible, and be able to control it.
---
As a preface to everything below this I'm not good at programming.
I've got a theory. I think that there are two main philosophies when it comes to creating $THING. One is to focus on pumping out features, and one is to focus on correctness.
Eventually, the project focusing on features will become unmaintainable, and a new project will form from the correctness project -- focused on features. This new fork/direction will continue, until it becomes to large to deal with.
And thus the cycle repeats.
I believe Linux is currently straddling the Features/Correctness line, and that BSD will be what follows up. This is obviously years/decades in the future though. I could also see something like RedoxOS catching on instead.
Edit: Spelling. Probably still missed some. Also, image -> image/video.
The fashionable way to break this cycle is to remove old things or unpopular things. But this creates all sorts of negative externalities with your users, and in my mind is the most selfish option for that choice.
There is another option: saying 'no'. Calling something "done". Doing what you set out to do and then moving on. How to do this in a way that is sustainably profitable and prevents someone else from coming along and eating your lunch for as long as possible, is something I would very much like to learn how to do.
Is there something wrong with just doing one thing well, making some money from that, and then moving on to do something else well and making some money from that too? I know it's an old-fashioned idea that something you do in tech might not continue to bring in rental income indefinitely...
Contrast that with Visual Studio Code, which has a restricted, well-defined API extensions may use.
Oh, and the other thing about restricted, well-defined APIs? You're not locked into your present architecture. You can rewrite the entire code base, and all extensions will Just Work provided you reimplement the extension API. Extensions in the Emacs paradigm of having all system internals exposed to them will break the moment those internals change.
Restricted, well-defined APIs are system design 101.