Hacker News new | ask | show | jobs
by randomstring 1933 days ago
I had a friend who implemented what he referred to as Zeno's Progress Bar. After every unit of time passed, the progress bar would progress half the distance to completion. So 0 -> 50% -> 75% -> 87.5% and when the task finished it would jump to 100%. It didn't bother to measure the actual progress at all. Key factor was making users think something was happening and not give up before it was done. In hindsight, it leverages the human's susceptibility to the sunk time fallacy.

They may not have been the first to invent the idea or implement it. I found this description of the same idea here: https://cerealnumber.livejournal.com/27537.html

and an online implementation and demo here: https://jan-martinek.com/etc/zeno/

6 comments

Wouldn't it be more useful to just show a spinner?

Or have zombie spinners eliminated all trust that they indicate ongoing activity?

Was setting up a new iPhone yesterday and got burned by a zombie spinner that I believed was indicating progress was being made on the iOS 14.4 update. Left it alone for 2 hours expecting it to be done only to find it as I had left it. Restarted the process and the spinner didn't appear at all. It was like it was a spinner which could only show in the event that it had broken.
Spinners are terrible since many devs forgot to implement error state
I do not trust the spinners personally
Watching that progress bar was physically painful. I'd rather not use software that lies to me.
I'm pretty sure Github does this when navigating from page to page. Makes sense—The browser has no way of knowing the progress of the HTTP request.

It seems to me that most progress bars are lies.

Usually by the time your software knows fully all the things that need to be done, then you are almost done anyway.

One approach is to remember how long a similar task took, and present progress based on the expected time will be similar.

I've used NProgress for years in JS apps and it defaults to a similar progress (though it uses a smoother "ease-out" curve than pure "Zeno").

Though one interesting thing to note is that both of these curves violate one of the findings in this article that users seem to prefer the bar to move slower at the beginning than the end and what you like want is more of an "ease-in" curve.

Most progress bars I know travel from 0% to 99% in a minute, and then take 10 minutes for the last percent.
I would leave a site that had a bar like that. It would piss me off way too much.