There are many aspects to consider when defining what constitutes a well-designed system. Performance, security, maintainability, and sustainability are just some of the many variables determining software quality. This article series will explore user interface design and experience, commonly referred to as UI/UX, per best practices established by Jakob Nielsen, a Danish researcher and consultant by many considered the guru of usability. This article will look at his first heuristic: Visibility of system status.
“The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time.”
There is no doubt why this is the first guideline on the list. Have you ever clicked on a button, only to be left anxiously staring at it for a few seconds, waiting for something to happen? Then, you click again, to be sure, and nothing happens again? Pretty frustrating, right? That is a classic example of a lack of system-user communication.
Think about it this way: when someone uses your application or website, there is an interactive dialog going on. The user clicks, the app responds. Then, the user does something they shouldn’t, and the app reacts again. In an ideal world, the conversation between software and user should be clear, concise, and constant. The point is: to make users comfortable, they must feel in control. Without proper communication, the feeling of control is lost, and therefore, user experience is negatively impacted.
Of course, users are not looking for feedback on every little thing they do. However, common sense is your friend when designing user interfaces for your systems. For example, if a relatively long operation is started upon a button click, it might be good to present the user with a status bar, keeping them in the loop on what is going on. Or, when data is input in the wrong format, real-time validation is much welcome, informing the user right away that something doesn’t feel right.
At the end of the day, the whole point is to provide users with closure, letting them know that their action went through and reaffirming their expectations. If the system needs time to complete that action, users should know about it. If the operation is successful, they will be happy to know. If an error is encountered along the way, they should be notified, too. Remember that your application must be user-centered; that is, users are the main drivers and stakeholders. They are much more likely to cooperate and collaborate if they feel the application is responsive and puts them in complete control.
About the Author
Luiz Parente is a senior software engineer who is passionate about systems design and technology. Having started his journey in computer programming at the age of 14, his core expertise is centered in solutions architecture with .NET technologies.
Follow Luiz on LinkedIn