I’ve been using computers continuously since the days of DOS and green screens – probably 60,000+ hours to-date. Like most people in business today, I use the web constantly and spend lots of time in cloud-based SaaS (Software-as-a-Service) applications. I’ve found that many of these SaaS applications come up short on a number of User Experience (UX) features and techniques.
So from an end-user perspective I’ve developed this list of demands (i.e. suggested best practices) for user-centric design. All you UX Designers out there, here’s what I would like to see in your apps:
1. Pop-ups, not screens
Enable hypertext pop-ups on summary fields like a Contact or Account that display a panel with the most-used related data fields – like phone, title, and email address.
This approach is vastly superior to taking me to another screen that requires two response time cycles to access and then return. Display the 6-8 most-used fields on this pop-up and then give me an easy way (like a button) to view the full-screen version with all the fields.
If Wikipedia can manage this technique, so can you! Hover on one of the hypertext links here: User Experience for an example.
2. Default Edit Mode
Display operational screens in edit mode. Don’t force me to endure a response time cycle just to edit a field. The world has been working with Excel and Word documents in edit mode ever since the dawn of PCs, and if you had to switch to Edit Mode every time you made a change to a spreadsheet or document, you’d go out of your mind (or find a different app).
So if you don’t trust me not to mess up valuable corporate data with inadvertent keystrokes, then implement a change log and a multi-level “Undo” button (again, like Word and Excel)
3. Data-dense Pages
Enough white space, already – stop making me page down to find relevant information.
Many SaaS applications seem to be modeled after websites, which tend to favor large white spaces that may be easy on the eyes for a casual user but require scrolling to view more data. (Can you say, “engagement”?)
But in workplace applications, I want denser screens to AVOID scrolling! So show me more data in the first screen or fold, and I’ll scroll with my fastest tool – my eyes.
I’m sure the “real” UX experts will weigh in on the soothing effect of more white space here, and the purported advantages of forced scrolling, but I suspect they’ve been spending too much time designing corporate websites, and not enough time in business-oriented production applications – aka SaaS. So save your surplus white space and scrolling for pretty websites and games…
4. Get me started in the right place
When you display a screen, position the cursor in the field I’m most likely to use first, like Search. Don’t make me locate and click on the field.
This is so obvious, and yet it’s widely ignored. If Google Search can manage this, so can you.
5. Efficient list processing
A high percentage of business data consists of lists – of Accounts, Contacts, and Actions. If I’m working with lists of data, give me at least two major sections – to display the lists on the left, and the details for each list item on the right.
So when I click on one on the left, I get related details on the right, instead of costing me two response-time cycles to take me off to a detail screen and then back to where I was in the first place. And enable hover text on BOTH sides of the display to save even more time for the most-viewed fields (see #2 above).
6. “Modern” Search
When you present me with a search field, start searching as soon as I stop or pause typing, perhaps after one second or at least 3 characters. Don’t wait until I hit enter to start processing the search.
And autofill the most likely entry based on past inputs. Then I can easily arrive at the selection I want. But don’t piss me off by locking the system while you process the search; allow me to continue typing (like MS Word’s auto-fill) to narrow my search.
And if you want to present me with a drop-down list of possibilities, highlight – and auto-select – the top choice so I can just hit “enter” to select it, rather than making me look at the keyboard to find the down-arrow and select it or take a chance that the Tab key won’t take me to the next field instead.
7. Search within Lists
Not just for the entire page or application. I want to avoid having to scroll and endure lazy loading for long lists like Contact Names and Activity or other historical data that could be years-long. Let me search on a list and then show me all the matching entries in the drop-down, and let me choose the right one, ideally via the Enter key for the closest match at the top of the list.
8. Smart Tabbing
Skip fields that are already filled in or rarely used (like “Fax Number”). So that once my hands are on the keyboard to exercise a task, I can easily jump to the next key field or the Enter key without having to switch back and forth between the keyboard and mouse.
Ideally, if I’ve edited a field in a pop-up panel, skip over the “Cancel” button and sequence straight to “Save” after the data fields. And vice versa; if I haven’t made a change, go directly to “Cancel” (and gray out “Save”). This feature also saves on the server load, because “Cancel” doesn’t require a database update, right?
9. ESC key to close Pop-ups
The Escape Key goes back to the early days of IBM mainframe computing and the ASCII data interchange standard. And it has persisted on most keyboards as the upper-left-hand key.
It’s positioning makes it ideal for interrupt or end-functions, where the user has their right hand on the mouse, but may inadvertently open a pop-up. At this point the left hand is doing nothing (one would hope) and could be positioned over the ESC key for a quick-exit. (And yes, for Lefties the far upper-right key on the keyboard (the little-used F19 on Macs) can be reconfigured as the ESC key).
So if you subscribe to #1 above about Pop-ups, enable it!
10. Optimize performance for me, not your dang server farm!
Response time is an absolutely critical aspect of User Experience. In the age of PCs with near-instantaneous response time for just about every local action, multi-second response just makes “SaaS” seem like “Slow and also Slower.”
Most SaaS Service Level Agreements that I’ve reviewed state a target of 3-5 second response time that is “often better” (but usually is not). When I’m busy – and who isn’t these days? – multi-second response time just stalls my forward progress. And the occasional 5-10 second wait drives me out of my mind.
After all, who is the more expensive resource here – the $100K+ professional or the $5K server blade the app is running on (and supporting 50 users?)
Feedback?
Thanks for listening to my ideas. I’d love to hear your comments and suggestions, from both a User and Designer perspective:
- Users: Do you agree? Got any pet peeves in UI/UX design I didn’t cover?
- Designers: Do you think these rules are workable? Any rules you would add?
And if you’d like to see a SaaS application that follows these rules, take a look here: Leaping Fox
