I was asked to design a new feature for slack as part of an interview
This article was originally published in Bootcamp in 2020
Background
I am a product designer with 10 years of design experience, and I recently switched jobs and went through a couple of interviews. For the second round of one interview, I was given a task:
Pick one of the following everyday products: Slack, Confluence or Gmail.
Identify an area of the app that needs improvement and recommend how it could be improved.
Prepare to present your recommendations to a cross-functional group at our company.
And don’t spend more than 2 hours on your solution.
I picked Slack.
Problem
Slack is an integral part of our team; almost all our communications happen over it. However, when it comes to video calls, there is one issue: scheduling them.
Often, we want to have a quick discussion with a teammate, and it doesn't warrant setting up a formal meeting. It's like a digital equivalent of walking over to your teammate's desk to clarify something quickly. These are things that are easier to talk about than to type.
Slack has a "call" function – press the phone icon, and it will make a call. However, we never call anyone immediately. We always ask if they are free first and whether we can have a call. Sometimes, they are not free and suggest another time.
When this happens, you have three options currently:
Watch the time manually — This is inconvenient, and you will likely forget the time.
Schedule a meeting in another app like Zoom, Meet, or Teams — requires going to another app, followed by a bunch of clicks and typing. It's inconvenient and goes against Slack's promise of "One platform for your team and your work."
Set yourself a reminder in Slack — This gives a low-key notification. You'll see it if you are near your device, but if you are not, which happens quite often when you work from home, you'll miss it.
Framing the Problem
To create a solution, I first properly framed this as a problem, using the jbtd format, which helps capture the context, desired outcome, and problem:
When my teammates are not available for a call immediately, I want to schedule a Slack call so that I don't have to manually track the time or schedule a meeting in another app.
And who are we designing for? People who use Slack's call feature.
My Solution
My solution was simple. When the user encounters this situation, let them schedule a call. Let them set a time, specify members to be on the call, and Slack will automatically make the call at the set time.
This solution requires three UI elements: a button to open a form, a form to set the time, and another element to give feedback for their action. I suggest giving a second option when users click on the phone icon, as it is the best solution in terms of discoverability.
I'm proposing this feature as an experiment at this time. So I skipped the ability to add or change people on the call, as this conversation is most likely happening in a channel already. The ability to add or edit people will be great in the future, but we can do it later.
For the form itself, I repurposed the "Set reminder" form. With some modifications, it could look like this:
The user did an action, and the system needs to give feedback. I suggested repurposing an existing UI element to keep this experiment nimble. I decided to repurpose the element that appears when a call is in progress like this:
At the scheduled time, Slack would automatically ring everyone. The UI for that already exists:
Launch & Learn Plan
Designing the interaction and UI is only half the job. As all designs are hypotheses, we need a plan to see whether this is the right solution for the problem.
My suggestion is to release this feature to a small set of customers. Maybe release it to one or two teams and collect quantitative and qualitative data to see if our hypothesis was right or wrong. For quantitative metrics, measure:
Number of people who clicked on the call button
Number of people who clicked on the "Schedule a call" option
How often users use the "Schedule a call" option
After a few weeks, send them a survey or do a face-to-face interview to learn more about their experience using this feature. Unearth what they liked or disliked, and see what additional problems and opportunities arise around this problem space.
Once we get all the problems and opportunities, list them, assess their usefulness, easiness, and wowness, and then the project managers, engineering team, and marketing team can decide which of these needs to be worked on, in what order, and when it should be released to the public as a feature.
The Interview
I shared my idea with a group consisting of a lead designer, a lead researcher, a project manager, and an engineering manager. They had some questions for me.
Q: What would be different if this were an actual project?
A: If this were an actual project, before any of this, I would research to see if this problem is real or not. I would try to get some stats around whether other people experience this problem, how many, and their expectations.
Q: At what stage would you involve engineers? And what would you be looking for from the engineers?
A: As soon as I get a clear picture of the problem and the customers' expectations.
Q: You mentioned releasing it to beta customers. When do you think it will be ready to release to the public?
A: We could say that only if we get quantitative and qualitative data.
Q: What if someone challenges you, the "set a reminder" function does exactly the same thing, so why should we develop another feature?
A: I would try to find out what people use the "set a reminder" function for. If they use it for scheduling Slack calls and are happy with it, then great, we don't need to do anything.
Q: Why do you think Slack hasn't done this before?
A: I have no idea. They have a video call feature, but often it feels like an unfinished feature.
Q: What do you think Slack's Northstar idea is?
A: I think it might be to make working online as natural as working from a physical office and may be to eliminate the need for office space itself.
What was the result?
At the end of the interview, they told me they were impressed with what I presented and my answers, but I decided to go with another company as their offer was more interesting.
I shared my experience to help other designers looking for a job like me. If you are in such a situation, at least you know what to expect. We are all going through a hard time, and I believe we all should help each other however we can in this unprecedented time.
Good luck, folks!