UX: Creating natural experiences with feedback loops

Nick Morgan-Jones
code & co.
Published in
10 min readMay 10, 2018

I’m not a good morning person.

When my alarm goes off I pretty much just roll to the edge of my bed, slap in the general direction of the sound then I just sit there waiting. I hear the bathroom door open after my flatmate has had his morning shower and on cue, I’ll finally get up. But I’m in zombie mode at this point. I’ll get a glass of water, mooch around the flat and without fail, I’m usually the last to leave, so I’ve got to lock the door. Then I’m on auto-pilot all the way to work as I get on busses and trains, carefully avoiding any sort of conversation on my commute. And it’s only when I get to my desk that I finally switch on.

This made me think.

We live a surprisingly large amount of our lives on auto-pilot. As we go about our daily lives, we’re not really thinking when we do most of the things we do. As a UX designer, it’s my job to understand how people think and translate that into intuitive experiences. But if we’re not even thinking when we’re having these experiences, surely that needs to be taken into account when we design them?

How can we design the best experiences?

What takes an experience from a good experience to a great experience? We’ve all used apps, even our own designs, that have all the ingredients of being a great experience. The step by step flow is well thought out and intuitive. The UI is beautiful. But something about the way it works makes it feel a bit broken. Often we can’t quite put our finger on why it feels broken. It just does. And obviously we all want to have and create experiences that feel the opposite of broken, ones that we understand and that feel natural when we have them.

So how do we create an experience that we understand? As UX designers we are creating experiences. Not just apps, but real experiences. So our designed experiences should work the same way as real experiences, right?

Well let’s look at how we process and understand real experiences and the world around us.

Feedback Loops

We essentially understand our environment by interacting with it, measuring how it responds and then learning something. These are feedback loops. For every action there is a reaction. We can then make a decision based on that reaction.

Feedback Loop

These exist literally everywhere.

What happens if I clap my hands together. It makes a sound.

How heavy is an object? I pick it up and I can feel its weight.

Whatever we interact with, we get some sort of feedback that we process into an understanding of our environment.

And we rely on experiencing these feedback loops over and over again to reinforce that understanding. That way we don’t have to think about feedback loops every single time as if it were the first time experiencing them. So most of our knowledge of how the world works goes into our subconscious mind and we rely habit and patterns to go about most of our daily lives.

While our actions are performed by our conscious mind, most are driven by our subconscious mind.

If we look closer at some of the tasks we perform every day, we can see what part of our mind is really concentrating on what:

When I lock the door as I’m inevitably the last one to leave my flat in the morning, I turn the key and I go about my day. But if we look closer, it’s only really when I hear the sound of the lock clicking into place that I know the door is locked. It’s feedback like this that our subconscious mind in listening out for.

Now imagine if I were to perform the same task but as I turn the key, nothing happens. Without that feedback loop, how do I know the door is locked? The feedback loop is broken and suddenly something doesn’t make sense. I’m confused.

All of our experiences are full of feedback loops, even for the tiniest of actions we there will be some sort of reaction. And most of them were not consciously paying attention to. But this is how we understand our experiences and what makes them feel natural.

As user experience designers, we are creating experiences out of nothing. We can’t rely on the normal laws of physics to relay this feedback through sounds, vibrations and visuals. So we need to be conscious of every single, tiny action our user performs and be sure to relay a response back to them so we never leave them confused, even for a second!

We need feedback, immediately

I recently went home to visit my parents and there’s this one light switch in the kitchen that’s broken. I don’t know what happened to it, but when I press it, it doesn’t click. It just kind of slides to the other position. The light turns on, but the switch feels broken. I didn’t get the immediate reassuring click that I usually get. When the feedback loop is broken, the experience feels broken, regardless of whether the light turns on or not.

Credit: Google Material Design

The same thing applies to interfaces. To make a button on a screen feel ‘real’, we need to provide that immediate feedback to the action of tapping it.

And it doesn’t really matter what we show. We just need to show the reaction that our subconscious is looking out for.

This is same for all gestures. Whether swiping or scrolling, we need to show continuous feedback for every action as it happens. By doing this, we are telling the user that their action is being noticed and it has an effect.

What’s going on?

We always want to know and understand what’s happening in any experience. When we don’t know what’s happening, it makes us feel uncomfortable and we quickly, without thinking, look for ways to regain that understanding of the situation.

Our subconscious brains are constantly asking questions and using the answers to understand any given situation. It’s like or subconscious is asking “Hey, what’s going on now?! Oh this is going on, cool… Hey what about now?! Ah ok, nice.” Over and over again.

This feedback loop of action (question), reaction (answer), decision, is constantly looping really quickly to maintain understanding of any situation.

When I stumble towards the sink every morning for a glass of water, I turn the tap and watch the water fill up the glass. And there I have my glass of water. Simple.

This only takes a couple of seconds to fill the glass up, but during this time my subconscious mind is asking “Is it full yet?” — nope, “Is it full yet?” — nope, “Is it full yet?” — yes!” We’re constantly looking for visual feedback to give us an update on status.

Now imagine if you turn the tap on and nothing happened.

No water, nothing. Now you’re confused.

Our instant response to this is often to repeat our actions. Maybe you didn’t turn the tap enough, so you turn it again.

Nope, nothing.

Then suddenly your glass is full! In an instant! But you didn’t see the water filling up the glass.

You got what you wanted out of this experience, a glass of water, but there was no status update of the process, and that left you confused for a second. And you don’t like being confused!

In the real world, things take time. But we can often see why it takes time, as this information is in front of us.

Things take time in the experiences we design too — Such as the time it takes to load a web page. The act of communicating to a server is obviously invisible. But that might take a couple of seconds. In that short time our subconscious brains are looking for some sort of feedback on what’s happening. Look at this one second wait after tapping on the card before the next page is shown. It’s crazy how a one second wait makes the app feel painfully slow an laggy.

A painful second of a wait…

In the short time where we we give an action and there is no reaction. Often our instinct is to try again in hope for a reaction.

You know when you’re trying to print a document from your computer. You press ‘Print’ and nothing happens. So you press it again, and again. And before you know it you have 5 copies printed! This problem could be easily solved with some feedback that just tells us “Hey, I received your request, I’m working on it, be patient please!”

That’s better

Loading spinners are there for a reason; to calm your nerves while you wait for a whole second.

The web page takes the same amount of time to load in each example. Just with the second one, you know that it’s loading.

Timing is everything

So sometimes we need to give constant feedback to show the status of tasks that take time. This is because in real life things naturally take time. We expect to wait a few seconds here and there in order for these reactions to feel natural.

Have you ever knocked on someone’s door and it opened almost instantly? It feels strange, right? It was way too quick. As if they were waiting directly on the other side of the door.

Now we’re not really actively thinking about it, but we’re probably expecting to wait a few seconds as whoever is answering the door walks from their bedroom or the kitchen. We have an idea in our heads of how people and objects move through space, and how long it takes.

But when things happen too fast, it’s not what we expect and therefore doesn’t feel natural.

As we’re creating experiences, we want to give feedback at a speed which is natural for us.

This is an example a calendar view where the user can enter a private event access code, and the new event will appear in their list.

By showing the new event immediately in the list, it’s almost too fast. It’s hard to see which event appeared and it doesn’t feel natural.

That was quick, too quick

By taking just a bit more time, we can make the experience much easier to follow.

What are you looking at?

In the real world when we interact with something or someone, they’re often right in front of us and therefore that’s where our attention is. We’re not looking anywhere else.

If you tell someone a joke, you’re really hoping for a laugh out of them. But if they don’t and instead someone on the other end of the bar laughs, we’re probably not going to even realise because our attention is right where we told the joke. In front of us.

This one feature in Apple Mail has annoyed me for years. The button here to fetch new mail has always felt broken- it never did anything.

Credit where it’s due: Nice one Apple 🤗

It took me far too long to realise that it’s ‘checking for mail’, but the feedback is in the other corner. (bottom left)

But my attention was where I performed the action. So I would expect a reaction in the same place. This would be better:

Let’s recap

  1. Immediate reactions: For every action we need to show an immediate reaction. This can be a pressed state, scroll flag, haptic feedback, sounds etc.
  2. Constant updates on status: We need to to constantly tell our users what’s going on and never leave them waiting without any feedback. Not even for a second.
  3. Natural timing: Things take time. Make sure feedback is delivered at a natural pace so it can be easily followed and understood.
  4. Show it in a place where it’s expected: It’s no good having feedback if the user doesn’t notice it!

Here is a great example that combines all of these points. It looks good because it feels natural and emulates elements of how we see feedback loops in the real world.

Credit: Colin Garven

Feedback loops really are everywhere in life and they define what we understand as natural. If we start paying more attention in life to the things that we usually do on auto-pilot, we’ll start becoming more aware of what our subconscious mind picks up on. And when something in the experiences we design doesn’t feel quite right, we can look a little closer and make sure each of these feedback loops are closed and we never leave our users confused. Not even for a second.

While we spend a lot of time working on the UX flows and making sure the UI is beautiful. We should never forget about the little details that make our experiences feel real.

“The details are not the details, they make the design.” — Charles Eames

--

--