Waiting with Uncertainty

Do not create a limbo for users

George Zhang
11 min readSep 20, 2020

A Story To Tell

Imagine you’re a college student. Maybe you’re one right now. One day, you find a post that’s hiring participants for an interesting experiment. You sign yourself up for it just out of curiosity. The post doesn’t offer any clues about what you’re supposed to expect, but it’s usually what most experiments should have been.

At the scheduled time you show up at the appointed place. Your ID is verified and some paperwork is signed. But you are also instructed to store all your belongings, including your cell phone and all writing implements. Though confused and slightly reluctant, you do exactly as you are asked. Otherwise, you will be disqualified for this interesting experiment.

You are introduced to an unadorned room by an RA (research assistant). It’s a complete plain room, so ordinary that nothing there is worthy of a second look. The RA politely asks you to sit in the only chair in the room, and then spells out rule number one:

“Stay in your chair and stay awake until I return in 15 minutes. You’re kindly instructed to spend the time entertaining yourself … with your thoughts.

But, there is a button near you in the room, totally within your arm’s reach. So the second rule comes down:

“Every time you press this button during the thinking time, you will receive an electric shock”.

“An electric shock? Yuck!!!” You tellyourself.

The RA leaves the room and kindly shut the door behind her. You’re on your own, entertaining yourself with your thoughts.

Tick, tock, tick, tock, tick, tock …. Time elapses.

After exactly 15 minutes, the door opened again and here comes the RA. “Sir, you‘ve administered 190 shocks to yourself during the 15 minutes thinking period.” You knew that you had literally shocked yourself, but you are even more shocked by this big number. It’s like, WOW!

It turns out that you were an outlier in Wilson, Reinhard et al.’s experiments which were published in Science in 2014 (link). Excluding your data, there were 67% of other men (12 of 18) who gave themselves at least one shock during the thinking period [range = 0 to 4 shocks, mean (M) = 1.47, SD = 1.46], compared to 25% of women (6 of 24; range = 0 to 9 shocks, M = 1.00, SD = 2.32). There’s a lot of self-harms people did in that experiment, isn’t? Why? The participants would prefer self-harms to doing nothing while waiting.

People won’t wait. So just don’t let them.

How To Create A Limbo

“The mind is its own place, and in it self/
Can make a Heav’n of Hell, a Hell of Heav’n.”
– John Milton, Paradise Lost

Through my career in leading user experience (UX) research, I have dealt with various moments that a user had to wait. Over time, and many frustrations and failures, I gradually learned how to cook a living hell, or a limbo, for our users, as well as how to rescue them from it.

The dark recipe, actually only consists of three simple elements:

1. Wait time. It can be measured by the duration from the very first user request, or the latest status update of the request. The longer the wait time is, the more terrible the user experience will be in general. If you don’t know how to torture your users, just keep them waiting on your platform. The longer the better… well, until they abandon the request in agonies. For whatever it is worth to you, each of them would probably share their horrible experiences on your platform to 10 others, or even more. As a researcher, I often feel gut-wrenching pains when I or my team were tasked to measure how long users would like to wait and how long they actually waited, as well as find out how to effectively incentivize users to wait a bit longer.

2. Uncertainty. The users need to receive relevant information to make informed decisions before it’s due, to end the useless waiting, and then to move on with their beautiful lives. To successfully piss them off, you can 1) informationally starve them by upgrading your systems from a blackbox to a blackhole and hiding everything from users, 2) informationally overwhelm them by providing tons of irrelevant, ambiguous, and inconsistent messages to create a perfect storm in their heads, 3) informationally distract them from their primary tasks by providing super addictive but super irrelevant contents (e.g. gamification), and 4) attitudinally help them grow ignorant and idle or both, while they’re waiting on your platforms. Of course, no one can stop you from doing all four things in any combination, and you will be the king of uncertainty manipulation.

3. What’s at stake. The high stake results are often more effective to affect a user’s psychological and physical wellbeing. For example, taking a pooled ride for a job interview vs. taking it for daily commutes. However, the assessment of rewards and risks is totally subjective and personal to each user, and your system doesn’t necessarily know. What shall you do then? You’re absolutely unstoppable nowadays because all modern tracking techniques and situational intelligences are at your disposal to help you reliably infer what people want and/or need. For example, we all know that low-battery smart-phone users are more likely to accept a highly priced ride when they are desperate to go somewhere.

To create a living hell, you just need to increase the portions of all aforementioned elements. What’s more? Hell, the sky is your limit.

Limbo = High wait time + High uncertainty + High stake results.

For example, Robinhood not offering real-time support when your brokerage account got hacked, a prolonged cancer diagnosis, your promotion cycle canceled, many flights being postponed probably including yours, bidding for your dream-house, applying for a dream-job, traffic jam en route to your job interview, borders suddenly closed for you, etc. The list goes on and on. Recently the 2020 US presidential election between Biden and Harris vs Trump and Pence comes onto the list of limbo.

End of the dark recipe.

I don’t think you’ll go with the dark recipe to treat your end users, otherwise your business can easily go bankrupt when there are so many good options outside. Don’t believe it? I dare you. :)

How To Rescue

On the bright side, you can follow three simple principles to rescue our users from limbos.

I. Make it fast, and make users feel fast

When I joined Google in 2007, I heard a story about delightful speed. The unverified story taught me a lesson to make a system faster, and make it noticeably faster by beating the users’ threshold of the just-noticeable-differences (JND, explanation on wikipedia).

The story goes like this.

When Google search engine was just announced late 1990s, a participant was invited to a lab-based usability test of the then-less-known search engine. To complete a given search task, he typed in “www.google.com” in the address bar, and pressed the Enter key. The URL request was filed and Google’s simple homepage successfully appeared on the screen. However, the participant waited quietly in his chair, having his eyes glued to the screen of the lab PC and literally did nothing. Nothing. After a long while, the researcher finally broke the bewildered silence. “Do you need any help, sir?”

“No. I’m waiting for this page to finish downloading.”

Google’s minimalism design stood out so noticeably among millions of “busy” websites (think of Yahoo!), that this particular novice Google user didn’t realize that Google homepage had long been downloaded.

You know what? WOW! He was over the moon once he learned that Google was actually so damn fast! A loyal user was immediately acquired by the unbelievable speed.

We have witnessed plenty of wins of the speed, in many domains of our lives.

Let’s have a look at the traditional ICT world (Information and Communication Technology). Google Suggest serves you popular queries in a dropdown from its search box that match the keywords you’ve entered. It makes your query entry faster by saving you a few keystrokes per query. Google Instant thinks ahead of you, and renders a search result page as you’re typing in the search box when it’s confident that the first suggested query is exactly what you want. On the backend, Google AMP, Facebook Instant Articles, Apple News, etc. all fight fiercely to make mobile web-pages download faster, even in most cases with unnoticeable margins. Last but not least, who can forget Moore’s law, which powered the growth of computation speeds for decades?

In the more nebulous world of the gig economies, speed matters as well. Many people around the world choose to work with Uber, Lyft, Didi, Grab, Instacart, DoorDash, Amazon etc. because of the flexible schedules and on-demand payments. They can get the jobs as fast as they can, and then they can cash out their earnings as fast as they can. The Instant Pay programs have been repeatedly proved to be effective in winning over drivers immediately. Even though most drivers don’t cash out every trip or every job, having that option already gives them a delightful motivation. On the consumer side, the network effects made it faster to get their needs fulfilled, often at a cheaper price and in a more effortless way. It’s like you push a button, you’ll get what you wanted soon delivered to you anytime anywhere.

Recently I started my new dream job at Course Hero, an EdTech startup which mainly serves millions and millions of college students to graduate confident and prepared. During their long journeys from enrollment to graduation, the college students often get stuck while finishing assignments or preparing for examinations. Course Hero provides them the extraordinary speed and quality to get an informed resolution. It matters significantly to all our students, especially those untraditional ones who have kids to take care and/or have part-time or full-time jobs to do in the meantime.

It’s also nicely noted in Luben Pampoulov’s recent medium post “Fueling a hero”:

Course Hero also fits into Accelerated Learning — another key GSV theme — which is helping students to learn faster, cheaper and better…a required weapon in the knowledge economy. We have seen peer-to-peer models that transformed Transportation, Lodging, Commerce and Payments, and now it is happening in Education with the sharing of documents, quizzes, tutors, and other learning tools.

Today, 64% of students don’t graduate college in four years and 40% of students in college don’t graduate at all. Approximately 70% of students work in college while student loan debt has tripled to $1.5 Trillion in the past decade.

I’m sure the speed to solve a problem and the user’s perceived speed matter in all other domains. Let me know if I am too naive about it.

So let us make it fast, and make users feel fast.

II. Be transparent, and give users control

Uncertainty in waiting is the enemy of our internal peace of mind, as we discussed. Also as seen in Wilson, Reinhard et al.’s experiments, the lack of options and control made it even worse.

In the early 1990s, Jakob Neilson published the famous “10 usability heuristics for user interface design”. All the top three heuristics are useful to reduce uncertainty and give users a good sense of control.

1. Visibility of system status. The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
2. Match between system and the real world. The system should speak the users’ language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a natural and logical order.
3. User control and freedom. Users often choose system functions by mistake and will need a clearly marked “emergency exit” to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.

In addition to them, I found the following specific practices very helpful to reduce uncertainty for users while they were waiting.

  1. Allow users to preview the processes and outcomes at the very beginning of a process. For example, the upfront pricing on Uber platform gave riders great assurance at the time they place a trip. If the preview doesn’t give them confidence, they can always cancel the request. Early cancellations are way better than later ones because of the opportunity costs.
  2. Inform users where they’re in the process, and what’s going on in the backend systems.
  3. Inform users about when they’re going to receive an update and how it will be delivered to them.
  4. If the process is blocked because users need to take some actions, be specific about What is exactly needed, and explain Why. Help them prepare for the action items with clear instructions (How).
  5. Provide a page or a place where users can check their current status on their own.
  6. If the process is blocked by a third-party service, try to work closely with the thirty party to give clarity to the users. If the third-party needs extra info from the users, try not to ask for the same content twice — respectively by your service and the third-party service.
  7. If there are many (micro) services on your backend, work hard to consolidate the single source of truth of a user’s status, and the root causes of a problem. Set zero tolerance on the backend discrepancies.
  8. If you have multiple channels to communicate with a specific user, run point checks to make sure users always receive consistent updates. I recommend to hire some secret shoppers, to audit all your communication channels if necessary.
  9. If users haven’t been contacted after a reasonable waiting time, give them a zero-change update. In the update, you need to convey that their cases are still being processed although no changes have happened. Also need to convey that no actions are expected from users. Lastly, try to provide a new ETA (estimated time of arrival) if available.

III. Lower the risks, and give users peace of mind

As we discussed in the dark recipe part, how users assess the rewards and risks of a specific result is totally subjective and personal. It varies significantly from user to user, and from time to time. Leveraging modern technologies, we can reliably infer the risks based on available signals, and then help users lower the risks. Hopefully, peace of mind can be gained by our users.

The practices that I learned are listed below.

  1. Prevent users from making errors. For example, Uber rider app uses a larger font to display the license plate number as the car arrives to pick up a rider. It significantly reduces the likelihood that the rider gets into the wrong car by mistake.
  2. Use users’ language to avoid misunderstanding. Remove both technical jargons and vague expressions whenever identified.
  3. Be specific and accurate in communicating with the users while they’re waiting.
  4. Avoid overpromising anything such as the ETA, the outcomes, or both.
  5. Don’t help users procrastinate. When any actions are due, let them know timely and let them know the consequences. It’s also okay to nudge them before an action is due.
  6. When something bad happens, or is going to happen, offer users options to mitigate the negative impact. At least, provide them a safe exit.

All the above are my personal opinions, as food for more thought. Your comments and critiques are wholeheartedly appreciated. Happy to dive further deeper into this interesting aspect of user experience. Let me know your thoughts — I’m all ears.

In the end, I wanted to express my sincere acknowledgements to Molly Stevens, michael gough, Michael Kronthal, Laith Ulaby, and many UX researchers and designers at Uber for providing the opportunity and contents to understand the effects of uncertainty on the waiting experience, and the possible causes. Last but not least, thanks to Shireen Tofig for proofreading the article. Without them, I couldn’t have it to share.



George Zhang

Global Head of Product Design, Brightly a Siemens Company. Formerly Google, Uber, Intel, Course Hero. Received Ph.D in I/O psychology.