How Gmail solved the “impossible” problem
An unexpected breakthrough came from perseverance, scrappiness, and a stack of index cards.
Until 2005, the idea of threaded conversations (grouping messages with their replies) was a pipe dream for email. At the time, new emails and replies were all handled as separate messages — so there was no concept of a “conversation” in email.
However online discussion forums, like Usenet, were popular and their format was conversational. This sparked significant academic research on how emails could be threaded into conversations.
Unfortunately, the research concluded it was impossible — email had too many edge cases like someone replying to an earlier message, someone replying to a subset of the recipients, the conversation forking, etc.
The First Breakthrough
But the Gmail team was convinced there was a solution.
UX Designer Kevin Fox, along with a team of Gmail engineers led by Paul Buchheit, pored over the existing research to better understand the challenges. They also started exploring and prototyping different potential solutions.
By doing both of these simultaneously, they realized the academic attempts had failed because they had tried to capture the exact hierarchy and sequence of messages.
The Gmail team discovered that perfect precision wasn’t necessary for people. The value-add of grouping an entire conversation in one place far outweighed any minor confusion from edge cases.
Exploring New Paths
So the team liberated themselves from precisely capturing the sequence of messages for each edge case.
Instead, they explored how to display connected messages intuitively. They iterated on design concepts and continued to prototype their ideas.
Through these explorations, they determined two things always needed to be visible in the UI:
The newest unread message
A reference to the other messages in the thread
An Offline Breakthrough
Kevin refined his explorations to prioritize the newest unread message while also providing context from the other messages in the conversation. But nothing felt quite right.
So he took the task offline. He grabbed a pile of index cards and tried grouping, ordering, and stacking them in different ways. Doing this gave Kevin the idea to treat each email as a card and to stack the messages in a pile.
He ordered the stack oldest to newest, so the most recent message was on top. He then pulled out each card to reveal peeks of earlier messages, providing context of the whole conversation at-a-glance.
Digital Index Cards
Kevin and the team re-created the index cards digitally. But the visual norms of the time (sharp edges and fully saturated colors) made it hard to view the cards as separate, stacked objects.
So Kevin tried a more skeuomorphic design. He rounded the corners, shaded each card for depth, and added a subtle drop shadow to show that the cards were stacked on top of each other.
A Scrappy Solution
This effort started with the Gmail team’s conviction that they could do better; It ended with them solving the “impossible” email problem.
The breakthroughs in conversation threading came from exploring the concepts experientially — both through digital prototypes and through simple, paper index cards.
It just goes to show how much we can all benefit from being persistent and scrappy in our pursuit of a better solution.
What a blast from the past. That really struck a chord with me from the days when Gmail was "Caribou" and I argued endlessly with Paul that I wouldn't leave Outlook for any system that didn't include folders... until Outlook crashed on me without warning and deleted all my mail because I had exceeded its maximum capacity. At that point folders seemed less important, though he did ultimately allow for "labels."
Very cool, never knew this!