Software developers are a brilliant bunch. They are highly logical thinkers who can transform software requirements into elegant algorithms, coded for maximum efficiency and speed.
The trouble with software developers is they often think like developers, not like users of their software. What seems patently obvious to a developer can completely befuddle a “real person.”
Why is this a problem?
It’s a problem because what users see isn’t the elegant algorithms and tightly efficient code or built-in security measures. What the users see is the user interface or “presentation layer”, as it’s sometimes known. And all the elegance and brilliance of the underlying code is worthless if the user can’t intuitively use the solution.
The user interface is the face of the software. If the user interface is poor, or the business objectives aren't met, then as far as the user is concerned, the whole thing is useless.
Poor UI Design = Bad User Experience
Because developers, on average, aren’t very good at putting themselves in the users’ shoes, they often make less than optimal user interface design choices. You can tell when you are dealing with software that was designed this way. It will have characteristics such as:
- Cryptic error messages (“Error 0x02A8F47C occurred.”)
- Data entry fields that allow invalid data, such as letters and special characters in phone numbers, or data in the wrong format
- Fields and controls that aren’t arranged in a logical sequence, requiring users to hunt for the next field
- Forcing the user to memorize things (transaction codes, anyone?)
- Requiring the user to enter the same data more than once (a useful exception is requiring users to confirm passwords and email addresses)
…And so on.
Properly designed software should be intuitive, even for complex tasks. Good software helps users complete tasks faster and more accurately. A poorly designed user interface that allows mistakes and bad data or is difficult to navigate, is more of a hindrance than a help. Users of such software get frustrated and sometimes abandon it entirely in favor of whatever manual process they used before.
Put simply, poor user design leads to bad user experience (UX) and less than desirable business outcomes.
The Rise of the UX Specialist
Putting a high priority on UX is something Apple has been doing well since the introduction of the Macintosh PC in the 1980s. Its main competition at the time, the MS-DOS-based PCs (or “IBM-compatible” computers, as they were known then) were direct descendants of the hobbyist computers of the 1970s. They were designed by and for techies that didn’t mind setting jumpers on the motherboard or partitioning disk drives.
With no user-serviceable parts inside, the Mac was considered a “toy computer” by techies and computer hobbyists. Apple’s customers were perfectly happy—to the point of being fanatical—with “the computer for the rest of us.”
The approach Apple took in making a reliable, easy-to-use computer had two main advantages:
- Extensive research was conducted, including software/hardware usability
- Usability principles were strictly enforced
The success of Mac (and its descendants, iPod and iPhone) made software development firms for all platforms understand the need for good usability. And the typical developer wasn’t up to the task. Thus, a new profession was born: the UX Specialist.
UX specialists are “usability engineers” or “UI designers,” but the mission is the same: Design the software user interface in a way that helps users do what they need to do. Make the software a useful tool; not a challenge.
The UX specialist thinks like a user and understands the different types of users, their needs, and pain points. This often means they need to obtain some domain knowledge in the business processes in which the software will be applied, such as accounting, manufacturing, marketing, supply chain management, or specialized fields such as bioinformatics and medical devices.
Above all, UX specialists can’t do their jobs exclusively from their own cubicles. They must go to and interact with these users to truly understand their perspectives.
Top UX Principles
Over the years, the UX specialist community and academic researchers in this area have structured a body of best practices that apply to any software. Here are a few:
- Don’t let users cause mistakes – This principle covers data validation; checking user-entered data for things such as proper data type and format. It also prevents transactional errors.
Certain order management systems allow the user to delete sales orders (as an example) without first reversing or deleting downstream objects, such as shipments. This results in “orphaned” objects that cannot be completed or reversed and require a system administrator to fix. In properly designed software, this problem wouldn’t happen, because the system wouldn’t allow it.
- Follow a logical flow – Arrange data entry fields and/or process stages from top to bottom in a way that would make sense to a user. If there are dependencies among them; if one field cannot be filled unless another has been completed, then disable the downstream dependency until the upstream one is complete.
- Provide descriptive error messages – When something goes wrong, especially if it’s a user error, the nature of the error and the fix should be easy for the user to understand. Moreover, user errors should be identified immediately; it’s extremely frustrating to find out in step 5 that you made an error in step 1.
- Provide feedback – When the user performs an action in the interface, such as submitting data entered in a form, the system should respond: “Form successfully submitted” or “Error: The following fields are required…” message.
When there’s no feedback, the user has no clue whether any action was actually taken, and may try (unnecessarily) to do the same thing again. In cases where there’s a time lag between clicking that OK button and receiving a response, there should be an indication that the system is processing, such as a spinning circle or a progress bar.
But…Why Does UX Matter?
What difference does UX really make? Why go to the trouble of hiring a UX specialist? After all, most PCs sold today use Microsoft Windows, not Mac OS. And people can get used to anything, even poorly designed software, right?
Yes, Windows machines have a much larger share of the PC market, but look what happened: PC makers finally recognized not all of its customers were techies. Windows adopted many of the GUI conventions introduced by the Mac, albeit "clunkily" at first.
Strange behavior can still happen on Windows machines, mainly because no single entity enforces any standards for the hardware or software. Macs, by contrast, are still manufactured solely by Apple.
The mission of a software development firm should be to delight its customers, not get a half-baked product out the door. This should be the case whether it’s a free mobile app or complex custom software costing tens of thousands of dollars.
Software shops demonstrating an understanding of their users’ needs and providing software that meets users’ requirements are the ones that succeed in the marketplace. Those that cut corners in UX get poor reviews and little repeat business.