Status Report! Usability Heuristic #1

The first usability heuristic defined by Dr. Jakob Nielsen is in many ways one of the most basic: Visibility of System Status.

The first usability heuristic defined by Dr. Jakob Nielsen is in many ways one of the most basic.

Visibility of System Status

The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
– Dr. Jakob Nielsen, 10 Usability Heuristics for User Interface Design

Why is this important? Any webpage times time to load, and any software system takes a while to process data. When the user has requested the system to do something, without some kind of indicator that the system is working on processing the request, users can get antsy. “Is the system working?” they wonder. “Maybe I should try clicking/pressing again…” Pretty soon, they look like this while the system is trying to process their request:

giphy (3)

Tell me that isn’t going to lead to errors and/or a complete system freeze up.

The most common design element to combat this problem and communicate system status is the progress bar, which has been with us for decades in the computing world. Depending on what kind of task you are working on, there are several different styles.

Progress Bar 1

To show estimated time left while the computer performs a task, a simple progress bar (with or without numerical percentage) is often used.

Progress Bar 2

To show the users progress through a task, especially a task involving multiple screens or pages, a responsive progress bar is often used. This is common in online payment and online shopping applications.


Progress dials

Progress dials are more commonly seen on mobile devices and present the same information while utilizing less screen space.

So why does any of this matter? Why is it important to let people know how things are progressing, and what how long is too long to wait? Aside from not wanting users to go smashing away at their keyboards thinking the system is broken, letting users know how much time they have to wait reduces cognitive load, which leads to happier and more efficient users (and less calls to the Help Desk). It also gives users permission to do something else, or prepare for the next step in the process, without them worrying they will miss something if they take their attention away from the task at hand.

According to Dr. Nielsen, optimum system response time is less than 1 second in order for users to experience uninterrupted flow of thoughts; anything longer than that may require notification that the system is working on their commands and will be done shortly. At the outside, Dr. Nielsen says that if the system is going to take longer than 10 seconds to finish a task, the system needs to alert them to the delay and give them an ETA for task completion. The 10 second threshold is defined as being “…about the limit for keeping a user’s attention…” but the article was written in 1993 and with the proliferation of smart phones I have a feeling 10 seconds may be a little generous.


  1. […] should be added to a piece of technology to make it easier to use. System status indicators for heuristic #1. More delete confirmations to satisfy heuristic #5. Templates to satisfy experienced system users […]



  2. […] Status Report! Usability Heuristic #1 The Real World: Usability Heuristic #2 I Didn’t Mean It! Usability Heuristic #3 Consistency is Key: Usability Heuristic #4 User, Save Thyself! Usability Heuristic #5 This Looks Familiar: Usability Heuristic #6 Be Flexible: Usability Heuristic #7 Too Much of a Good Thing: Usability Heuristic #8 Congratulations…it’s An Error! Usability Heuristic #9 […]



Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: