18 ms·
Why some apps use fake progress bars (2017)
- tomc1985 9y agoDeception is NEVER benevolent. Don't lie to your users, people.
- jbarciauskas 9y agoOur brains are funny things and there are lots of ways to hack them to make the world a more enjoyable place. A related idea: https://signalvnoise.com/posts/1244-defining-the-problem-of-elevator-waiting-times 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.
- tomc1985 9y ago> overall more pleasant experience 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?"
- nasso 9y agoMaybe for you but i dont think that is true for a majority of the population.
- hinkley 9y agoSo 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?
- codycraven 9y agoWhy wouldn't you instead show a timestamp of the last save, giving confirmation that the save really went through?
- tomc1985 9y agoOr a quick tooltip that flashes "Document saved" before disappearing? 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?
- paulcole 9y agoOr just give a save button because that’s what people expect and want?
- deecewan 9y agoOur 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.
- starsinspace 9y agoTypically, applications disable the save button when there are no changes that could be saved.
- tyingq 9y agoIt's visual "proof" that the app itself isn't hung. I agree that you would have to be careful with the text, but progress bars do have some value.
- miketery 9y agoI disagree. There's a difference between a progress bar that could just be a spinner or no progress bar at all because it's fake. And a progress bar that attempts to communicate real progress.
- tyingq 9y agoFor me, a spinner doesn't say much, because it could just be something like an animated gif, while the app itself is hopelessly out to lunch. Knowing that at least one thread is working in a long running task is calming.
- vortico 9y agoNo it's not. It doesn't prove anything, and there are ways you can prove it that don't deceive the user, like a status message at the end or a change of button text. The value of a progress bar is for the user to see the state of a background process, not to see whether it suceeded. Don't assume that all your users, or even a small proportion, think this.
- tyingq 9y agoI'm not suggesting deceiving users. I'm suggesting a spinner isn't much proof of the app not being hung. Some kind of updating status or progress is, assuming it's not complete bullshit. I can see cases where "slightly bullshit, but somewhat true" is better than just a spinner or unresponsive UI.
- vortico 9y ago>Some kind of updating status or progress is, assuming it's not complete bullshit 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.
- wanderingstan 9y agoA 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.
- labster 9y agoDoes anyone have more information on the Houston airport case? Because I can imagine how moving the baggage claim further from the gates could result in actual efficiency improvements if it's closer to the exit.
- XorNot 9y agoTravel is all about mass human psychology management anyway - why do you get a meal on flights? Because people who've eaten are more docile, on average.
- Spivak 9y agoI feel like this phrasing makes it sound way more dystopian than it actually is. People who are tired or hungry are quicker to snap and notice the little discomforts of the plane. It's not that they're more docile, is that they're more content because it's easier to relax.
- matte_black 9y agoIn China I was part of a flight that got so delayed and had so many people complaining and shouting that they brought out free meals for everyone to calm them down.
- 9y ago
- brlewis 9y agoThis 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.
- tomc1985 9y agoI would think that fake progress bars about "triple checking" your taxes would fall into that latter categorization.
- miketery 9y agoDefinitely, that one is bad. I don't care for you to show me what you did in an animation I just want to go to the next step. Stop wasting my time. 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.
- dingo_bat 9y ago> 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.
- floren 9y ago"The security theater appeared to work." (referring to a fake progress bar in a game) That's not what security theater means.
- rdiddly 9y agoStupidity theater maybe? This article was seriously one of the most depressing things I've ever read on HN.
- franciscop 9y agoSorry about that, it was sad but still felt it was interesting enough so I shared it here.
- benjohnson 9y agoI 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.
- tyingq 9y agoVisual confirmation that it isn't hung, I'd be happy too.
- digi_owl 9y agoI am reminded of a webcomic, that i fail to locate at this moment, that reminded me of the practice of placing something next to a progress bar, like say during a Windows 95 install, to check if anything is actually happening.
- reificator 9y agoI do that whenever I have to wait on a progress bar. I zoom in with whatever accessibility options there are, then when a pixel is 3-5mm I put my mouse cursor at the end of the bar and wait.
- escherize 9y agoWow, I thought I was the only one.
- grkvlt 9y agoTo save time in the future, bear in mind any time you think you are the only person that does or notices something: you aren't. This is due to the fact that people are all running on the same physical architecture, with very similar cultural and social ecosystems, plus the law of large numbers. Note that this does not apply to edge cases such as people engaged in activities or domains with a very small number of participants...
- so33 9y agoThe 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 9y agoI'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 9y agoThe 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.
- jakobegger 9y agoInteresting, I didn’t know that.
- kaslai 9y agoMy 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.
- bitwize 9y ago
- quickthrower2 9y agoReminds 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.
- noisem4ker 9y agoSame as Explorer, the file browser. Once you know, it's useful as a timeout meter, i.e. it signals "how long before this device/network location is deemed unreadable".
- pbhjpbhj 9y agoWouldn't an actual timeout timer be more useful, like when Ubuntu is booting/shutdowning it gives a "job is trying to complete" message and a 90s (say) timer before it ignores it and carries on. 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.
- saagarjha 9y agoWindows still does this when searching the hard drive.
- jakobegger 9y agoThey 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 9y agoI'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.
- settsu 9y ago> (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.
- dawhizkid 9y agoI 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 9y agoHave you considered how much accumulated lifetime is wasted by all those 3 seconds again and again?
- TheCoelacanth 9y agoHow much time would be wasted by users trying again because they think that first time didn't work?
- osteele 9y agoRelated: placebo buttons https://en.wikipedia.org/wiki/Placebo_button https://en.wikipedia.org/wiki/Placebo_button
- anonymfus 9y ago> 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.
- iampims 9y agoTurboTax 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”…
- staunch 9y agoSimilar 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 9y ago>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-close-door-button-elevator-scam-Manufacturers-reveal-buttons-make-no-difference.html http://www.dailymail.co.uk/sciencetech/article-3880250/The-c... or, more generally, "placebo buttons": https://en.wikipedia.org/wiki/Placebo_button https://en.wikipedia.org/wiki/Placebo_button
- makecheck 9y agoI’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.
- sova 9y agoBy 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.
- vortico 9y agoThis 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 9y ago> 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
- scarface74 9y agoI 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 9y agoIf that's not a psychology hack; I don't know what is.
- c3534l 9y agoDr. Phil?
- ateesdalejr 9y agoI'm sure Dr. Phil comes at a close second. ;P
- cyberferret 9y ago<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.
- underwater 9y agoA 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 9y agoThis 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 9y agoI 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.
- underwater 9y agoDefinitely not an RPC. The animation takes about 8 seconds, and if you force close the app during the animation you can reopen with the final state resolved.
- mattschmulen 9y agoIn 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.
- 0xBA5ED 9y agoI 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.
- everybodyknows 9y agoTwo 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.
- ppbutt 9y agoSo not only are they wasting everybody's time via the useless animations in the software that people pay good money for, but they're also wasting people's time by not being honest about it - forcing users to do their own research and learn about it on their own or from outside sources. Interesting.
- jonplackett 9y agoIf 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 9y agoBonus points if you trigger the "Human VonNotachatbot is currently typing..." indicator during the artificial delay period.
- dsign 9y agoI recently contacted the sales chat of a company and they were typing too fast. The guy reached out by email later saying he was not a bot, but to this day, I'm not 100% sure.
- c3534l 9y agoSo you're telling me that SimCity isn't really reticulating splines during loading?
- archgoon 9y agoIn 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 9y agoAlmost nine thousand lines of Javascript to show a fake loading screen for a few seconds...
- emodendroket 9y agoSo, 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. :)
- TwoBit 9y agoI 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.
- badsectoracula 9y agoReminds 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 9y agoCool 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.
- Sylos 9y agoI notice that with Minetest, which is essentially an open-source Minecraft clone. I can go from desktop to walking around ingame in about 3 seconds (and my system is not actually particularly powerful). 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.
- homero 9y agoOne of my sites has a whole fake interstitial page, people love it
- billfruit 9y agoA 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 9y agoThat'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.
- seanwilson 9y agoMore 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 9y agoOr 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 9y agoYep, 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 9y agoAfter 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.
- yason 9y agoA 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.
- ape4 9y agoThe Uber app shows a bogus map animation when its "locating 3 cars in your area"
- hartator 9y ago> 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.
- noblethrasher 9y agoDon 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).
- abimaelmartell 9y agoI immediately thought about TurboTax when i saw the title.
- sebnukem2 9y ago> "[Intuit] regularly lobbies to keep the complicated U.S. tax code in place, and opposes proposals that would radically simplify it." Nice.