
Why some apps use fake progress bars (2017) - franciscop
https://www.theatlantic.com/technology/archive/2017/02/why-some-apps-use-fake-progress-bars/517233/?single_page=true
======
benjohnson
I had a report in Microsoft Access that took about five minutes to run - and
the users hated it.

I had the application throw up a fake dialog with fake messages about
"Collating data, Cross checking, Sorting" and other such nonsense.

The report now took eight minutes to run because I had to abuse the "On Timer"
event for it to work.

The users were delighted with the improvement.

~~~
mrisoli
I remember reading long ago about how they did something similar at an
airport(Dallas IIRC).

Basically, people complained about baggage claim taking too long, so they just
moved the baggage claim area to the other side of the airport, so it took
longer for passengers to reach it, by the time they did, their bags would
already be there, so the complaints stopped.

~~~
Spivak
I feel like this really isn't deception but actually solving the problem which
is that passengers didn't want to stand around.

~~~
dingo_bat
Except they had to spend the same amount of time walking. If presented as a
choice I'd usually choose standing.

~~~
zwily
Not me. Walking feels productive, standing is boring. Same with driving - my
brain would rather feel like it’s making forward progress even if the route I
take is longer.

~~~
birdman3131
I have a cell phone to eliminate the standing is boring problem. (Before that
it would have been a book)

------
wanderingstan
A physical analog of this would be when an Houston airport reduced complaints
by moving it's baggage claim to be _farther_ away from gates. Would you call
this deception?

Also: A friend runs a service that analyzes web page design based on tens of
thousands of hours of human eye tracking studies. An analysis only takes a
matter of milliseconds, but they found that their conversion rate went up if
they artificially put in a delay. Again, I wouldn't call the delay a
deception; but rather an accommodation of human perception where longer =
harder, and thus more valuable.

In the same way most people can't reason about probability, most people also
can't fathom how fast computers really are.

~~~
kirse
_artificially put in a delay_

Makes me wonder if online retailers for luxury/fashion items could increase
sales by doing something similar.

Announce the latest fashion item via social media, but make the page take
forever to load... maybe throw in a few fake 404s to a percentage of users
saying the store's website is overloaded and encourage the user to refresh.
Then when the page finally loads there's a limited supply left, and when they
put the item in their cart there's a ticking timer because "X" other people
are already shopping this item too. Maybe some other last-minute artificial
constraints, like people can only check-out with AMEX.

So basically Ticketmaster for luxury goods, except you secretly always have
enough in stock.

~~~
Spivak
This really has nothing to do with luxury goods. This behavior occurs on a lot
of e-commerce sites regardless of what they sell. Outside of established
players these tactics are fairly common. At least TicketMaster has an excuse
for the timer.

------
brlewis
This article lumps a lot of techniques together that are fundamentally
different. The ones that are actual deception are not benevolent, and the ones
that are benevolent are not actually deception.

Deception is leading someone to believe something that isn't true.

If a deliberate delay is added to a UI to make it clear to the user that
actual work is being done, this is not deception. You are leading the user to
believe something that actually is true. The natural instantaneous UI is the
deceptive one for a user who is led to believe that no actual work happened.

A fake progress bar that shows steady progress when the actual work is
stuttering is not benevolent, unless you can be sure the operation will finish
in a fixed amount of time approximately at the end of the progress bar. This
kind of deception is irritating and not benevolent.

A fake progress bar like the way change.org petitions make it look like people
are voting up the petition right now? That is deception, and regardless of the
merits of the particular petition I don't think it's benevolent.

~~~
viraptor
> If a deliberate delay is added to a UI to make it clear to the user that
> actual work is being done, this is not deception.

It is deception. It's less obvious in case of a program, but imagine it when
you're using some service in real life. You bring in a car for repairs, the
mechanic says "right, I'm doing it now", goes to the other room and starts
reading a newspaper. After some deliberate delay, fixes an obvious issue in a
minute and comes back to you saying the job is done.

Still think that's not deceptive?

~~~
dingo_bat
I think the difference is the amount of time. In your mechanic example, I have
to wait probably a few minutes extra. Maybe total time goes from 15 to 25
minutes. 10 minutes is a significant time.

When dealing with computers however, the time goes from 100ms to 2 seconds.
People generally don't mind.

~~~
brlewis
Absolutely this. It's the time difference.

The mechanic could say "I'm very experienced with this kind of repair and was
able to perform it quickly" in a lot less time than it would take to read a
newspaper in the next room.

The computer can say, "We checked your taxes against 2,683 rules in 0.002
seconds" but the user would take as long to read this as it would take to
insert an artificial delay.

But stepping back a bit for context, the only reason I'm pointing out the
benevolence -- or at least harmlessness -- of this kind of artifice, is to
also point out that the article lumps it in with real deception. This looks to
me like an attempt to create a slippery slope toward excusing all kinds of
deception.

------
scarface74
I learned that on my first programming job in 1996. They said the job was
taking too long and I was printing periods every 100 transactions. I started
printing periods every 50 transactions and they complemented me on how I sped
up the program.

~~~
ateesdalejr
If that's not a psychology hack; I don't know what is.

~~~
c3534l
Dr. Phil?

~~~
ateesdalejr
I'm sure Dr. Phil comes at a close second. ;P

------
quickthrower2
Reminds me of the old IE bar (not sure if it still does this), but it would
crawl towards 100%, getting slower and slower as it approached the end, when
waiting for a page to respond. In reality IE had no idea how much "progress"
had been made by the server, if any.

~~~
jakobegger
They also had those progress bars when you stopped or restarted some services
in an old version of Windows. They had no idea how long it would take, so they
just made a logarithmic progress bar that became slower and slower, but never
finished.

That trick only works once. As soon as you see that progress bar pattern a
couple of times, you realise that it is fake, and it is infuriating.

Progress bars need to be honest. If you don't have any clue how long it'll
take, show a spinner instead.

~~~
fossuser
I'd rather just see output of something tied to the actual process.

Basically an answer to the question, "Is this thing taking a long time because
it's doing work - or because it's busted"

In software it's busted at least 20% of the time and I think that's being
generous.

------
so33
The NYT example is interesting.

During the US presidential election I interpreted the needle’s fluctuations
(on what was a simulation of an analog gauge–a skeuomorphism) to indicate some
form of uncertainty in the data. This would not be deceptive (at least
according to my own mental model of how such a gauge would operate in real
life).

However, according to this article many interpreted the movement as the needle
reflecting actual changes in data. In this interpretation (the gauge reading
reflects at all times the actual data) this would be deceptive.

I realized that I haven’t seen one of those gauges in real life for a very
long time. Have people in general (or, inversely, the NYT) forgotten how
analog gauges are supposed to work?

~~~
jakobegger
I've never seen an analog gauge move like this. The pressure gauge on our
heating doesn't do that, the speedometer on my car doesn't tremble, and
neither do analog Volt meters as far as I recall.

~~~
dingo_bat
The speedometer on your car is almost certainly a digital system driving a
needle. Unless you have a 40 year old car or something. So you shouldn't
expect that to indicate how analog meters work.

~~~
kaslai
My friend has a car manufactured in 1982 and the speedometer is practically
useless below 30mph because of how bad the tremble is. He can be driving at a
fairly constant 25mph and the needle will fluctuate rapidly between 30mph and
bottomed out. Given the fact that the gauge bottoms out at 10mph, that
behavior is probably by design.

------
badsectoracula
Reminds me when i was a kid and was writing some GUI shell like Windows 3.1
(it only looked like it, of course, it was really just DOS programs :-P). I
used a 386 and WfW 3.11 and Windows took a long time to run. Mine launched
instantly and it felt "cheap". So to make it look more serious i added a loop
that created and deleted files with small random delays inbetween and a
progress bar that filled :-P. This way i got both a progress bar and a slower
startup with hard disk noises like the serious programs had :-) (FWIW I
remember adding the random delays because if you had smartdrv with write
caching it would just flyby but also because a smooth progress bar felt fake
:-P).

~~~
weinzierl
Cool story. I had a similar experience as a kid, when I designed the most
elaborate splash screen only to notice it was shown only for a split second
before the main window came up.

------
emodendroket
So, for the example of Turbotax, specifically, a few years ago I owed a few
thousand dollars in taxes (basically my withholdings were off). Seeing the
calculator do its little "calculating your biggest refund..." song and dance
and then announce I owned several grand was just kind of like a slap in the
face. Guess they didn't consider that particular case too carefully. :)

------
jonplackett
If you’ve ever made a chatbot you have to do this. Add in a fake few seconds
delay so it seems like it’s considering what you said in its reply. Replying
instantly makes you feel like you’re being railroaded and ignored.

~~~
floatrock
Bonus points if you trigger the "Human VonNotachatbot is currently typing..."
indicator during the artificial delay period.

------
vortico
This is a horribly researched article. Progress bars are not benevolent
deception, they are deception by incorrect choice of UI elements.

>Mask system hiccups to smooth out a user’s experience (like when a progress
bar grows at a consistent rate, even if the process it’s visualizing is
stuttering

This is malicious deception. The only one being benefited is the developer
when the users incorrectly think your software is smooth but is in fact not.
If the software hiccups, the users need to know this to better understand the
system they are working with. Your users are left ignorant, which is
malicious.

>The word “deception” has a negative connotation

That is because it is negative. A user exploring the UI of your software is
much like a physicist researching the unknown laws of the universe. A
physicist never benefits from ignorance, so don't find ways to make your users
more ignorant about your system.

>Despite its complexity, this step was nearly instantaneous in the game’s
first iteration. But the speed confused people. “Their reaction was, ‘Wow, was
that it?’” Adar said. “That was sort of a bummer for us.”

That's why you should rarely listen to user feedback if you don't fully
understand their experience. In this case the explanation is simple: users
expect your system to be worse/slower than what it is, so when it exceeds
their expectations, they are surprised and report this to you, but you've just
set a new expectation that your software is faster than others out there, and
then destroying it with an update.

>The security theater appeared to work

Already mentioned in this HN thread, but wrong term here.

>The needle only wandered within the margin of error of the forecast at any
given moment, Aisch explained

Then put an error bar around the needle for crying out loud. Designers need to
stop assuming their users are stupid---this is an annoying trend. If you're
over the voting age, you can understand the concept of error bars. If the
"needle jittered less and less", then the error bars are already known, so the
designers actively chose the "lying" method to the truthful and more
informative method.

>artificial static that Skype plays during quiet moments in a conversation to
convince users the call hasn’t been dropped

This one is fine and can be grouped in the "skeuomorphism enhancements"
category.

~~~
cesarb
> This one is fine and can be grouped in the "skeuomorphism enhancements"
> category.

Actually, it's called comfort noise, and it's not just for skeumorphism's
sake:
[https://en.wikipedia.org/wiki/Comfort_noise](https://en.wikipedia.org/wiki/Comfort_noise)

------
iampims
TurboTax being the worst offender: they use a GIF to simulate step completion
when the whole thing has already been completed to make you feel like “they're
doing hard work”…

------
floren
"The security theater appeared to work." (referring to a fake progress bar in
a game)

That's not what security theater means.

~~~
rdiddly
Stupidity theater maybe?

This article was seriously one of the most depressing things I've ever read on
HN.

~~~
franciscop
Sorry about that, it was sad but still felt it was interesting enough so I
shared it here.

------
noblethrasher
Don Norman (The Design of Everyday Things) discussed this at the Business of
Software Confence almost a decade ago:
[https://vimeo.com/96714148](https://vimeo.com/96714148)

He specifically talks about the case of benevolently deceptive progress bars
vis-à-vis tax software @ 52:30.

Basically, UI/UX is theater, and just as Puck observed in _A Midsummer Night’s
Dream_ , humans come to theater because they _want_ to be fooled.

So, good UX is the magician that is upfront about the fact that everything is
a trick, but evil UX is the charlatan that hides the fact that a trick is
being done in the first place (credit to Jaron Lanier).

------
cyberferret
<raises hand> Yep, I do this in most of my apps, especially where I have to
pull data from a legacy system that give me NO feedback progress. Rather than
handballing this 'quiet time' to my users, I tend to create timed progress
bars that try and 'guesstimate' the timeframe based on historical transactions
of the same size.

Or else I will randomly display various loading messages that are quirky but
not relevant. Must admit I was highly inspired by the old SimCity loading
messages, which seems to have further inspired the devs at Slack etc. with
their creative loading messages.

------
everybodyknows
Two mobile devices I worked on, at different companies, ended up with fake
progress bars for boot-up. We engineers wanted individual bar segments for
kernel load, filesystem mount, daemon startup and so on -- but wiring up the
necessary instrumentation to the GUI would have been significant work, and
management wasn't going to allow anything less than a show-stopper bug to
delay code freeze.

So in the real world, time-to-market beats UI truthfulness.

~~~
lolmaxos
Just show me the console log...

~~~
pbhjpbhj
Change the font, write it sideways in a frame, viola - progress bar!

------
tomc1985
Deception is NEVER benevolent.

Don't lie to your users, people.

~~~
hinkley
So I should never pretend that an operation that took 10 ms took 200ms so the
users stop hammering the Save button over and over again because there's 'no
way' it could have saved that quickly?

~~~
deecewan
Our software product eventually got auto-save after having required manually
saving for a while. We got rid of the save button, and got tons of complaints.

The button went back up, with no functionality, because users liked that.

Finally got rid of the button and put some text that said 'saving...' ->
'auto-saved' in its place.

~~~
bitwize
Should have put "Saving. Please do not remove the MEMORY CARD™ or turn off the
power."

------
osteele
Related: placebo buttons
[https://en.wikipedia.org/wiki/Placebo_button](https://en.wikipedia.org/wiki/Placebo_button)

------
settsu
> (Of course, most designers won’t have the chance to ask their users whether
> or not they want to be tricked, so they have to make that call on their
> own.)

It’s a well-documented fact of user experience that asking users what they
want is often the least accurate way to uncover that information.

------
archgoon
In a similar vein, there's this website:

[http://haspvsnpbeensolved.com/](http://haspvsnpbeensolved.com/)

Although; in this case; I'd hesitate to call this a strict example of
'benevolent deception'. ;)

~~~
Cyykratahk
Almost nine thousand lines of Javascript to show a fake loading screen for a
few seconds...

------
seanwilson
More than a few times, I've had an app where an "in progress" dialog would
pop-up and disappear for an operation that could take anywhere from 0.1
seconds to a few seconds to complete. If it happens to complete quickly, you
don't get to see the dialog text and it can be confusing if the operation
succeeded or not. A solution is to force the dialog to be shown for a minimum
of a couple of seconds. It's a weird trade-off between wasting the time of a
user who understands what's going on and avoiding confusion for a user who
doesn't understand the app so well.

~~~
lultimouomo
Or you can delay showing the dialog for half a second, during which you gather
progress data and estimate for how long the dialog would be shown. If it's
less than a couple of seconds, don't show it at all.

~~~
seanwilson
Yep, that's another way. You still need to give some kind of feedback though
if the dialog isn't shown otherwise it'll get perceived as lag. Also, say you
wait 0.5 seconds until the dialog has to be shown but the operation takes 0.51
seconds: once the dialog appears you should still probably have it displayed
for a minimum amount of time otherwise it looks like a glitch.

~~~
lultimouomo
After 0.5 seconds you should have a good enough estimate to know that the
operation will take 0.51 seconds, in which case you don't show the dialog at
all. Of course estimations are sometimes wrong, but it shouldn't be a problem
if you flash a dialog for 0.01 seconds once in a thousand times.

------
billfruit
A related annoying thing is the spread of uncalibrated progress bars, that
move front to back, then again loop around, giving no visual feed back of the
quantum of time yet remaining.

~~~
o_nate
That's what I thought this article would be about when I saw the title. Those
are also a pet peeve of mine. If it doesn't track some real measure of
progress, just show a spinning hourglass or something to indicate busyness.

------
anonymfus
> or help people get used to a new form of technology (like the artificial
> static that Skype plays during quiet moments in a conversation to convince
> users the call hasn’t been dropped)

Actually ever plain old telephones have intentionally imperfect speech
transformers so you can hear your own echo and digital cellular phone networks
do the same thing as Skype.

------
yason
A funny counter observation is that because computer user interfaces have got
progressively slower and slower (as it typically takes a "long" time to open
documents or process something) people don't necessarily trust the right thing
did happen if things actually go fast even if it's possible. So, in a perverse
sense "slower is better" because people have accustomed to computers being
slow.

Much like jerky, twitching, stuttering video playback used to be cool—to the
extent of intentional frame drops introduced in things like music
videos—because that looked "computerised". Game animations and video playback
on DOS/Windows at the time were stuttering or had visible shear because
waiting for vsync was apparently harder than in earlier hardware and everyone
tried to avoid all that; yet it was fashionable in media that could've run
smooth.

------
makecheck
I’ve seen code with progress bars that didn’t hold up under maintenance
(basically lying over time). As features were added, explicit progress
percentages might not be updated so last month’s “30% complete” point might
have 3 more steps in between this month.

------
mattschmulen
In my humble experience the impact of this issue is multiplied on mobile;
given the mobile context the user expectation is in amplified and the need for
clear communication made more relevant. A simple “spinning wheel of death” is
often not enough. However, I’m not bought in on the term ”benevolent
deception”. Where I’m from we differentiate this by differentiating being
honest with being earnest. “The importance of being earnest” (forgive the pun)
is that the earnest person has your objectives/priority in mind regarding the
outcome for the recipient. An honest persons is an indifferent to the outcome
or result. The earnest person is looking out for you.

------
staunch
Similar to the trick of putting mirrors in and around elevators so that people
can just "ape out" while they're waiting. Cracks me up when I see people doing
it. Especially when it's me.

~~~
jaclaz
>Similar to the trick of putting mirrors in and around elevators so that
people can just "ape out" while they're waiting.

Actually more similar to the "close door button" that doesn't actually do
anything in a number of elevators:

[http://www.dailymail.co.uk/sciencetech/article-3880250/The-c...](http://www.dailymail.co.uk/sciencetech/article-3880250/The-
close-door-button-elevator-scam-Manufacturers-reveal-buttons-make-no-
difference.html)

or, more generally, "placebo buttons":

[https://en.wikipedia.org/wiki/Placebo_button](https://en.wikipedia.org/wiki/Placebo_button)

------
underwater
A example of this approach failing can be seen in Pokémon Go, where a Pokeball
will shake to show a captured Pokémon trying to escape. The user is forced to
sit through an obviously fake delay before they are rewarded for their
efforts.

It seems to be an attempt to increase the tension but the execution is
incredibly bad.

~~~
charleslmunger
This is a mainstay from the original games, but it also serves a useful
purpose - there's an RPC that's asking the server if the catch was successful.
It does a pretty good job of hiding that latency.

~~~
emodendroket
I never got into Pokemon Go, but it was pretty effective in the original game
in that all kinds of superstitions developed about what buttons to press at
what times during the animation to increase the likelihood that a Pokemon
would be caught.

------
0xBA5ED
I can see a case for artificial delays in some cases, so the user can
comprehend everything relevant that is happening. But... trying to also use
this time to employ tricks to give users "false confidence" in your software
is taking a questionable turn.

------
c3534l
So you're telling me that SimCity isn't really reticulating splines during
loading?

------
dawhizkid
I do this all the time with loading spinners...if it's "too fast" then
psychologically it just feels like nothing happened...so instead I just
setTimeout() for 3 seconds.

~~~
starsinspace
Have you considered how much accumulated lifetime is wasted by all those 3
seconds again and again?

~~~
TheCoelacanth
How much time would be wasted by users trying again because they think that
first time didn't work?

------
TwoBit
I don't think put a fake progress bar in shareware I wrote 25 years ago. And
even then it was as a joke about other software's obviously fake progress
bars.

------
hartator
> We combed through the source code powering TurboTax’s website, and soon
> confirmed my suspicion.

I am pretty sure just opening the network tab will show the loading gif.

------
sebnukem2
> "[Intuit] regularly lobbies to keep the complicated U.S. tax code in place,
> and opposes proposals that would radically simplify it."

Nice.

------
ape4
The Uber app shows a bogus map animation when its "locating 3 cars in your
area"

------
sova
By the title and "some" does it not mean, "all" apps use fake progress bars?
The only apps that use legit progress bars were made in '94, the ones that
have not had a superiour product come along because they were done right the
first time.

------
homero
One of my sites has a whole fake interstitial page, people love it

------
abimaelmartell
I immediately thought about TurboTax when i saw the title.

