Skip navigation

Product Leadership

Software Usability Non-functional Requirements

Christan Fergus


Published 2019

Role: User Experience Strategist

A sketched image of a person with a check above their head indicating a satisfied user of a system

Baking guidelines for usability directly into development best practices.

Overview

This is an example of non-functional user experience requirements I have developed over the years. This set of requirements serve as a development guide, and are designed to be augmented and modified to a team and product's requirements. The requirements match and are intertwined with the generally recognized 10 usability heuristics for interface

This list is by no means exhaustive. However, this set can serve as a good baseline and starting point for any software application.

Requirements

User understands the state of the system at all times

  • The user should know their actions are being interpreted by the system
  • The user should know if something is loading as a result of their action
  • The user should be prompted by the system if something requires their attention or action

Heuristic: "Visibility of system status".

Processing & Response times

  • Pages and data should load w/in n seconds
  • Components should update w/in n seconds after the user makes a request
  • Provide an indication the system is working

Do not refresh the page for new or updated content

  • Components and their data should update independent of the page
  • Do not perform page refreshes for new data unless the user is navigating to a logically different area/page of the site

User has control of how they navigate through the system

  • Do not move the user to another page unless they choose to do so
  • Do not place the user in obscure locations in the system
  • Warn the user if they are about to leave the website or software product, and give them the option to abort or proceed

Heuristic: "User control and freedom".

Accessibility

  • Markup is to be well-formed to allow the content to be easily understood.
  • Where at all possible, the content should be available and understandable when styles and JavaScript are not enabled
  • Colors and contrast should be tested to make sure they are visible to anyone with most sight disabilities
  • Important content should be immediately visible in the UI—Do not reveal important content via gestures, mouse hovers, or clicks

Front End Accessibility

UX, UI developers are able to audit front end pages and understand, at least on a basic level, what the code is doing

Security/Roles

  • The application must support multiple roles associated with the logged in user
  • The application must allow UI elements to be shown to the user that are relevant to the user based the their specific role(s)

Localization

The system must use localization techniques that will allow for strings and other elements (such as dates & currency) to be localized to match the user's preferred language and culture