Baking guidelines for usability directly into development best practices.
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.
User understands the state of the system at all times
Heuristic: "Visibility of system status".
- 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
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
Heuristic: "User control and freedom".
- 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
- Markup is to be well-formed to allow the content to be easily understood.
- 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
- 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)
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