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.
It's also one of the irritating things about "Material Design" websites, where responses to clicks are artificially delayed before speeding out with unnatural acceleration. "Nothing is happening. JUST KIDDING!" I'm not sure if that is to mask the slowness of mobile devices or if it's the cause of them. It's the animation spam of the current generation of UIs.
*  "Let's make our website sparkle. It will be 'delightful'." http://dynamicdrive.com/dynamicindex3/snow.htm
Web browsers have progress bars.
I think your complaint is with "sites" that just serve a JS payload and then load "the real site" entirely from requests made by JS. Turns out if you generate and serve actual HTML, you get a progress bar for free!
If that isn’t the way we build sites now, either change the way we build sites or accept that it sucks. But this is Hacker News so we’re supposed to think about different ways to build sites than what we do now.
I would like to hear which ones they are, that I may try them.
It’s far from perfect but is at least a good enough heuristic for the user to know when the page is loading a request.
To be fair, depending on how the progress bar is implemented, it might not be a guarantee.
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.
That, my friend, is an impressive command of the English language.
Thank you for teaching me the word asymptotically! 
edit: I started browsing around their site, and when I returned to that page via the back button, the actual comic was there.
User's like to know what's going on, even if they maybe don't understand all the details, but at least they see things are happening and not just a (fake) progress bar. So they can connect more to what is happening and therefore be more understanding and patient instead of just being told to wait, with no further information, which nobody likes.
Could you give me an example of what you consider "vague, but accurate information?"
How do you visually represent "error bars" to someone who's not technical enough to have ever seen them? Not everyone takes college stats, math, and engineering.
Technically, wiggling within the error bars is a precise way of saying "the precise location is vague -- it's somewhere within this range", in that at any moment it is showing one precise, acceptable guess.
The most fascinating piece there was that as the error bars decreased, the range of the wiggling decreased as well.
Yeah, it doesn't convey the extend of the error bars instantaneously -- you need to stare at it over time -- but it does convey the idea of error bars.
I think the people upset about the error wiggle are either a) being pedantic that it's not visualized in the way they learned it should be visualized back in college; or b) they haven't accepted the idea that sometimes we don't have an exact precise black-and-white answer (we DO have ways to precisely quantify the degree of our uncertainty though).
All of this not to say it was the best execution... perhaps if they 'ghosted' previous needle positions like how old movie radars ghost a green blip as the thingie spins around, maybe it would have been a kind of hybrid approach where the error bars do kinda appear in the overlapping ghosting shadows but still change over time...
I guess the lesson to be learnt here is that people are more understanding if you appear to be transparent but you don't have to ACTUALLY be transparent to get the affect.
(You might want to mute it. The loading messages are at the bottom)
I don’t think I’ve ever seen another game than simcity give it a voiceover...
Preparing for display
As a bonus, this can occasionally be useful for bug squashing. "I've been waiting for hours and it's only up to row 5681" when you know for a fact that there's <2000 rows is a lot more informative than "My report won't finish."
Most of them used to take a long time, but hardware has caught up. SSH key generation, locale installation. Instead, it's a warning that briefly appears on modern systems, but is visible for quite a while on, say, a Raspberry Pi.
I can't always give an accurate response because our scheduling is constantly being derailed by urgent tasks and the not-so-urgent tasks get complete in between.
People just want to know you haven't forgotten about them, throw in some light humour and a "I'll try to get it done before knock off tomorrow <wink wink>" and they tend to let me get back to working.
They add fake "close doors" buttons to the elevators, that arent connected to anything, but make people feel they have agency and it makes waiting for doors to close less frustrating.
 Can't remember which ones exactly.
And now lots of other games and web sites do it too, even compiling Firefox:
The "Stage 5" evacuation completion detection timer in Austin Powers could have used a tad longer debouncing delay:
Saving changes to template...
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.
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.
nah man, that's just straight up Dark Patterns -- https://darkpatterns.org
Like when your 2nd-touch emails technically and legally have an Unsubscribe link, but it's the same color as the background. Or how installing the Yahoo search toolbar was an opt-out with each java update.
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.
How is it not deceptive to make a user wait longer than the task takes? (Perceived benefit aside)
How is it not benevolent to make the progress bar smooth even if the underlying process is not?
Most users don't and shouldn't need to understand a process that may not progress linearly.
The article is pretty clearly operating on a definition of 'deception' where it means showing the user something different than the underlying process.
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?
When dealing with computers however, the time goes from 100ms to 2 seconds. People generally don't mind.
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.
On a computer, however, users generally assume that results are being delivered as fast as possible, even though in reality there's usually other things eating cycles.
Though I did find some steps where it made you think it was checking stuff you could actually hit continue and it would work all the same but cut the animation short.
I wonder if they have focus groups and it works for the masses makes them feel happy or acfomplished, but for the long tail it's just frustrating.
Would be nice to disable such animations.
Indeed. If you have an Android phone you can try turning off all kinds of animations from the dev options. I always do that and my phone feels so much faster.
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.
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.
Windows updates could use this, when it randomly decides to wait 30 minutes on startup despite not warning you and not giving a skip option.
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?
I said more in another comment elsewhere in the thread, but I think outside of stem fields, things often need to be precise and black-or-white... the idea of quantifying the degree of uncertainty ("error bars") is foreign. That's one of the ideas I would try to give the rest of the world.
As a result, it's sort of become my short-work-break game and I keep on thinking that I would play a "real game", if I ever have the time for it.
>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.
Actually, it's called comfort noise, and it's not just for skeumorphism's sake: https://en.wikipedia.org/wiki/Comfort_noise
That's not what security theater means.
This article was seriously one of the most depressing things I've ever read on HN.
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).
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.
So in the real world, time-to-market beats UI truthfulness.
Don't lie to your users, people.
Or disable the button for a second after saved?
Or show a cute little "save complete" icon?
Or autosave on change and disregard the save button entirely?
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.
A related idea: https://signalvnoise.com/posts/1244-defining-the-problem-of-...
I would put these solutions into the same category: accommodating the way the brain works to create an overall more pleasant experience.
You may choose to call it deception, but you probably don't want to live in the world where no one does anything along these lines.
It is far more pleasing to understand what is going on and be able to measure its progress then to be shown a series of arbitrary shapes and symbols that happen to push one's happy buttons.
Stop pandering to your users' mercurial, unpredictable, and manipulable feelings, and start using your software to teach their brains how it all works.
Plus, then I don't finish the interaction with, "well, what else have they deceived me on?"
This is where we agree. If the progress bar is bullshit (like the IE6 loading bar), then it means just as much to most users as a spinning beach ball, but slightly more insulting to the users' intelligence/experience.
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.
Although; in this case; I'd hesitate to call this a strict example of 'benevolent deception'. ;)
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.
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.
Actually more similar to the "close door button" that doesn't actually do anything in a number of elevators:
or, more generally, "placebo buttons":
It seems to be an attempt to increase the tension but the execution is incredibly bad.
I am pretty sure just opening the network tab will show the loading gif.