# Usability and You

There's plenty of things we have to be versed in as designers and developers, but few have the potential to come as naturally as user experience does. What is it? Why should we care? More importantly - how? Here are a few of my thoughts on it.

--- 

## What Usability is all About
Users. Whether they're internal or external, or another application using our project - our day-to-day efforts ultimately come down to providing them with uniqueness and value. But ask yourself, do you truly understand them? Do you know everything they need and want from your product or service? Can you confidently say there is no way you could improve whatever product or service it is you provide them with? If you think you can, you might want to reconsider because people don't simply 'use' your software - they have to communicate with it, and vice versa. That, I believe, is the essence of user experience.

So what is the user experience (UX)? UX boils down to how we as software teams create a positive, emotional response for the users of our application. There's a great deal more involved than simply selecting nice colours, and a great deal of it is surprisingly intuitive. To get this ball rolling, however, we should question a few crucial things:

- Who is the audience?
- Do we understand their **needs**? What are they? (conscious and unconscious)
- Do we understand their **desires**? What are they? (conscious and unconscious)
- How are they going to interact with it?
- What is the end goal of the product?
- What is the end goal of the user when using our service?

I believe that in order to comprehend how to go about designing and developing our shiny new application (and even how to improve existing ones) that will meet the basic principles of [Usability](https://www.usability.gov/what-and-why/user-experience.html), we have to be able to decipher the answers to the above. Bear in mind, the above is a rather high-level overview, and that there is no one right answer - it's circumstantial.

It's important to differentiate between the user needs and desires, as our users are likely to know only a fraction of the functionality, features, or UX enhancements that will ultimately end up in the product. These are the conscious and unconscious requirements. Nothing new, but something to keep in mind. However, be careful not to stray into feature saturation; if our client wants our toaster to take 2 slices of bread as input, process them and return two toasted slices - offer them exactly that with enhancements such as choice of how long to toast, or optimise for different slice sizes. Don't integrate a cocktail maker and weather API into it.

Usability is all about how you approach providing that UX, and how pleasant it is - it's a set of processes and thought patterns that you can utilise to give the best experience possible, to the widest range and type of users possible because let's face it, you can't please everyone. Let's run through the following core principles and example a few with a simple self-service loan/returns app for a library:

## Core Principles of Usability
Let's look into the core principles of usability and example a few with a simple self-service loan and returns application for a hypothetical library, Good Books.

### Useful
Ultimately, you need to provide some kind of functionality. Whilst a mobile game that provides hours of goal-less, repetitive swiping can be excused as beneficial for stress relief, generally, this refers more to services that provide specific functionality that can enhance the user's life. For example, our library app needs to have a set of fundamental actions to be useful such as adding new books, logging who is borrowing what book, the dates of when they're borrowed and returned etc. Without such things, it's rather redundant. And the functionality it has, need to contribute toward an end-goal for the user. That's what makes it useful.

### Findable
Both the product and its subsequent content should be findable, searchable and logically structured. These terms (and many more) fall under [Information Architecture](https://en.wikipedia.org/wiki/Information_architecture). Can't find it, can't use it. Simple as that. If a newspaper isn't logically categorised into news, finance, and sport, or if a dictionary wasn't correctly indexed - what would the experience be?

### Credible
While it could be argued this is less valuable in this model in recent years, what with brand loyalty and countless media stories regarding who is doing what with your data while people continue to use said service - it still matters. Particularly in our industry. What if our library management application was requested by a high-profile educational institution in their library? Would plastering pop-up adverts throughout the application reflect upon your employer or the client in a credible manner? Is it even an appropriate setting for such a request?

### Desirable
Often, this is conveyed by visual design and marketing. You need to get that hype-train rolling. Would our library application be a boring, black and white text interface? No! Would it be something you deploy and run away and hide from? No. Kick up a fuss! Show off that beautiful, user-friendly interface crafted with user suggestions. When people ask _"Why should we come to your library?"_ you tell them how this easy-to-use, the intuitive application allows them to borrow and return books 75% faster than traditional, people-based methods!

### Accessible
This is a **big** one. We need to account for a range of usability scenarios. What happens if we implement this system with the only method of interaction being via touch screens and a mobility-impaired user encounters it? Did we build in a voice-command system? Taking the time to think through issues such as these will often lead to creating a superior service/product, and certainly the UX, because we've invested considerable thought and time into the potential audience.

### Valuable
This one's all about delivering value to both owners, adopters, and users, else why bother. If our library application makes the process of borrowing, finding and returning books harder, then our contract is going to be rather short-lived. Ultimately, it needs to benefit the user's lives. Whether that be in time savings, positive experience, ease-of-use, provide an information point, act as a fast way to subscribe to the library - whatever it may be - it's our job to make them **want** to use it by showing them how it'll benefit them. Which in turn, will benefit us as the developers and the company we and our work represents. After all, we all have to win our bread somehow.

In today's modern, mobile, fast-paced world I might add the following myself:

### Adoptable
How easy are we making it for the user to migrate to our product or service? It's highly unlikely it's the only one of its kind, therefore it's also unlikely that the user doesn't already use something similar. So what are we consciously doing to encourage and subsequently ease their transition into our ecosystem? For example - it's remarkably simple to move between Android and iOS these days. Two vastly competitive ecosystems where it feels as though it has been a matter of years since they finally acknowledged one another by creating Android to iOS tools and vice versa. This dramatically enhances the UX and adoption statistics for both platforms as it reduces the barriers to migration.

Now, this is a very high-level model which is applicable to many walks of business. But if you consider each element with regards to software engineering, you'll start to see a picture taking shape. Then once you look into usability and UX models specific to [Software design](https://msdn.microsoft.com/en-us/library/ms997577.aspx) or [development](https://msdn.microsoft.com/en-us/library/ms997575.aspx) or [platforms such as mobile](https://www.nngroup.com/courses/usability-mobile-websites-apps/), that pictures going to jump up, dance around and slap your face.

![usability-stack.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1621358236421/i7hl7lNWY.png)

Let's not forget [Jesse James Garrett's "Elements of User Experience".](http://www.jjg.net/elements/) This book gave great insight into the big-picture perspective on Web user experience enhancement. A notable model being the above - a great visual description of the journey you must accompany your product or service on through the UX "stack". The strategy being the most important - this will be where most of your thinking power goes. The higher up the stack you get, the easier it gets, as solid execution of one provides a strong foundation for the higher tiers.

As you'll see over the coming years, I'll work to incorporate many of the above concepts into my work, delving deep into the heuristics of each point, as we all should.  Of course, you could make a career out of analysing these and further developing our understandings of how to improve this field - and to those who do I take my hat off to you - but let not lose sight of the scope of this post which is to simply bring the concepts to the forefront of our developer minds, encourage discussion and ultimately for us all to learn something about how we should consider our users.

