What’s going on here
User feedback offers clear visibility of system status by giving users immediate responses to their direct input. Similar to the principle of Effortlessness, user feedback helps people focus on their task by relieving them of the duty of figuring out what the computer is thinking. Furthermore, the quicker the app provides feedback for the user’s interactions, the more responsive the app appears. These days, it’s just expected that programs will offer some type of feedback whenever users interact with it.
Sometimes, a subtle animation is all that’s needed to satisfy user expectations. For example, list items highlight briefly when people hover over them, or perhaps they shift downward when a new row has been added to the list. Buttons glow if they are clicked, or maybe pointers change shape when they move over particular areas of the screen. A system can even get quite sophisticated with these animations. In OSX, when a user minimizes a window, it doesn’t just disappear, but instead smoothly slips into the dock, informing the user where to find it again.
Other times, user feedback is less about movement and more about how a message is communicated. For example, text and alerts should provide simple feedback in language that users can understand. Error messages should avoid technical jargon and instead spell out exactly what problem caused the error (i.e. “There’s not enough space on that disk to save the document”). To further help the user, the system should also explain what possible actions can be taken to remedy the situation (i.e. “Try saving the document in another location”).
Finally, let’s not forget about the use of sound to deliver user feedback. Windows and Macs both have their own jingles when the operating system first boots up. Jumping into mobile examples, all smartphones provide a clicking noise when users type to emulate the experience of using a physical keyboard. Furthermore, everyone probably now recognizes the two distinct and ubiquitous sounds iMessage makes whenever texts are sent or received.
All that being said, user feedback is so much more than just a notification of the state of a program. Case in point, user feedback is great when the app needs to communicate, “I’m listening to your commands,” but it is even more important when the app needs to communicate “I’m thinking about how to respond to your commands and this might take awhile.” This is because for potentially lengthy operations, users are often at the mercy of what the system can to handle, and impatience inevitably sets in. In these situations, user feedback isn’t used to just alert the user of what is going on, but is also serving the role of holding the user’s hand as the procedure progresses.
Basic progress indicators sometimes take the form of a spinning circle, like the loading icon at the top right of a browser. Alternatively, progress bars can be used to offer some quantitative measurement of completion. Consider communicating the total number of steps needed to complete the task (“Copying 14 of 350 files”) or how much time is needed (“45 seconds remaining”). In most cases, users don’t need to know precise numbers, but giving a reasonable estimate is extremely helpful. If a realistic estimate is unavailable, the app is probably better off using a different form of user feedback since there’s nothing worse than having a progress bar blast to 95% and then slow down to a crawl.
Users always appreciate open and honest communication, just like they would expect from any person. Therefore, apps should do its best to instantly acknowledge the user’s commands by giving clear and concise feedback. Done properly, user feedback builds a connection with the user, transforming the system interaction from a routine, mechanical process into an engaging, personable experience.