How we design at Intercom

How we design at Intercom

Main illustration: Cory Uehara

“…great designers are dogged in understanding the problem they are dealing with. Their curiosity and tenacity for understanding doesn’t end…”

Here within the product team at Intercom we’ve been sharing a fantastic post by Mills Baker about the state of design within the technology industry. Mills posits that design led organisations and teams are often not delivering results because they are not focused on understanding and solving real problems, that much of the design endeavour is spent at a superficial level. We’ve written about this previously here at Intercom, calling it The Dribbblisation of Design.

A couple of months ago I sent a note to our design team about how we work. In the spirit of Mills’ post, I thought it would be useful to share how we design Intercom and our focus on problem definition. Hopefully it helps you think about how you work. We’re continually iterating this process, figuring out ways in which we can design better things faster, ensuring we are always making things easier and better for our users. We’d love to hear your thoughts on this, how it differs from how you work, and how we all may make our design process better.


from: paul@intercom.com
to: design-team@intercom.com
sent: Feb 6th 2014

Hi everyone,

We move very fast at Intercom, so it is critical to the success of our product that we have a deliberate, thoughtful and comprehensive design process. That we are solving real problems, that we are fully understanding them, and that the likelihood of our design work being successful is very high.

Deliberate, thoughtful and comprehensive design process.

It is all too easy to jump straight in to a solution without thoroughly understanding the problem we need to solve. This is what separates good designers from great ones. The great ones are dogged in understanding the problem. Their curiosity and tenacity for understanding the problem they are dealing with doesn’t end.

In that light I’d like to outline how we design at Intercom, so we can collectively think about and refine our process. As always, let’s discuss in person, and question why we do what we do.

1. Understand the problem
Ensure you understand what users need, or how their current solution could be better. Read and understand all the research and customer feedback we have on a problem. Ask the Customer Success team to clarify anything. If you are still unsure ask our customers. It should be normal and habitual for our designers to be talking to our customers about our product. Thoroughly test how it works currently on the app. Leave no stone unturned. Ensure you understand the problem space inside and out. Any solution can only be as good as the depth of understanding the problem.

2. Understand what a good outcome looks like, and how to measure it
If you deeply understand the problem, then you should know what a good outcome looks like. Not necessarily what the solution will be, or how it will work, but how our users lives will be better as a result of tackling the problem. This means you should know how to measure if we hit the desired outcome. When we’ve run through the design process, and shipped changes to Intercom, we should be able to measure whether we solved the problem. This most likely means having metrics to measure against before you start designing. Get familiar with our core product metrics and understand which ones impact you.

3. Don’t make any assumptions around user behaviour or data
Don’t assume that a feature is heavily used. Or not used at all. We have almost all of our product instrumented to give us data. If you have a question about usage, look at our dashboards, or ask an engineer to get data for you. Ask the Analytics team to help you. We have the resources to do quantitative and qualitative research. Be curious. Never ever assume you know. Memory is fallible, if you are unsure, then check. If we don’t have the data you need, let’s get it.

4. Research how other products solve similar problems
Our discipline is mature enough that there are standard design patterns for many things. Don’t reinvent the wheel. Most of our innovation at Intercom comes from a product strategy and product concept level, not from an interaction design level. Look at some of the most successful examples of great software in the world. None that I can think of innovate frequently on interaction design. For the most part, our interaction design should be simple, clean, using patterns people know. This doesn’t mean we can’t do something new, it just means that if we do do something new there needs to be a very obvious reason why existing patterns don’t work for the problem we’re tackling.

5. Decide whether our requirements are different
Sometimes our requirements are different. For example our inbox has assignment, and closed and open conversations, so some patterns in Gmail and other Mail apps won’t work. Thoroughly think through whether our requirements are different, understand what that means, and feed it into your design work. This is the context that others won’t have when you show your work. People will say ‘why can’t it be like how Facebook does it? That seems to work’. Make sure you can clearly explain the differences. Become very good at framing design work in terms of the problem, the desired outcome, the unique requirements, and how the solution meets those requirements.

6. Come up with many ways we could solve the problem
For some solutions simply re-use existing patterns you see elsewhere. For others try something different, this act helps you find something that you might not otherwise have explored. But then you must evolve beyond the new thing, combining ideas to get something better. Having at least 3 or 4 different ways to solve a problem allows you to figure out what’s better by understanding what won’t work. List the pros and cons of each option. Evaluate them against the intended outcome, the goals we’ve set, and against each other. This sets you up to evolve to a great solution rather than an available one.

7. Iterate, iterate, iterate
Openly share ideas early. Get feedback. Get more feedback. Evolve your ideas. Share again. Evolve again. It’s clear to me that better design comes from involving multiple designers. Other people will have a fresh approach, a new way to look at something, a new consideration. It almost always makes it better every single time. Try showing your idea to someone who hasn’t seen it yet and see if they understand it. Leave something for a few hours, do something else. Then come back to it with a fresh head.

8. Work systematically from level to level, don’t mix levels
Work from the concept level down to the interaction level. Don’t sweat the interaction details when coming up with different approaches. You are trained to not get lost in the weeds. Think about four different layers of design:
Outcome: How will what you’re designing make things easier or better for people?
Structure: Work out the required components and relationships needed to meet the intended outcome.
Interaction: Design the workflows, the sequences of behaviours and events.
Visual: Make it look and feel beautiful, enjoyable, fun.
When we have design reviews, and when you solicit feedback from others, stick to the appropriate level based on the stage of a project. If we’re figuring out the structural level we don’t need to discuss visual design.

9. Optimise for simplicity
Intercom as it exists today is a clear innovation. The fact that it is integrated, that people can see their users and their behaviour updating in real time, filter those people, message them personally or at scale, set up auto-messages, in-apps, and so on. We have a big challenge to make it clear that all this power exists, yet make it simple for our users to understand and act on. Simplicity will always be an important design principle for us. We will almost always favour the simpler solution, then build and ship it, so we can learn before introducing additional functionality and complexity.

10. Don’t stop when something ships
Many designers ship and move on to nail the next thing. Great designers proactively find out if their design work is successful. Talk to the Customer Success team. Look at the metrics. All designers make mistakes, and ship things that don’t work or are hard to understand. But the best ones go and find out when this happens and learn from it. This is what separates good designers from really great world class designers. Their curiosity extends to learning how to become a better designer from their previous work. Never stop asking yourself questions about your work.

I hope this process and these ten steps make sense. Let’s ensure that everything we do is well considered. Design work that we can be proud of. And let’s keep discussing how we make our process better.

Thanks, Paul.


Hopefully outlining our design process helps you think about your work. We’d love to hear what you do differently, and how we can improve. And if you got this far, it would be remiss of me not to mention that we are currently hiring designers in San Francisco and Dublin and also growing our product management and engineering teams.