I'm 100% with Tonsky on this one, it's something that's frustrated me for years and I think it fundamentally boils down to a lack of respect for your user.
I'm going to be careful here, this doesn't mean that there aren't times when we can't avoid bothering our users, but I think we resort to doing so far too often, we don't apply the axiom of "if this person was someone who I deeply respected and would feel real bad if the contacted me and asked me to justify bothering them, would I still do this" as our actual test.
I'm not saying this is uniquely our decision, this entire process might be out of our hands, but in my opinion it bares thinking about and weighing up appropriately.
It's very easy to say it's only 5 seconds, if your software serves millions, that's a lot of people and even if you don't, a couple of 5 seconds here or there adds up very quickly.
I'm not here to berate or point fingers, but we also are users of each others software, so I hope that at least on that level we'll try to do better :)
I agree with the sentiment of the post, but sometimes it would be too ‘expensive’ to implement a solution to some of these problems.
E.g. on user accounts: nobody likes them, but when Uncle Fizz asks customer support for his data because he lost his phone again, a synced user account would be the simplest way to help him.
Updates should either be automatic and transparent, or it's indeed on you to keep track and decide whether to update. I do agree that NPM packages are freaking annoying, every package now needs to tell you something when you install or update.
Same with What's New modals, some people will benefit from learning these things (notably power users?), but they'll annoy others.
Notification dots are idiotic.
So… striking a balance where we can? Otherwise most users would be left behind, as if we'd given them a terminal and said APK installs and updates things.
I'm not sure what the solution to all this is, but I like Tonsky a lot, and it's a great blog post.
> Same with What's New modals, some people will benefit from learning these things (notably power users?), but they'll annoy others.
I think power users are most annoyed by those modals. It prevents them from doing the exact thing they were planning to do. Instead, they'll have to reinterpret what the application is telling them, consider it to be irrelevant (most of the times), and then pick up whatever they were planning to do. This creates friction.
I don't need the application to tell me a sidebar was introduced. I see that immediately because it differs from the layout I'm already used to. And then I'm annoyed they added the sidebar, because it takes up space without offering relevant new functionality.
This is not a new problem. Anyone remember what booting Windows was like back in 2000? All the programs loading bunch of libraries from spinning rust, just to get their tiny, useless icon to the tray. Some would show banners as they started in the background, to remind they exist. It would take minutes from GUI first paint to all icons in the tray and system responsive again.
Btw, night mode on that site is brilliant. Also necessary, the yellow burns my eyes.
And soon even your oven will require an account with subscription so that the built-in camera can notify you when the bread is browning and it asks for permission to lower the temperature
I'm imagining it even worse: you have to pay a subscription to get your oven to go above a certain temperature and for it to "fast pre-heat" and to not have it show you ads.
I miss the very calming, cold, solid, metal feeling of desktop software.
Log back in after a vacation, and everything's still there.
A window with "maybe" resizable panels and a menu, and that's it.
The Web used to be the "documents."
For a technology that's been built for documents, all the navigation, footer, and header of any modern app feel like a "hack" compared to elegance of what desktop used to be.
In an old-fashioned desktop application, anything that gets "synchronized" is by choice, and rather feels like magic.
In a web app, even the UI is not a given.
We are forced to stay logged to an "Massively Online Revenue Platform Generation" games, and it keeps getting disconnected, and is laggy.
So "Let's replace the Cloud with self-hosted alternatives," right?
-- Good luck with added effort and complexity of config, maintenance, network, db, bugs, updates, and the pain of "admin accounts" in first setup.
We used to have the client and server functionality baked together in any major desktop software that used to connect to FTP, IRC, P2P, Mail, and to each other.
Today it's accounts...
Accounts.
It's accounts all the way "up."
We used to own the data, and the software.
Now it's full-scale surveillance and dispossession.
Telemetry is not mentioned. Many apps nowadays are extremely chatty and record a wide range of details of use. In theory this helps to optimize usage and discover blocking bugs, but in reality it is mostly just an annoyance that enables service providers to spy on what users are doing.
WhatsApp is infuriating about this on iOS. If you want to share your location in real-time, it needs the full always-on tracking permission. Why not keep sharing but only when I unlock the phone? The other person usually doesn't need 100% live tracking, just to make sure we're headed towards the same place.
This is a uniquely terrible article that doesn't bother with any kind of nuance. If you are using my service and I need to make backwards incompatible changes to my system, you can bet I'm going to force you to update. I'm not going to carry around legacy baggage forever so that I can accommodate luddites with loud opinions and too many Twitter followers.
To be clear I don't think the author's point on updates is such a good idea and that's an example of why, but I understand they require a level of trust on the developer that many, many companies haven't earned.
Exactly ! Instead of writing good modular programs, pack "features" and security fixes in a nice bundle so users can choose to have their app enshittified or being vulnerable and I sure know which one of the two users don't care.
It's a so popular strategy Microsoft uses, Windows even forces it only allowing you to delay it for some weeks.
Inform the user in a minimal way. Probably this means some kind of flag that can be clicked on in order to see a list of what was done and what problems that might address. If the fixes relate to unused features then they can be pended and there is no need to interrupt workflow.
The solution is elsewhere: let me update my programs centrally without the program deciding. Like the App Store or the apt repository.
It’s fair if devs don’t accept reports unless the user runs the latest version.
If you care about security, like a company, you’re probably also doing that on a schedule, and more or less globally, not in the program itself anyways.
If the security fix is critical, I’d argue the user does need to install it asap, and then letting them know does make sense.
This site has an ideal sign-in page https://tonsky.me/sign-in/
I actually lol'd at this.
I'm 100% with Tonsky on this one, it's something that's frustrated me for years and I think it fundamentally boils down to a lack of respect for your user.
I'm going to be careful here, this doesn't mean that there aren't times when we can't avoid bothering our users, but I think we resort to doing so far too often, we don't apply the axiom of "if this person was someone who I deeply respected and would feel real bad if the contacted me and asked me to justify bothering them, would I still do this" as our actual test.
I'm not saying this is uniquely our decision, this entire process might be out of our hands, but in my opinion it bares thinking about and weighing up appropriately.
It's very easy to say it's only 5 seconds, if your software serves millions, that's a lot of people and even if you don't, a couple of 5 seconds here or there adds up very quickly.
I'm not here to berate or point fingers, but we also are users of each others software, so I hope that at least on that level we'll try to do better :)
I know I will.
I agree with the sentiment of the post, but sometimes it would be too ‘expensive’ to implement a solution to some of these problems.
E.g. on user accounts: nobody likes them, but when Uncle Fizz asks customer support for his data because he lost his phone again, a synced user account would be the simplest way to help him.
Updates should either be automatic and transparent, or it's indeed on you to keep track and decide whether to update. I do agree that NPM packages are freaking annoying, every package now needs to tell you something when you install or update.
Same with What's New modals, some people will benefit from learning these things (notably power users?), but they'll annoy others.
Notification dots are idiotic.
So… striking a balance where we can? Otherwise most users would be left behind, as if we'd given them a terminal and said APK installs and updates things.
I'm not sure what the solution to all this is, but I like Tonsky a lot, and it's a great blog post.
> Same with What's New modals, some people will benefit from learning these things (notably power users?), but they'll annoy others.
I think power users are most annoyed by those modals. It prevents them from doing the exact thing they were planning to do. Instead, they'll have to reinterpret what the application is telling them, consider it to be irrelevant (most of the times), and then pick up whatever they were planning to do. This creates friction.
I don't need the application to tell me a sidebar was introduced. I see that immediately because it differs from the layout I'm already used to. And then I'm annoyed they added the sidebar, because it takes up space without offering relevant new functionality.
This is not a new problem. Anyone remember what booting Windows was like back in 2000? All the programs loading bunch of libraries from spinning rust, just to get their tiny, useless icon to the tray. Some would show banners as they started in the background, to remind they exist. It would take minutes from GUI first paint to all icons in the tray and system responsive again.
Btw, night mode on that site is brilliant. Also necessary, the yellow burns my eyes.
And soon even your oven will require an account with subscription so that the built-in camera can notify you when the bread is browning and it asks for permission to lower the temperature
I'm imagining it even worse: you have to pay a subscription to get your oven to go above a certain temperature and for it to "fast pre-heat" and to not have it show you ads.
“Temperatures above 160C require Oven+ Pro Premium Prime (3P tm), please upgrade (9.99/month) to cook your food faster.”
Landlord bought a Samsung smart oven that requires Wi-Fi to keep track of time. We manage without, but requires (re)setting the clock every day.
I miss the very calming, cold, solid, metal feeling of desktop software.
Log back in after a vacation, and everything's still there.
A window with "maybe" resizable panels and a menu, and that's it.
The Web used to be the "documents."
For a technology that's been built for documents, all the navigation, footer, and header of any modern app feel like a "hack" compared to elegance of what desktop used to be.
In an old-fashioned desktop application, anything that gets "synchronized" is by choice, and rather feels like magic.
In a web app, even the UI is not a given.
We are forced to stay logged to an "Massively Online Revenue Platform Generation" games, and it keeps getting disconnected, and is laggy.
So "Let's replace the Cloud with self-hosted alternatives," right? -- Good luck with added effort and complexity of config, maintenance, network, db, bugs, updates, and the pain of "admin accounts" in first setup.
We used to have the client and server functionality baked together in any major desktop software that used to connect to FTP, IRC, P2P, Mail, and to each other.
Today it's accounts... Accounts. It's accounts all the way "up."
We used to own the data, and the software.
Now it's full-scale surveillance and dispossession.
Telemetry is not mentioned. Many apps nowadays are extremely chatty and record a wide range of details of use. In theory this helps to optimize usage and discover blocking bugs, but in reality it is mostly just an annoyance that enables service providers to spy on what users are doing.
And asking for permission for location comes up often. If you say no it will keep asking. Also asking for access to contacts, photos, etc...
WhatsApp is infuriating about this on iOS. If you want to share your location in real-time, it needs the full always-on tracking permission. Why not keep sharing but only when I unlock the phone? The other person usually doesn't need 100% live tracking, just to make sure we're headed towards the same place.
I'm going to move my HSA account as soon as I'm back stateside because of this problem.
BTW, stop making SMS your 2FA. Not everyone is in the US all the time. I have hardware keys. Just stop already.
This is a uniquely terrible article that doesn't bother with any kind of nuance. If you are using my service and I need to make backwards incompatible changes to my system, you can bet I'm going to force you to update. I'm not going to carry around legacy baggage forever so that I can accommodate luddites with loud opinions and too many Twitter followers.
Long ago, users looked forward to updates. Users were positively excited about updates. Users were willing to pay for updates.
What changed?
> If you are using my service and I need to make backwards incompatible changes to my system, you can bet I'm going to force you to update.
Now, users universally understand that updates solve your problems, not theirs.
The article kinda covers that already:
> If I need an update, I will know it: I’ll encounter a bug or a lack of functionality. Then I’ll go and update.
What if security updates?
The author probably doesn't care.
To be clear I don't think the author's point on updates is such a good idea and that's an example of why, but I understand they require a level of trust on the developer that many, many companies haven't earned.
Sometimes I ponder how we could split security updates, bug fixes and new features.
It's a fun puzzle but to hard for me.
Perhaps a 4th kind is needed (needed by the developers)
If the updates are split into small chunks some users could review it before installing. Read the div in the dialog.
Exactly ! Instead of writing good modular programs, pack "features" and security fixes in a nice bundle so users can choose to have their app enshittified or being vulnerable and I sure know which one of the two users don't care. It's a so popular strategy Microsoft uses, Windows even forces it only allowing you to delay it for some weeks.
Inform the user in a minimal way. Probably this means some kind of flag that can be clicked on in order to see a list of what was done and what problems that might address. If the fixes relate to unused features then they can be pended and there is no need to interrupt workflow.
Not really.
The solution is elsewhere: let me update my programs centrally without the program deciding. Like the App Store or the apt repository.
It’s fair if devs don’t accept reports unless the user runs the latest version.
If you care about security, like a company, you’re probably also doing that on a schedule, and more or less globally, not in the program itself anyways. If the security fix is critical, I’d argue the user does need to install it asap, and then letting them know does make sense.