Waiting with Uncertainty

Do not create a limbo for users

A Story To Tell

How To Create A Limbo

How To Rescue

I. Make it fast, and make users feel fast

II. Be transparent, and give users control

  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

  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.



Sr. Director of UX Research at Course Hero. Formerly Google, Uber, Intel. Received Ph.D in I/O psychology.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
George Zhang

Sr. Director of UX Research at Course Hero. Formerly Google, Uber, Intel. Received Ph.D in I/O psychology.