News for hackers. Stuff that matters.
Re:Users may be unable to connect or experiencing degraded p... by jacquesc on Monday October 05, 2020 @12:01PM (#24688932)
This backend outage reveals how horrible the Slack UI is implemented. You post a message.... you think it got sent. Then 1min later, it tells you it was not.
Re:Users may be unable to connect or experiencing degraded p... by JMTQp8lwXL on Monday October 05, 2020 @01:59PM (#24690232)
The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used.

The converse is pessimistic rendering: waiting for the server response before updating the UI (and possibly showing a loading spinner in the interim).

Facebook Messenger has the best UX paradigm for this I've seen, since it's most graceful in handling the edge case failures while still presenting as optimistic. Your message immediately appears as a conversation bubble, with an icon displaying if the server has received it, an 'X' if it fails (clicking the icon gives you options: re-send, delete, etc), and a read receipt for when the other party views the message. It's a fantastic way of handling the lifecycle.

Slack fails because it doesn't communicate that pending, the-server-hasn't-received-it-yet status, and the fallback isn't as graceful.

Re:Users may be unable to connect or experiencing degraded p... by n4r9 on Monday October 05, 2020 @02:08PM (#24690312)
> pessimistic rendering: waiting for the server response before updating the UI

I hate the phrase "I'm a realist not a pessimist" as much as the next person, but isn't this actually "realistic rendering"?

Re:Users may be unable to connect or experiencing degraded p... by jlokier on Monday October 05, 2020 @02:33PM (#24690570)
The terminology is occasionally used with a more technical meaning in algorithms, so perhaps that's how it's being used here.

"Optimistic" often means "assume X, perform or calculate something, change the result if X turns out to be false".

"Pessimistic" often means "assume not-X, perform or calculate something, maybe change the result if X turns out to be true".

This comes up in other domains.

For example in compilers (and reverse engineering decompilers ;-) there are optimistic and pessimistic analyses.

An optimistic analysis might initially assume a particular variable has a specific value at a particular location, or a branch is always taken. Then trace through the program paths, using that assumption (which limits those paths). If it loops back to the location with a different value in the variable or different value for the branch condition, broaden the assumption and update the trace.

A pessimistic analysis might initially assume the variable at a particular location could have any value because it hasn't yet traced everywhere to find out the possibilities, or initially assume both directions at the branch could happen and include them both in the trace. By the time it finishes tracing all paths and values, those assumptions may turn out pessimistic and it can start pruning away unused options.

These two strategies can yield different answers, and for some analyses the optimistic strategy gives more accurate results than the pessimistic strategy.

So which one is more "real"? :-)

Re:Users may be unable to connect or experiencing degraded p... by benmller313 on Monday October 05, 2020 @02:22PM (#24690444)
To be wildly pedantic, pessimistic rendering would then be immediately showing an error, only to later clear the error away if the request is successful.
Re:Users may be unable to connect or experiencing degraded p... by rwbhn on Monday October 05, 2020 @07:54PM (#24693401)
I got thrown recently by an update log (powerapps solutions) which seems to do exactly this - an in-flight install/update is shown as a failure until it completes. Eventually figured out I should ignore entries with a null completion time.
Re:Users may be unable to connect or experiencing degraded p... by hansvm on Monday October 05, 2020 @02:25PM (#24690475)
It depends on your frame of reference. If the message succeeds then there will be a window (all else equal and no funny business in the networking, around 1/2 round trip time) where the UI displays the message as spinning when it has in fact been successfully sent. If your frame of reference is not whether the message has been successfully sent but whether you know for certain that it has been successfully sent then I think you'd be right to call it "realistic rendering", but from the message's frame of reference "pessimistic" isn't a bad choice of words.
Re:Users may be unable to connect or experiencing degraded p... by gravitas on Monday October 05, 2020 @02:22PM (#24690448)
> Facebook Messenger has the best UX paradigm for this I've seen

FYI, Signal has used this paradigm for quite some time (I'm not sure which software predates the other on this feature), it's two checkmarks which remind me of the old "open Apple, closed Apple" keyboard keys - message bubble is shown with two open checkmarks right away, a single closed checkmark means the server has received, the second closed checkmark means the other end has received (assuming read receipts are enabled, Signal allows them to be turned off for privacy reasons).

Re:Users may be unable to connect or experiencing degraded p... by ubercow13 on Monday October 05, 2020 @02:47PM (#24690697)
I seem to remember BlackBerry Messenger doing this 15 years ago, I don’t think Facebook or Signal were close to being first
Re:Users may be unable to connect or experiencing degraded p... by gravitas on Monday October 05, 2020 @03:32PM (#24691145)
nod From a corporate reliability (and possibly auditing) perspective, this seems like a bread & butter feature for Blackberry back in it's heyday.
Re:Users may be unable to connect or experiencing degraded p... by flavmartins on Monday October 05, 2020 @02:01PM (#24690255)
It's especially bad if you're on mobile and in an area that might have spotty reception.

You post a message, it looks good, you move on.

Then later on you come back to it and it was never sent.

Re:Users may be unable to connect or experiencing degraded p... by dimtion on Monday October 05, 2020 @02:11PM (#24690349)
The new Slack on mobile is absolutely unusable. There are no way to know if the interface is up to date, when was the last update or to force an update.

The only way I found to know that your message has been received is to have an ack from your interlocutor.

Re:Users may be unable to connect or experiencing degraded p... by ghostpepper on Monday October 05, 2020 @04:37PM (#24691752)
My personal conspiracy theory is that Slack likes the way users "engage" with the mobile app when indicator badges don't clear right away. Often you will open the app because you see the badge, only to realize you've already read the message and the badge just hasn't cleared. They're hoping that you will then click something unrelated in the app, thus increasing "engagement".
Re:Users may be unable to connect or experiencing degraded p... by 8ytecoder on Monday October 05, 2020 @04:18PM (#24691545)
Optimistic updating is when the message moves from the chat box into the conversion thread. It assumes that in most cases the message will be sent and it makes sense to update the UI. Usually though it’s accompanied by an indication of some kind to also show progress. If slack doesn’t indicate it in anyway that’s confusing.
Re:Users may be unable to connect or experiencing degraded p... by ghostpepper on Monday October 05, 2020 @04:33PM (#24691713)
I wonder if this is why slack for iOS (not sure about Android) will load the notification badge from the server before loading the actual messages, so when those get out of sync the UI is essentially saying "Someone is trying to contact you but that's all I can tell you".
Re:Users may be unable to connect or experiencing degraded p... by illuminated on Monday October 05, 2020 @05:57PM (#24692492)
> Facebook Messenger has the best UX paradigm for this I've seen

Viber had a similar thing long before FB's messenger: single gray check mark character if the message is sent, double gray check mark if it is received by the recipient and double check mark in purple if it is seen.

The only issue is with the purple color of the "seen" as it can sometimes blend into an image behind it (if the message was consisting of an image).

Re:Users may be unable to connect or experiencing degraded p... by throwawayy1001 on Monday October 05, 2020 @02:56PM (#24690795)
> The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used.

It's easier than making the UI and server faster for sure, I'm just not sure why engineers don't insist of fixing things the right way.

Re:Users may be unable to connect or experiencing degraded p... by mike_d on Monday October 05, 2020 @03:37PM (#24691196)
> I'm just not sure why engineers don't insist of fixing things the right way

Einstein figured out why in 1907, and most of us have just been going along with the assumption that superluminal communication just isn't possible.

https://en.wikipedia.org/wiki/Tachyonic_antitelephone

Re:Users may be unable to connect or experiencing degraded p... by read_if_gay_ on Monday October 05, 2020 @03:05PM (#24690888)
Network roundtrip is still going to introduce noticeable latency even assuming everything else is literally instant.
Re:Users may be unable to connect or experiencing degraded p... by NikolaNovak on Monday October 05, 2020 @04:15PM (#24691519)
>>It's easier than making the UI and server faster for sure

In majority of cases, I assume network latency will be the dominant factor, and that is outside the control of the engineers.

I happen to use slack from hardwired gigabit ethernet to a gigabit fiber internet connection. But I maintain some awareness that some others may use it from their older android phone with 2 bars of service, or on a laptop with 27 open blasting wifi spots, etc etc etc.

I will therefore put forward that assumption you can ensure instant communication, is the wrong wrong wrong way for engineers to write code...

Re:Users may be unable to connect or experiencing degraded p... by Wohlf on Monday October 05, 2020 @03:34PM (#24691168)
>I'm just not sure why engineers don't insist of fixing things the right way.

That's like saying "just fix global warming", it's more complicated than that.

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.
Re:Users may be unable to connect or experiencing degraded p... by onion2k on Monday October 05, 2020 @12:48PM (#24689443)
I understand why they use this UI paradigm, but I don't understand why it's not reversed eg make it light grey until the API has confirmed it's been posted. That would maintain the nice 'you posted a message nice and quickly' responsive UI idea, but without making the user angry when it doesn't work.

Even if the idea is to fool the user in to thinking Slack is faster than it is, the UI could at least use the reversed 'light grey until confirmed' UI once it's detected that there's a problem. That would make it a bit less tiresome.

Re:Users may be unable to connect or experiencing degraded p... by ggreer on Monday October 05, 2020 @12:52PM (#24689489)
Ripcord[1] does what you describe. My guess is that Slack doesn't do this because it makes Slack's latency extremely obvious. Even on a great connection, a decent fraction of messages will take multiple seconds to go from gray to black. Apparently even when Slack's API is operating normally, it can take a very long time to respond with, "Your message was received."

1. https://cancel.fm/ripcord/

Re:Users may be unable to connect or experiencing degraded p... by emerged on Monday October 05, 2020 @12:52PM (#24689485)
This morning I sent a message and it was greyed out until finally sending a minute later. So it would seem both cases are possible somehow. Different stages of data propagation?
Re:Users may be unable to connect or experiencing degraded p... by karmakaze on Monday October 05, 2020 @01:43PM (#24690050)
The mismatch between expectation and clearly visible feedback is in the timing. It would be fine if there was a 'still sending' type message after 2 seconds. If this comes up too frequently then the connection is not as reliable as the UI is pretending it to be.
Re:Users may be unable to connect or experiencing degraded p... by adrianmonk on Monday October 05, 2020 @01:20PM (#24689771)
> tells you it was not.

At which point there is no option to cancel and say "you know what... don't send it".

If you notice it 24 hours later, your choices are (1) be nagged about retrying it forever or (2) retry sending a message that may now be irrelevant.

When it comes to retries, the easiest thing for the user is for the software to be responsible for retrying failed actions. Choosing not to do that makes sense IF the goal is to give the user more control because they may not necessarily still want the action done.

But if you don't give them that control, it's the worst of both worlds. The retry happens slower, with more manual work, and without the benefit of choice.

Re:Users may be unable to connect or experiencing degraded p... by arwineap on Monday October 05, 2020 @01:37PM (#24689979)
I have a DM on mobile with a failed slack message in it that has clogged my UI for months; literally months.

On mobile it means that I can't tell if this user has responded to a message or is online at all. I tried telling it not to send ages ago when it actually failed but it hasn't worked, and frankly now it's so far back in history it's impossible for me to try again.

I've deleted slack and re-installed to no avail. It's really an awful problem.

Re:Users may be unable to connect or experiencing degraded p... by xmprt on Monday October 05, 2020 @06:42PM (#24692876)
Can you not delete the message after it fails?
Re:Users may be unable to connect or experiencing degraded p... by adrianmonk on Monday October 05, 2020 @06:58PM (#24692990)
OK, that's a good question. I can't recall that there's a way to. But I can't reproduce it now to test it and answer definitively.
Re:Users may be unable to connect or experiencing degraded p... by quietbritishjim on Monday October 05, 2020 @12:04PM (#24688961)
The message is in a light grey colour until it's confirmed. I'm not saying it's amazingly obvious but at least the information's there. In fact I'm mostly posting this comment so others know what to look for.

(I know this because I just spent 60 seconnds staring at my message trying to figure out why the formatting was off before it told me it wasn't sent. It sent immediately when I retried though.)

Re:Users may be unable to connect or experiencing degraded p... by sixstringtheory on Monday October 05, 2020 @12:06PM (#24688986)
I’ve had messages that were black for at least one minute turn gray and only then notify me that they failed to send
Re:Users may be unable to connect or experiencing degraded p... by znpy on Monday October 05, 2020 @12:44PM (#24689400)
I had sequence of six messages that were not all delivered, and once they were delivered (because I clicked on each one of them) they were re-ordered, altering the my whole part of the conversation.
Re:Users may be unable to connect or experiencing degraded p... by dopamean on Monday October 05, 2020 @12:15PM (#24689076)
Same
Re:Users may be unable to connect or experiencing degraded p... by chimeracoder on Monday October 05, 2020 @12:13PM (#24689054)
> The message is in a light grey colour until it's confirmed.

This morning alone, I've had multiple messages start off black, then turn grey after about 10 seconds. And that's not just true today, but other time Slack has been down as well.

"If it's black, it's confirmed delivered" is not an invariant.

Re:Users may be unable to connect or experiencing degraded p... by umanwizard on Monday October 05, 2020 @12:12PM (#24689045)
This is sometimes the case. Not always.
Re:Users may be unable to connect or experiencing degraded p... by gomox on Monday October 05, 2020 @12:11PM (#24689036)
You can tell it was built for Silicon Valley. The marginally lighter gray tone on unsent messages is only noticeable by design-aware people on fancy IPS monitors. Messages are reordered semi-randomly.
Re:Users may be unable to connect or experiencing degraded p... by breatheoften on Monday October 05, 2020 @12:59PM (#24689563)
I frequently send - edit send - edit the same message in an effort to reduce the number of typos.

Recently i've realized that this actually introduces more typos -- where a large number of phrases are duplicated or corrected typos reapplied.

There's something wrong with slacks operational transform or CRDT implementation or whatever they use to get edited messages to converge

Re:Users may be unable to connect or experiencing degraded p... by paxys on Monday October 05, 2020 @02:00PM (#24690241)
> slacks operational transform or CRDT implementation or whatever they use to get edited messages to converge

I'm pretty sure they have none of that, considering you can only edit your own messages. So what's likely happening is that two quick edits are reaching the server at the same time and overriding each other.

Re:Users may be unable to connect or experiencing degraded p... by breatheoften on Monday October 05, 2020 @02:09PM (#24690315)
I could be wrong but i'm relatively sure that I reach message states that do not directly correspond to anything i typed into the editor -- which i wouldn't expect if the edited state was always sent in full rather than as a delta on a previous message state.

I suppose it's possible that the corruption happens on the client side tho --

1. initiate edit action and get editable view of snapshot of text

2. server acks some previous edit request causing some client state related to the message to update and promote a previous edit in some way

3. hit save after finishing editing -- and some delta operation on the client side updates a different message state than the one i initiated edit action from ...

Re:Users may be unable to connect or experiencing degraded p... by viraptor on Monday October 05, 2020 @04:54PM (#24691930)
This is just super unlikely as you describe it. There's no reason for deltas and fancy mechanisms when you can only edit your own messages. It would be a waste of resources to do it like this for short messages.
Re:Users may be unable to connect or experiencing degraded p... by breatheoften on Monday October 05, 2020 @07:14PM (#24693091)
I don't know the specific implementation mechanism -- just guesses.

But that doesn't mean my observation of the behavior of the bug is unlikely.

And also -- there is not a hard requirement that only one editor exists -- the same user could use multiple devices at the same time. Consider that and you might find your assumptions to be invalid.

Re:Users may be unable to connect or experiencing degraded p... by jlokier on Monday October 05, 2020 @02:42PM (#24690647)
It's almost as if you're describing LinkedIn...

(Where a message sent doesn't match what was typed sometimes.)

Re:Users may be unable to connect or experiencing degraded p... by gomox on Monday October 05, 2020 @02:33PM (#24690564)
Did some poking around with Chrome dev tools.

The RGBA value for the "unsent" text is #1d1c1db3. Normal "sent" (or "attempting to send but haven't yet decided sending will fail" is #1d1c1d. The RGBA value (alpha = 0.7) ends up being equivalent to #616161 when rendered over white background which the Slack default skin does.

Demo for reference: https://jsfiddle.net/9smqe8y7/

Re:Users may be unable to connect or experiencing degraded p... by outworlder on Monday October 05, 2020 @02:00PM (#24690240)
IPS monitors are not 'fancy'. Not in 2020.
Re:Users may be unable to connect or experiencing degraded p... by hackmiester on Monday October 05, 2020 @03:23PM (#24691071)
This take is illustrative of just how much of a bubble HN is.

I don't mean to disparage at all, but IPS monitors are far from universal.

Re:Users may be unable to connect or experiencing degraded p... by notyourwork on Monday October 05, 2020 @12:03PM (#24688956)
Just experienced this and decided to context switch to hackernews for a few minutes. Ironic that this post is the top on homepage.
Re:Users may be unable to connect or experiencing degraded p... by arbitrage on Monday October 05, 2020 @12:30PM (#24689246)
That's the opposite of irony, as one would absolutely expect weirdness on Slack to be talked about on HN.
Re:Users may be unable to connect or experiencing degraded p... by notyourwork on Monday October 05, 2020 @12:41PM (#24689358)
Broadly speaking maybe, but situationally not really. The likelihood that the issue I'm experiencing is a service wide issue impacting many others is usually low probability.
Re:Users may be unable to connect or experiencing degraded p... by ljm on Monday October 05, 2020 @12:55PM (#24689522)
I was surprised that I couldn't even open up a DM conversation without it blocking on the network - the Ctrl-T/Ctrl-K quick-find just got stuck when I tried clicking on the person's name.

Just... how!?