User Experience Design is a field which has been around as long at computer science itself, but has only recently come to the fore in the world of software development. While it’s been an important component of the work we do for some time, I’ve recently realised that it’s actually much more than that. It isn’t a component of what we do, it is the entirety of what we do.

How is a user to see the hard work we put in to fashioning a particular system, if it’s not through the use of that system? Their experience using the system is key to what they think of it, and the benefit that they get out of it.

When they encounter a bug with our software, it’s a failure of user experience. The “user” should not have “experienced” a bug in the system. When we build software, we try our hardest through all sorts of techniques and practices to create a system that is bug free. We are unconsciously thinking of user experience, even if we’re not aware of it.

Obie Fernandez recently gave a talk in which he made the statement “Perception is Reality”. He’s right. What a user perceives to be the case with the software they are using is what is real to them.

What use is it if our software is beautifully designed internally, but pig ugly to look at and difficult to use? The user’s perception of the software will be that it’s bad software. We might disagree with them all we like, but their perception is impossible to change, and we shouldn’t try to change it. Let’s instead change our software so that it’s perceived to be good software.

User experience goes so far beyond the common notion of “web design”. It’s everything about the site that the user uses and interacts with. It’s the feeling the user gets when they “open the box” - the login screen, the page load time, and the blank state. It’s the presence or absence of features. It’s the ease of accomplishing difficult tasks.

An important corollary to this is that it’s not desirable to build a piece of software that looks and feels beautiful, but internally is poorly implemented. It’ll become obvious, especially over time. The system might work after a fashion now, but inevitably most software will need to change over time. If the cost of change is high the user experience will eventually diminish, as the essential features will be difficult if not impossible to finish.

What does all this mean for web developers? We must pay the same attention to how something feels to use as we currently do to how it works. We should ask ourselves: does it move well? Do the pages and clicks that make up the feature flow just so? Is it juicy?

Is the user thinking about the task they want to perform, or how to make the system we’ve written do the task they want to perform? It’s a subtle yet crucial difference.

The last 5% we need to put into a feature will probably take us 50% of the total effort, but it’s worth it. It’s the last 5% that helps our web app rise above the sea of mediocre sites out there and be something truly great. It’s doing the last 5% that separates great developers from merely good developers. Who wants to be merely good?

User experience is everything. What can we do to put in that extra 5%, so our users can experience something wonderful?