The Product Complexity Paradox
Complexity is an alluring trap, but the hidden costs can be crushing
Joe Van Os
People have a strange relationship with complexity. We tend to overcomplicate simple problems and oversimplify complicated problems.
In either case, this complexity bias results in a general mindset that more complexity is almost certainly better – when building products this typically appears as the concept that more features must mean more value for the user.
However, it’s often the case that adding more can be counterproductive. If we constantly fail to recognize the pull of the complexity trap, and don’t work on breaking this negative thought pattern when problem-solving, the results can be disastrous.
The Downside of our Attraction to Complexity
Most product managers are familiar with Occam’s Razor, which is the principle that when presented with multiple competing solutions the simplest solution is most likely the right one.
However, finding and selecting the simplest solution is easier said than done.
Complex problems will have numerous potential solutions — not all being equal. Additionally, there will almost always be more complex solutions than simple ones. By definition, complex problems are difficult to understand, let alone find a simple solution.
Second, it’s easy to confuse a simple solution with a quick fix. Often the initial problem we evaluate is a surface-level problem being driven by a root problem.
Without taking the time to dive into the problem, we are likely to create a band-aid solution (i.e. a quick fix), which doesn’t fix the root problem and adds unnecessary complexity to the product itself.
It's not only complex problems that people have issues with, we also struggle with simple ones. The less complex a problem, the easier it is to have an opinion on it.
The result is more attention and debate, often leading to over-complicated solutions. This is the bike shed effect or the law of triviality.
When it comes to problems, the level of complexity is inversely related to the upfront planning. This is why we end up with over-complicated solutions to both simple and complex problems. And in each scenario, our bias towards complex solutions soothes us into believing we’ve made the right call.
In this lies the product complexity paradox: we over-complicate simple problems, and under complicate difficult problems — each leading to complex solutions and quick fixes, and several negative product impacts.
The Impact of Complexity on Products
Our tendency to over-solution simple problems, under-solution difficult problems, and fall in love with complexity will lead to real-world issues:
1. Complexity Costs and Limitations
As a product becomes more complex, the surrounding business must also become more complex, as it needs more people to handle things like:
- Internal and end-user communication and training
- Maintenance and performance of the growing feature set and associated dependencies
- Operations and support of maintaining a larger set of features
Growth in complexity limits the ability to further grow, scale, and change both the product and business. It is much easier to get 50 people on the same page than it is to get 1,500; and it is much easier to change a product with 5 core features than it is to change one with 500.
2. Compounding Effects
Choosing a more complex option once may result in limited additional complexity.
However, choosing a more complex option 10 times will result in immense product complexity. This is because complex solutions breed even more complex problems — and they begin to stack exponentially.
Additionally, as the system grows in complexity, it becomes harder to add any new feature due to increased system dependencies. There are times where complex solutions will be necessary.
By choosing simple solutions whenever possible, it will make implementing required complex solutions much easier.
3. User Experience
It can be easy to rationalize that a complex solution will be better for the end-user as these complex solutions often result in more features.
It’s important to remember that more features also add more complexity, requiring the end-user to think more, and making the product slightly more difficult to use.
More features can be great if they are truly solving key problems. However, new features driven by quick fixes and surface-level problems result in unnecessary complexity for the user.
Rather than focusing on simplifying the usability of the current set of features, we often look to relentlessly add more. This is the easy choice, as let's face it, customers will always ask for more — but this is the path that makes great products fade to mediocrity.
How to be Simple and Great
Now that we know why finding a simple solution to a complex problem is hard, and complex solutions can be a big problem, what steps can we take to limit product complexity?
Find Your Complexity Baseline Through Product Mapping
Software is very abstract, making it hard to conceptualize the “size” of a product — making it easy to underestimate its level of complexity. A great first step in understanding product complexity is to make the abstract more concrete. This can be done through product mapping.
Product maps are the creation of a physical map of all of the features of a product, the functions they perform, and their associated interactions and dependencies. They allow us to understand the overall level of complexity, and the potential impact of changing or adding to the product.
The complexity of a dependency map will be directly related to the complexity of the product. Highly complex products may need multiple layers of maps.
Some products will be able to have a single product-level map laying out the core modules and how they interact. More complex products will require a second layer of maps that outline the interactions within each module.
The goal of the product map is to establish a tangible baseline of product complexity. This allows us to account for this complexity in our go-forward problem solving, solution creation, and decision making. Mind-mapping tools are a great starting point for creating product maps.
Create Amazing and Simple Solutions Through Integrative Thinking
Integrative thinking is a great way to embrace complexity, and use it as a tool to find the best solutions.
Complex problems bring forward multiple solutions, each with its own level of complexity and positive attributes. Integrative thinking balances the positives from each solution and looks to create a single, better solution.
Finding simple solutions to complex problems often requires outside the box thinking — which can be difficult as we are creatures of habit, and our internal biases result in blind spots. Integrative thinking leverages a diverse set of viewpoints to streamline outside the box thinking.
This works best with a diverse set of perspectives, as this increases the chance of opposing views being brought forward. Secondly, the individuals or groups come together to lay out their ideas and work to converge on a single, streamlined solution.
- Diverge: Have multiple individuals or groups evaluate a problem and come up with a recommended solution. The more diverse the viewpoints of the contributors the better, as it is more likely to result in a wide variety of options.
- Converge: Come together as a consolidated group to evaluate all of the options. Some solutions will be immediately dismissible, others will have potential. Within the potential solutions, there will be elements of the solutions that overlap. Weigh the pros and cons of each potential solution, find where the potential options converge and create a single holistic solution.
- Simplify: The process of unifying multiple solutions will more than likely result in a solution with a higher than optimal level of complexity. Having multiple perspectives in the group is also beneficial for simplification of the solution as it allows for a higher level of pressure testing of what is truly essential to the solution.
As all solutions should be, it’s an iterative approach where solutions are tested with the end-users to ensure that it actually solves the core problem. The result is a validated, holistic, yet simplified solution.
Don’t Fear Complexity
Complexity is an inevitable part of building products. We can either choose to ignore it and pay the price in the long-term, or we can choose to embrace it and look to use it to our advantage.
While we can’t control that complexity happens, we can control when, why, and to what level we take it on. Our job as product leaders is to understand the impact of complexity on our product, and continuously look for more simple solutions whenever possible.
Joe Van Os
Constantly discovering what it means to be a Product Manager, and passing on what I learn along the way.