How to Build Complex Products While Avoiding Confusion
5 strategies from Notion to flatten the product complexity curve
Hey, I’m Jacob ✌️ Welcome to all of the product people who subscribed since last time! If you’re not a subscriber yet, I hope you’ll consider joining this band of like-minded folks who are all learning how to build better products. Questions or feedback? Drop ‘em here.
🎉 First, thank you!!
Making Product Sense is less than 50 subscribers away from 1,000!! Thank you 🙏
I try not to care about the metrics too much, but seeing folks like you subscribe and read MPS every week is one of the things that makes the hours of research and writing each week feel so worth it ❤️
If you’ve been enjoying these articles, it would truly mean a lot if you shared it with your friends or co-workers who might also enjoy it and help push us over the 1k mark.
Forward this email to your PM or founder friends
Share it within your community or company Slack channels
Okay… let’s dive in!
When Ivan and Simon began building Notion in 2013, their vision was to create the "Lego for software."
A blank canvas where you could construct tables, dashboards and workflows that could replace many of the tools you use every single day.
"For those who don’t know what Notion is, it’s extremely flexible. You can almost mold it into any types of tool you want for yourself. We call it a Lego for software."
—Ivan Zhao, co-founder and CEO of Notion
The ideas was to give everyone - including non-technical folks - the tools they need to build more tools. Very meta.
With an ambitious vision like that, the biggest hurdle was naturally going to be making the product simple to understand.
An Overview of Notion in 3 Parts
Blocks: Notion uses the concept of a “block” of data. Each block can have properties which you can think of as another titled column in a table so that each row of data has a pre-defined slot for that property. Each block can also hold more data in a sort of free-form, document-style editor.
Nesting: Since each block can hold other blocks of data, it allows you to chain together infinite layers of data like Russian nesting dolls.
Views: Data blocks that exist in the same table can be wrangled into several different “views” such as a calendar, Kanban board, or list and then filtered or sorted based on the block’s properties.
That modularity is incredibly powerful!
But it comes with a cost.
By the way, stick around to the end for a personal story from the trenches
The Product Complexity Curve
The more complex a product is, the more potential for confusion there is. This can be plotted on an XY axis to form a graph like this 👇
I call it The Product Complexity Curve.
All products have some level of inherent complexity that cannot be eliminated, only transferred or transformed. This is known as Tesler's Law, named after Larry Tesler, a computer scientist who worked in the field of human–computer interaction, most notably at Xerox PARC.
That inherent level of complexity is often easy to process. So much so that we probably wouldn't classify it as complexity. And The Product Complexity Curve isn't perfectly linear so you could continue to push a product's complexity pretty far before the potential for confusion becomes inhibiting.
But as you continue to layer on flexibility and functionality, you begin to creep into confusion's territory. And someone has to deal with it.
"Every application must have an inherent amount of irreducible complexity. The only question is who will have to deal with it."
5 Strategies to Manage Product Complexity
Notion has done a world-class job of making a complex product feel simple. So much so, that I would imagine some people who read this might be thinking, "Really? Notion's not that complicated."
Notion is a complex product and, as Larry taught us, complexity cannot be eliminated, only transferred or transformed. Kinda like energy.
But HOW do we transfer it or transform it? That’s the question.
Let’s look at 5 strategies from Notion to help us manage our product complexity.
1. Shift their perception of it
…by transferring the complexity to the marketing team.
Before a user even gets to touch the product, they've probably interacted with some amount of marketing whether it's an ad, an email campaign or a website.
And the marketing team has an opportunity to shape that user's perception of the complexity.
Notion did this, not by claiming it wasn't complex, but by helping the user see the complexity as raw power in their hands.
Build the workflow you want
Customize Notion to make it work the way you want it to. Just drag and drop to craft the dashboard, website, doc, or system you need.
2. Help them understand it
…by transferring the complexity to the content team.
Notion has invested a lot of resources into helping their users understand WHAT and HOW to craft your own tools with Notion.
Let's be honest - Notion isn't easy to explain. Is it a doc? Or a database? Or a project management tool?
To help rein in the endless possibilities of Notion, it was important for them to bring it closer to home.
"Here's how to set up a Kanban board in Notion."
"John Doe uses Notion to manage his eCommerce store."
"Watch to Jane Doe build a powerful personal dashboard with Notion."
Notion has an entire Resources tab on their website dedicated to helping you understand the complexities of Notion.
3. Make it easier to digest
…by transferring the complexity to the design team.
Design isn't just a coat of paint. Design can help you see order in chaos and find a path through the maze of complexity.
In Notion's case, making it look super slick wasn’t the priority. Their focus from the beginning was to help users easily navigate Notion.
"Fundamentally, Notion is a tool to solve people’s problems. It’s more about UX. Does this solve people’s problems in the fewest clicks possible? Is this the simplest mental model we can use?"
—Ivan Zhao, co-founder and CEO of Notion
They have notoriously stayed away from the design trends that seem to catch a wave every couple years or so. Everything they create is meant to be simple - almost boring - so that the content takes center stage.
4. Abstract it away
…by transferring the complexity to the engineering team.
Code is quite complex. That was the whole point of Notion in the first place. To make programming accessible to the masses by abstracting away the code and giving everyone drag-and-drop tools to construct a program visually.
Notion is famous for hiring coders who can design and designers who can code because so much of the work was engineering-heavy. They needed all hands on deck to transfer the complexity of code away from the user and onto their shoulders.
P.S. — If you’re curious about this sort of thing, this article on Notion’s data model was a fantastic read!
5. Make it worth it
…by transforming the complexity into value.
Finally, the most powerful way you can manage complexity is by making it worth it. If all products have an inherent complexity as Larry Tesler taught us, then it's up to us to build products that are worth using.
There’s a reason I still have Photoshop installed on my computer. It’s because there are some things Photoshop is uniquely suited to do that no other software can. Complicated? Indeed. Worth it? No doubt.
As you move along the Product Complexity Curve, make sure that the value follows.
Stories from the Trenches
To bring this back to real life, I want to tell a short story from this past week.
My co-founder and I were playing an intense game of devil's advocate, each of us fighting for a different side of a product decision, sometimes unknowingly switching sides and arguing the other point of view when a new revelation would strike.
There was a feature that we were considering adding to the product that would definitely improve the flexibility of the tool. But it also increased the potential for confusion, especially for the majority of our users who didn't need that extra flexibility.
To be honest, we never really landed in a place that we were both satisfied with, so we'll keep exploring, brewing on some of those strategies from Notion.
Maybe we can add some educational messaging in the product?
Maybe we can design it in a way that feels simpler than it is?
Maybe we can engineer a solution that requires fewer inputs from the user?
I still don't have the answers, but looking for them is part of the fun :)
I'll see you in the trenches
❤️ Smash that heart!
If you enjoyed this article, smash that heart icon to show some love! 🙏