Designing for a great user experience: how hard can it be?

by Lana Brindley, Dec 13, 2017

It doesn't matter who (or what!) writes your software, in the end it is going to be used by a human. And humans have things that they like a lot, and they have things that they don't like. Sometimes, there are things that humans downright hate! What's the trick to making software great? Make the experience of using software great!

Consider your favourite social media site: it might be Facebook, Instagram, Snapchat, or Pinterest. What do you like most about it? Yeah, there's the ability to catch up with friends, sure, but what about how easy it is to scroll through a few posts while you're waiting for the bus? Or to upload a picture of your lunch and get a few likes before it goes cold? Or the way you can quickly shoot off a message to a friend when you're running late? All those things are what software developers and designers call UX, or User eXperience. And if you're making something new, you need to make sure that your users don't just use your software, but really enjoy the experience of using your software.

In this post, we're going to take a look at one of the ways UX designers go about creating software that is a pleasure to use by creating  MVP user flows, which describe all the different interactions a user will have with your software. Our UX designers recommend building on a per user story basis, because these represent goal-driven, end-to-end actions.

A little while ago, we taught you how to create a simple database to loan books to your friends. This time, let's design an app to make managing that easier.

What's the project?

The first thing we need to do is work out who is going to be using our app. In this case, our main user is going to be people who want to loan out their books. They're going to need to do things like add their friends' details to the app, scan the books' barcodes to add them to their library, make them available to borrow. And then they'll need to loan their books out, and mark them as returned when they come back. They might also need to do things like view reports of books that are still out on loan, or change the address of their friends when they moved house. You can see how this can become quite complicated once you start thinking about it! 

It's also important to consider things like what do your users want, and how do they feel about doing this? Are they likely to be in a hurry, or stressed, or in bad light? These are all things that can change how they will interact with our system, and how we need to present information to them.

How do we map the user flow?

Today, we're going to look at designing the page for loaning a book out to a friend. The main actions that need to happen in this case are:
  • Select a friend's name from a list
  • Select a book to be borrowed
  • Save the entry
These are all things that your user needs to do, but it doesn't explain what they see. Perhaps it looks something like this:
This is a very simple example, with only a couple of steps, but it doesn't take much more in an interface for a user flow map to become quite complicated. UX designers spend a lot of time getting their maps as logical and user-friendly as possible.

That looked too easy: why bother?

Creating a word user map like this one is something you do very early, before you write a single line of code. It's a way of testing your ideas early, and making sure things are going to work like you expect them to. User flows like these are easy to write and maintain. They're flexible and they allow you to test your ideas early and cheaply. It is much easier and quicker to make changes at this stage than it is once you have built your database and written the code!

What comes next?

Once the mapping has been done, it's time to actually start building software! Whether you are creating it by hand, or having a robot help you out, having a good (well-tested) user flow map will help make sure you have consistent and easy-to-use workflows, and your users will be able to do what's expected of them.

But that's not the end of the story. We still need to test it. UX designers use a few different testing methods to make sure they've gotten things right. And because what you're testing in this case is how humans work (do they like that colour? Is that button easy to find?), you need to test it out on humans! So most of the time, testing for usability is about handing the application to real live humans and asking them what they think. Once you have some feedback, you can update your program to make it even better, and get to work on making the next project even better.

Codebots aren't good at working out what humans like

There are some things even our super-smart codebots can't do, and it's usually things such as working out what humans like and don't like, what we're good at and what we're not. If we let robots do all our designing for us then everything would look pretty boring. So, when it comes to designing a project that's not just easy to operate, but also pretty to look at, and fun to use, the bots need our help.

Having a great UX design before you begin coding is the key to creating great software, so make sure you have a designer to help you out with those things. Or, better yet, consider upskilling yourself, and doing a course to get the basics of UX design down. 

And don't forget that, once you have your UX design nailed, you can always use our Academy to turn that great design into great software. You'll thank us for it, when your app becomes the next Facebook, or Pinterest.
The Codebots platform will be released in 2018. Click here for early access.