How to take your problem-solving skills to the next level
The Power of Divergent and Convergent Thinking
The pressure to solve problems quickly can lead to rushed solutions.
But how to guide your team through both creativity and precision?
From a product engineering perspective, we must ensure that we build something meaningful rather than just build something fast.
We need an approach that helps us explore a wide range of possibilities and then zero in on the right solution with laser focus.
Divergent and Convergent Thinking
Exploration is the first step in a problem-solving process (or at least it should be if you care about the result). It is a broad, unconstrained search for any potential solutions.
This is where divergent thinking comes into play. It’s your team’s chance to be creative, to think outside of the box, and to generate as many ideas and perspectives as possible.
Divergent thinking prevents you from jumping straight into a solution before fully understanding the problem. This is the foundation of product engineering.
Once you've explored all the possibilities, it’s time for convergent thinking. This is where you start narrowing down options.
Review the ideas generated in the divergent phase
Eliminate the ones that don't align with the core problem
Focus on refining the most viable solutions
This process ensures the solution you will build is rooted in real user needs, feasible from an engineering point of view, and aligned with business goals.
The Double Diamond Design Process
The Double Diamond (developed by The Design Council) is a framework for solving complex problems. It’s built around two key phases, each containing divergent and convergent thinking stages.
The goal is to first thoroughly explore the problem space and then focus on delivering the right solution with feedback loops in the process.
Discover (Explore)
This stage is a divergent process. You're not limiting your scope or making assumptions. Your goal is to:
Explore the full problem space and ensure the team is focused on solving the right problem, not just what seems like the obvious one.
How to Implement
The discovery phase is your chance to challenge assumptions, investigate real user pain points, and bring valuable insights to the team.
User Interviews: Talking directly to users or customers is one of the best methods to understand their pain points and expectations.
Competitive Analysis: Look at direct competitors and products that offer similar feature sets to see how they solve this problem.
Journey Mapping: Visualize a user's experience with your product or service to identify gaps and pain points that need to be addressed.
Data Analysis: There is a high chance you already have a ton of existing product data (telemetry, session recordings, analytics, data lakes) you can dig into. Whether you discover success stories or failures, you can use the 5 Whys Framework to analyze the root causes for those outcomes.
At this stage, product and tech leaders must ensure that all relevant voices—designers, engineers, marketers, and users—are heard.
Define (Reframe)
Next is a convergent thinking stage, which narrows down the wide range of insights gathered to a clear, specific problem statement. The goal is to:
Extract key insights from the discovered data to reframe the problem so you can focus on the most pressing issue that needs to be addressed.
This is where the user-centric mindset of product engineers shines. By the end of this stage, every team member should know what problem they’re solving and why it matters.
How to Implement
Affinity Mapping: Use affinity diagrams to group and categorize your research findings. You might have used Affinity mapping without realizing it before—it’s often used to group similar topics during Scrum’s Retrospective sessions. The goal is to identify common patterns and themes.
Problem Statement Template: To frame the problem clearly, use a well-defined template. You might have already encountered a template for user stories—“As a [persona], I [want to], [so that].”. A problem statement template may look like this:
“[User] needs [need] because [insight].”
For example: "New users need a simple onboarding process because they feel overwhelmed by too many features at once."
How Might We Questions: These questions help reframe the problem so that it encourages solution-focused thinking. For example:
"How might we simplify the onboarding process to prevent users from feeling overwhelmed?"
Prioritization Frameworks: Use tools like the Eisenhower Matrix or RICE to prioritize problems based on their impact and effort. Tech leaders should guide the team in making tough decisions about prioritizing issues based on business goals and user needs.
Develop (Create)
The second diamond (phase) starts again with divergent thinking. This stage is all about experimentation:
Thinking creatively to generate a range of possible solutions to the defined problem and explore them in detail.
How to Implement
Brainstorming: It doesn’t have to be specifically structured. Even free-from brainstorming works in many situations. If you want to add more structure to it, you can use methods like SCAMPER to promote creative thinking and generate new ideas. Experiment with approaches that might initially seem out-of-the-box.
Wireframing: Wireframing is an easy and effective way to sketch out multiple solutions. Keep things low-fidelity and focus on functionality rather than aesthetics. The goal is to explore multiple possibilities before narrowing down.
Rapid Prototyping: These prototypes should be fast to build and easy to iterate on. Creating the first version of prototypes using tools like Figma, low-code approaches, or code gen is a quick way how to get something out of the door that can be validated with users.
Deliver (Catalyse)
The last stage is again a convergent thinking stage. You test identified solutions with real users, gather feedback, and implement the most effective one:
Deliver a solution that works, solves the core problem, and meets user needs and expectations.
This is the part that is most familiar to us, software engineers. It’s about incrementally delivering value in the highest possible quality based on the results from the previous stage. Let’s look at some techniques to make the delivery more effective:
How to Implement
A/B Testing: Testing multiple versions of your solution in real-time is the best way to get immediate and measurable feedback from users. With tools such as LaunchDarkly, you can leverage feature flags to switch between multiple versions, and analytics tools like Google Analytics or Amplitude provide means to measure the usage, conversion, and effectiveness of your solutions.
Feedback Loops: Whether it is alpha/beta testing with selected users or in-app surveys, direct feedback from customers can uncover “unknown unknowns” you would otherwise miss just by analyzing your product telemetry.
Continuous Integration & Deployment: Now standard across the industry, CI/CD pipelines are a great tool for rapidly and frequently releasing improvements. It not only helps with quickly reacting to users’ feedback, but another fortunate benefit is that you can quickly fix or revert any mistakes you make along the way.
Summary
Even though the double diamond design process is over 20 years old (check Design for Planet for an updated advanced version), it’s still very relevant in the effective development of new products or features.
The relevancy is in combining divergent and convergent thinking while analyzing and solving challenges. The next time you are presented with a complex challenge, try using this method to explore and think outside the box before converging on the actual solution you will deliver.
📖 Read Next
Discover more from the Product Engineering track:
Are you looking for a space where you can learn more about software engineering, leadership, and the creator economy and network with other like-minded professionals?
With Dariusz Sadowski, Michał Poczwardowski, and Yordan Ivanov 📈, we’ve just opened the gates to a new Discord community: Engineering & Leadership
Be among the first members and join us for virtual meetups, Q&A sessions, and events:
📣 Top Picks
5 Keys to the Hiring Manager Interview from a Meta Senior Manager by
and inRegression Towards the Mean - Mental Model by
inThe importance of data when making decisions in the engineering industry by
and in
Well written, and detailed explanation of Divergent and Convergent Thinking.
I wasn’t familiar with the diamond model. Great examples for product engineering as well!
Also, thanks for the shoutout, Samuel!
It means a lot.