Designing Software With the User in Mind

When designing software there is a distinction between what it is technically possible for your users to do with the tools you provide (i.e. the “features”) and what your users are practically speaking able to accomplish when they interact with your product. Even if it is technically possible to do something with your software, users may not understand your interface well enough to accomplish it or they may not like the workflow involved in accomplishing it (e.g. if it requires hot keys as opposed to mouse clicks). In other words, there is a layer of psychology between the software you build and the value users get out of that software. User Experience (UX) design is a field that focuses on the value users get out of your software products. In this blog post, I will discuss three UX principles Extract considers in the design of our software.

 

1. Reduce Cognitive Load

In this context, cognitive load refers to how much information a user must keep in their mind at one time while using your software. Human beings have a limited capacity to maintain information in their working memories, and we certainly do not want to overwhelm those limits. What makes matters worse is that our users do not come to our software with a completely blank mind—whatever we are asking them to mentally process must be in addition to whatever else they have to think through at any given moment. It is thus important to minimize cognitive load wherever possible.

Two ways we reduce cognitive load in our software is to keep our interface simple overall (to avoid mental energy spent figuring out how to accomplish something) and to group related interface elements together (to avoid asking users to waste time searching for related functionality). Regarding simplicity, we work with our customers to identify what the core needs of their workflows are and limit our interface elements to just those actions. Furthermore, we make sure that interface elements are organized so that like functionality is next to like. For example, in our toolbar we group buttons into three groups: high level document manipulation, within-document search, and redaction tools:

The redaction toolbar

The redaction toolbar

2. Accommodate Different Users

We don’t include “user” in UX for nothing! It is of course vital to consider what your users want to accomplish when you design software, but one thing to keep in mind is that even users that want to accomplish the same thing can have different needs. Regardless of what software you are creating, two types of users to always consider are novice users and disabled users.

Often new users will supplement any training they receive with intuitive exploration when using software. To give these users every chance to succeed we offer three different methods to accomplish every task (without introducing additional interface complications per principle 1):

  1. Mouse-driven: All actions they might want to perform correspond to one of a limited set of icons visible on the screen

  2. Menu-driven: if they prefer or need text-based navigation we offer menu navigation in the upper left organized in the typical “File – Edit – View – Tools – Help” arrangement they are likely family with from other software. All functionality is findable in these menus.

  3. Hotkey-driven: all interface elements have a corresponding hotkey for keyboard driving workflows

Finally, as a bridge between the different workflows and as an additional help for novices, on-hover tooltips are included for every interface element.  

One way we keep visually impaired users in mind is the inclusion of an optional “magnification window.” This will always show an enlarged view of the area around the mouse pointer.

Magnification window

Magnification window

3. Make User Interfaces Consistent

If you create different apps it is a good idea to keep the interface elements as similar as possible. This is especially true if the same users might use two or more of your applications. At Extract we support multiple apps, from redaction to indexing to extraction. We keep the organization of our interfaces identical, only changing individual elements as needed to support the different workflows. 

Compare a screenshot of our government redaction software with one of our healthcare extraction software:

Our redaction application

Our redaction application

Our extraction application

Our extraction application

Conclusion

Careful consideration of UX design is vital to make sure users are extracting the value you want them to from your product. UX is a multifaceted topic which can encompass, among other things, what the user is thinking, what the user is comfortable doing, and what the user is expecting based on their experiences with your other products. Make sure to keep the user in mind in your design as you implement features in your software!

 

Sources:

https://www.usability.gov/what-and-why/user-experience.html

https://www.interaction-design.org/literature/topics/design-principles

https://uxmag.com/articles/guiding-principles-for-ux-designers

https://www.lollypop.design/blog/2019/august/7-ux-design-principles/

https://xd.adobe.com/ideas/process/ui-design/4-golden-rules-ui-design/


About the Author: Branden Bryan

Branden is a Project Manager and Customer Support Specialist at Extract with over 3 years of experience as a technical solutions engineer at Epic Systems. He earned a Bachelor of Arts in Neurobiology and Philosophy at Cornell University and is currently working on a PhD in Cognitive Science at Indiana University, Bloomington. Branden loves cooking, mixology, and games of all kinds.