Explore the Double Diamond process and how it helps designers iterate through defining the problem and delivering the solution.
A couple of times throughout this series, we’ve talked about design (and development) being iterative processes—not one-and-done, but a repeated cycle intended to evolve an idea or product through incremental improvements. Sounds really good in theory, right? But how does iteration actually work in a day-to-day context? What does that process look like practically, for the people designing software with it? That’s what the Double Diamond Process seeks to answer.
The Double Diamond Process is a design framework that uses two diamond shapes to represent the problem and the solution. Each half of the diamond represents a different stage in the iterative flow, giving us a guide or track to follow as we move through UX and design processes (perhaps for the very first time). First, we diverge—exploring new ideas, thinking big, and stepping outside the box. Then, we converge, bringing together what we’ve discovered into one focused learning.
The first diamond represents the discovery phase. During that time, we’re working to move from the challenge we’ve identified (that prompted the need to create something in the first place) to a concrete problem to be solved.
“Challenge” and “Problem” can sometimes be used as synonyms, but in this situation they’re quite different. A challenge is just something that’s not working well, a pain point or some other issue that we think our product could be the answer to. Challenges can often be really huge or have systemic or environmental factors that influence (or aggravate) them—generally, they’re far too big to be solved cleanly or easily. That’s why it’s so important to boil them down to a single, solvable problem that we can answer with our product.
For example, let’s imagine we’re developing a ride-sharing or taxi app. The challenge might be: “Hailing a cab off the street is hard.” Note that this isn’t something that can be solved as-is; right now, it’s just a statement. We don’t know why hailing a cab is hard, or whether it’s hard in different ways to different people, or whether some people don’t find it hard at all (and if so, why not). We don’t know what kind of street we’re talking about (downtown in a city, in the suburbs, on a college campus, etc.), what kind of people we’re talking about (parents, students, night-shift workers, the elderly, etc.). We don’t know the requirements of the cab driver, their challenges, what’s working (or not working) for them about the system as it currently is.
Before we can start to make the challenge of hailing a cab less, well, challenging, we need to do some research and narrowing down of the specific problem that we want to try to solve. That’s what the first diamond is for.
As mentioned earlier, each diamond is split into two halves along the vertical divider. In the first diamond, diverging is about spreading out, taking everything in, gathering all kinds of information from whatever sources we can find. We’re collecting data by doing user interviews and observations, needfinding research, empathy mapping and persona building, and (of course) lots and lots of reading. Then, we converge—synthesizing everything we’ve seen and heard, boiling it down into problems that are focused enough to be solvable.
That description makes it seem very straightforward, but in truth each diamond is (in and of itself) an iterative process. Often, what we learn during the discovery phase makes us rethink the challenge we thought we had identified. With new information, we adjust our starting point and begin again, iterating until we feel like we’ve successfully identified what we want to solve for.
In the second diamond, we pick one of those problems we identified and start working toward a solution. For our taxi example, let’s say the problem we land on is: “For users with a 9-5 ‘day job’ who live in a big city, it’s hard to hail a cab off the street during rush hour due to the high demand.” There are a lot of ways that we could potentially solve that problem—in fact, I’m betting that you’ve even thought of one or two while you were reading this!
This process, however, is what separates the so-so applications from the great ones. It’s easy to move forward with the first idea that pops into your mind and just start building, but it’s very rare for that to be the perfect solution—it was just the fastest one you came up with.
The diverging half of this diamond is there to encourage you to push past that first knee-jerk response and dive a little deeper. Hold a brainstorming meeting where nothing is off the table. Push yourself to come up with three or five different potential solutions to the problem. Look at how other people have attempted to solve that problem and what does (or doesn’t) work about their solutions. Do some storyboarding and wireframing for your solutions and think about how each one might fit (or not fit) into the user’s daily life.
Then, it’s time to converge: take everything you’ve discovered and bring it together into one solution that you feel is the right fit. Create a low-fidelity prototype to share that solution with stakeholders, developers and product management and get everyone aligned. This, of course, is where the iterative aspect comes into the second diamond—you’ll almost certainly get feedback from at least one of those parties. If (or more likely, when) you do, kick back to the storyboarding, wireframing and prototyping stages and work to integrate their comments until a happy compromise is reached.
After everyone is aligned on a solution—well, you’re probably more familiar with that part, honestly. That’s where the actual development and creation of the product begins. Which is all well and good, but what’s next for the UX and design process?
Generally, one or two designers (or people involved in the design process) stick with that project to see it all the way through. They’ll work with the developers to see that the solution they came up with stays intact through the development process, help make adjustments to accommodate unforeseen challenges, run usability testing and more.
For everyone else, it’s back to the diamonds; although whether that’s the first or second diamond really depends on your situation. If you identified multiple problems to be solved during that first diamond, you might jump back in at the beginning of the second diamond and start solving for one of those.
If not, then you’ll start at the beginning of the first diamond and look at what challenges exist in this new situation. Maybe there are other challenges you knew about but weren’t solving for originally. Maybe there are other challenges that you discovered and put a pin in during the research phase. Maybe you’ve learned about new challenges from users during usability testing. If there’s anything I’ve learned from this process, it’s is that there’s always a new challenge to be tackled—and it’s our job to do it.
Kathryn Grayson Nanz is a developer advocate at Progress with a passion for React, UI and design and sharing with the community. She started her career as a graphic designer and was told by her Creative Director to never let anyone find out she could code because she’d be stuck doing it forever. She ignored his warning and has never been happier. You can find her writing, blogging, streaming and tweeting about React, design, UI and more. You can find her at @kathryngrayson on Twitter.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites