News Flash (not): Attention spans have been decreasing.

I'd argue that this is been taking place ever since the first TV remote control was sold.

As an end-user, I know you've stared at a spinner wondering if the process has stalled. When do you give up?

As a developer, it's much easier to throw in a spinner than a progress bar that actually tells the truth.

tl;dr

4 Second Rule

  • process < 1 second => show nothing
  • process < 4 seconds => show a spinner
  • process < 1 minute => progress bar with % done
  • process > 1 minute => progress bar with time remaining

A researcher at University of Nebraska-Lincoln has helped us as developers, and thus our end-users. Users expect our apps to have no lag time, wether that's downloading an image, pdf, or changing to a data/graph heavy view.

Go look at the Tables in the research report and you'll find a lot of very interesting tidbits:

  • A delay of 2 seconds is the limit before interference with short-term memory occurs
  • A delay of 0.1 second is perceived as instantaneous access
  • A delay of 1 second is the limit for users' flow of thought to stay uninterrupted
  • A delay of 10 seconds is the limit for keeping users' attention/focus on the dialogue
  • A delay of 2 seconds is the limit where response to simple commands becomes unacceptable to users
  • A delay of 12 seconds causes satisfaction to decrease
  • A delay of 4 seconds causes performance and behavioural intentions to stabilize whereas attitudes remain unchanged after delay exceeds 8 seconds

- Nah, F. 2004, A study on tolerable waiting time: how long are Web sures willing to wait? Behavior & Information Technology

What does all this say? We're one impatient group. Keep that in mind when you throw a notification in your code (and please, when you use a progress bar tie the progress into the actual event, it's not that hard now-a-days).