News for hackers. Stuff that matters.
Re:Users may be unable to connect or experiencing degraded p... by brundolf on Monday October 05, 2020 @12:16PM (#24689090)
It's not an implementation detail, it's a whole (controversial) UX design pattern: https://www.smashingmagazine.com/2016/11/true-lies-of-optimi...
Re:Users may be unable to connect or experiencing degraded p... by saagarjha on Monday October 05, 2020 @12:22PM (#24689156)
Optimistic design is good, but you need to also tell the user when you’re being optimistic. iMessage, for example, “sends” a message, but it will also tell you when it’s been delivered so you can check to make sure.
Re:Users may be unable to connect or experiencing degraded p... by Wowfunhappy on Monday October 05, 2020 @12:51PM (#24689474)
Funny story—iMessage on one of my laptops used to very frequently tell me "This message could not be delivered" even though the person on the other end received it fine. (The problem went away after an OS reinstall.)
Re:Users may be unable to connect or experiencing degraded p... by saagarjha on Monday October 05, 2020 @12:53PM (#24689504)
Pessimistic design lets you surprise and delight ;)
Re:Users may be unable to connect or experiencing degraded p... by epicide on Monday October 05, 2020 @01:36PM (#24689966)
It is not delightful to accidentally annoy someone with the same message several times because you thought it did not send.
Re:Users may be unable to connect or experiencing degraded p... by brundolf on Monday October 05, 2020 @01:38PM (#24689990)
Pretty sure the GP was /s
Re:Users may be unable to connect or experiencing degraded p... by aidos on Monday October 05, 2020 @01:44PM (#24690064)
I didn’t know it was that controversial. I feel like that article is making a bit of strawman argument from the get go by talking about 1-3% failure rate from the backend. If I had a system that flaky, I’d be taking a good hard look at myself before blaming anything on my optimistic UI :-)

There are other things to consider too. Like for example network failures vs backend failures. In the case of network failures you can actually notify users before they even try to take an action. So now you’re down to some diminishing case where your code is effectively wrong (maybe the client is too old), and again there are more elegant ways of handling that. Also, I bet you have the response back really quickly to make a call on it.

Having a worked on unstable networks I can say that there are parts of slack’s implementation that suck - like if you try to change a message that hasn’t synced yet, they get into broken states with the edit. But that’s not the fault of optimistic UI, it’s other technical choices at play.

I know you haven’t named a horse in this race, but I feel people hating on Slack for having an optimistic UI are a bit off base. Considering that I’ve sent (apparently) 2.5k slack messages in the last 30 days and I don’t recall any going wrong, I think they’ve got it right.

Re:Users may be unable to connect or experiencing degraded p... by TeMPOraL on Monday October 05, 2020 @03:20PM (#24691039)
The problem with failures and optimistic UI isn't that failures happen often - it's that they're not uniformly distributed. I do not have a 1% or 0.0001% chance of experiencing failure any given message. I have 0.0001% chance of experiencing failure, unless I'm currently in a tunnel, or my ISP breaks something again, or [insert dozen other infrequent client-side failure modes], at which point my failure rate briefly hits 100%, and I'd very much appreciate if the UI didn't lie to me about it.
Re:Users may be unable to connect or experiencing degraded p... by aidos on Monday October 05, 2020 @03:35PM (#24691181)
That’s what I was saying above, you can detect those scenarios a lot of the time and handle them reasonably. Oftentimes they’re temporary and will resolve without losing any data (in a well designed system). Like I say, you can even head those off before the user knows about them.

There are trade offs to consider in UX. You’re trying to make things as seamless as possible for the end user without distracting them with things they don’t care about.

Re:Users may be unable to connect or experiencing degraded p... by brundolf on Monday October 05, 2020 @02:34PM (#24690574)
On Slack it's only ever been an annoyance for me, because at least they visibly tell you when the message eventually fails to send. But on services like Twitter I feel gaslit when I've liked a tweet and then I scroll by it again later, un-liked. It undercuts my faith in the integrity of the entire interface. Any part of it could be lying to me in a way I may never find out about.

Overall I strongly dislike this UX pattern. Users should have immediate feedback about actions that haven't completed, but that feedback should only tell them the truth: that the operation has begun.

Re:Users may be unable to connect or experiencing degraded p... by akiselev on Monday October 05, 2020 @02:29PM (#24690519)
> I didn’t know it was that controversial. I feel like that article is making a bit of strawman argument from the get go by talking about 1-3% failure rate from the backend. If I had a system that flaky, I’d be taking a good hard look at myself before blaming anything on my optimistic UI :-)

It's not a 1-3% failure rate for the backend, it's a 0.01-0.1% failure rate for each request between dozens of microservices each with their own bespoke error handling, each owned by a team with more political clout than the frontend guys/gals who keep reporting Sentry errors due to "UnknownNetworkError" or some other such nonsense, all wrapped in some spaghetti code frontend thats written like the whole thing is running locally.

Re:Users may be unable to connect or experiencing degraded p... by c17r on Monday October 05, 2020 @01:22PM (#24689798)
I worked on a project that used this, I hated it. The excuse I was given repeatedly was "it's unlikely to fail" which I kept responding with "but when it does, the user is already 3 pages away and we have no good way to tell them so they're SOL"
Re:Users may be unable to connect or experiencing degraded p... by radicaldreamer on Monday October 05, 2020 @01:26PM (#24689844)
You could surface a notification when it fails...
Re:Users may be unable to connect or experiencing degraded p... by KajMagnus on Monday October 05, 2020 @03:24PM (#24691083)
The user might have navigated 3 pages away to a different website ... Or exited a mobile app. (But well yes I suppose notifications are better than nothing)

I somewhat often send messages just before I have to run to catch the subway — and when I think the message got sent, I type `sudo poweroff`

Re:Users may be unable to connect or experiencing degraded p... by sdflhasjd on Monday October 05, 2020 @12:42PM (#24689377)
It's pretty necessary to inform users when messages haven't sent though, especially when these little failure indicators are hidden in the channels themselves - i.e you need to be looking at the message to know it failed.

If I post a message in a channel and go back to work, I don't want to find out later when I check for replies that my message didn't actually send - I need a notification!

Re:Users may be unable to connect or experiencing degraded p... by brundolf on Monday October 05, 2020 @12:47PM (#24689433)
I don't like the pattern personally, I was just pointing out that this behavior is viewed by Slack as a feature and not a bug
Re:Users may be unable to connect or experiencing degraded p... by jlokier on Monday October 05, 2020 @02:40PM (#24690634)
A proper alert on send failure sounds like a good idea.