Deep dive

Virtual Office Interaction Experience

An exploration into improving UX within Roam

Preface

Roam (ro.am) is an excellent virtual office platform for distributed teams. I haven't worked at Roam, however I was a weekday user for over a year and a half. Roam is designed very well, and the team had been very receptive to the occasional feedback. Originally I only intended to send the Roam team some simple feedback on the below, but I had some extra time and ended up taking it further with the following design study. I hope this gives some insights into my design process and thinking.

Background

When someone knocks on your virtual Roam office, they're requesting to enter your office for an audio call. The knock sound notification is playing, and you want to be responsive and answer their knock as soon as possible.

You may be available, but you also may need a moment before accepting the knock. In my case, I often needed to switch up my audio. Let's break down the timeline for this example scenario:

0s
1s
2s
3s
4s
5s
6s
7s
8s
9s
10s
11s
12s
13s
14s
15s
16s
17s
18s
00:00
Receive knock notification
00:01
Switch to Roam
00:02
Pause music
00:03
Take off over-ear headphones and set down
00:06
Pick up AirPods charging case, open it and take out AirPods
00:11
Put in AirPods and wait for computer to automatically connect
00:14
Confirm Roam is using AirPods
00:15
Accept knock

It doesn't seem like it should take 10-15 seconds, but when you break it down (and time it yourself) it's surprising how each little step adds up. Knowing that someone is waiting on you, this becomes a high-anxiety moment when it really shouldn't need to be.

You may also be thinking this user (me) just needs a better audio setup, or to wear their AirPods or mic-enabled headphones all day, and you're probably right — but we really shouldn't expect ideal circumstances, nor assume the user will behave a certain way.

There are alternatives to delaying answering, but they aren't ideal for either the initiator or recipient:

  • Answering before audio is ready: awkward starts to the conversation as the initiator may hear recipient shuffling audio inputs while recipient isn't yet able to hear them
  • Declining and then knocking/calling them back: also not an appropriate or smooth option
Problem Statement

When receiving a knock (a request for an immediate audio call), you have only the options to accept, decline, or delay accepting until ready — the latter option leading to a high-anxiety moment and giving the impression of you not being responsive or even there.

Reviewing the current state

Unless working on an entirely new flow, I'll first audit the existing flow. Here we have two users: the initiator (Walter) and the recipient (Jesse). The initiator is knocking to start an audio call, and the recipient can either accept or decline.

Walter
Knocking on another office
A person clicks on another person's office to knock
Jesse
Receiving knock & responding
The recipient is notified and has response options
Walter
Receiving an unavailable response
The initiator is notified if the recipient is unavailable

Extending the response options

The existing response options above work great if you're either immediately available or unavailable. But what if you just need a moment before starting the audio call? Let's explore how to solve for keeping the experience smooth and worry-free for everyone.

A few quick drafts to extend response options:

Extending response options to allow for an immediate response while also delaying accepting

While not usually the case, here it's simple and straightforward enough to add an action for a new option. I used a mustard color #FFCA28 from the existing Roam UI palette (it felt right for the middleground between accepting and declining), and decided on going with the Option C above where I made simple changes to the layout and styles to dial back the prominence of the secondary actions.

It gets a little more interesting in exploring the new flow for this action (below) and updates to existing flows.

Depending on the team process, expectations and timeline, the above examples and notes may be enough for this flow — certainly enough for sharing the concept for feedback. However, it's also involved enough to warrant a prototype to feel out the transitions for the "One moment" flow and work out any design adjustments before handing off to Engineering.

Updating the "Busy now" response confirmation

With the new UI and UX for the "One moment" response, we should also update for the recipient their "Busy now" response confirmation for consistency and more clarity.

Updates to receiving response from knock

From the perspective of the user who knocked, we need to show the "One moment" response and consider updates to other responses.

Option A: Quick and simple stopgap option but less than ideal and is inconsistent with what the responding user expects this user (the initiator) to see
Option B: Apply the new UI that shows the chat message, bringing consistency between initiator and receiver flows, though still room to improve
Option C: Better visual clarity between responses and extended available actions

Other flows to handle

There are other flows we'd want to cover. When the initiator cancels the knock at any time, the existing flows (not shown here) would suffice, where for the initiator it would close the knock and return them to the office floor, and for the recipient it would open the direct message thread between them and the initiator with a new system message: "<FirstName> knocked on your office door then left before you answered."

When the recipient responds with "One moment" and then they cancel or even exit Roam, we could go the direction of showing a modified unavailable response to the initiator:

Wrapping things up

Comparing the before and after of just this key moment, we can see how allowing a response prior to accepting can improve the UX for users on both sides of the interaction.

Before

After

Revisiting our scenario timeline, we can see how these changes have neglible impact on total time to accept (+1s), while making a big impact on your ability to be responsive (-13s or 7.5x faster from original) in this core flow within Roam.

0s
1s
2s
3s
4s
5s
6s
7s
8s
9s
10s
11s
12s
13s
14s
15s
16s
17s
18s
19s
00:00
Receive knock notification
00:01
Switch to Roam
00:02
Respond with "One moment"
00:03
Pause music
00:04
Take off over-ear headphones and set down
00:07
Pick up AirPods charging case, open it and take out AirPods
00:12
Put in AirPods and wait for computer to automatically connect
00:15
Confirm Roam is using AirPods
00:16
Accept knock

Reach out and say hello if you want to discuss identifying and tackling UX challenges like this one at your organization.

Have a distributed team and want a great virtual office experience? Be sure to check out Roam.