Thinking Models
As a product builder, there’s so much to keep up with: frameworks, methodologies, and processes are in limitless supply. It’s impossible to keep up.
The only way to win is to not play—to shift your attention from learning each new and shiny method, and focus on foundational ways of thinking:
- First Principles to identify the true problem.
- Design Thinking to create user-centered solutions.
- Systems Thinking to make sure the solution fits the broader system.
If you learn these, you will pick up new skills quickly, identify patterns, and be uniquely positioned to excel in the age of AI.
Be a critical thinker, not a passive watcher.
Real Scenario
Let’s talk about a real problem I’ve been working through.
We’re using Algolia as a technology for providing autocomplete search results in a new product we’re building. When a user searches, their query will show as highlighted in the results. But this only happens for the first few results.
The client wants highlighting on all the search results.
Here’s the problem: Algolia has a 50,000-character limit on the result set, which limits highlighting. The initial suggestion was to “chunk” the data, but the limit still applied to the larger result set, which meant highlighting would only apply partially.
So we needed to solve the problem a different way.
First Principles
First Principles breaks a problem down into its fundamental truths, stripping away assumptions to build solutions from the ground up.
Okay, so how would this help here? Let’s walk through it.
Step 1: Ask Foundational Questions
What is the purpose of the search feature? To return relevant search results and highlight the matching terms so users can find what they’re looking for efficiently.
What is causing the limitation? Algolia has a 50,000-character limit that prevents highlighting beyond a certain threshold of the data.
Why does this limitation matter? Without highlights on relevant results, users may struggle to understand why results were returned or miss important matches.
Step 2: Challenge Assumptions
The assumption is that chunking the data will resolve the issue. The reality is chunking introduces significant complexity without fully addressing the issue.
Step 3: Reason Up From Basics
If the core purpose is to help users identify relevant text, solving it on the front-end presentation layer is simpler and more direct.
Did you see that?
We identified the core problem by asking foundational questions, challenging our assumptions, and rebuilding from what we know is true to uncover a key insight that points us in the right direction: solving it on the front-end.
Now let’s talk about Design Thinking to validate a user-centered approach.
Design Thinking
Design Thinking focuses on understanding user needs and iteratively creating solutions that are practical, innovative, and user-centered.
Users need to quickly identify relevant search results and understand why a result was included. Without proper highlighting, results may feel confusing.
We can implement a front-end solution where search results are returned as-is, and the front end dynamically highlights matching text. This gives us a faster path to test and iterate on a solution that matches user needs. This is the validation step.
Systems Thinking
At this point, our problem is theoretically solved, but in isolation. And software is far from a vacuum—there are webs of dependencies that make up the system.
Systems Thinking examines how components within a system interact, identifying patterns, feedback loops, and interdependencies to create solutions that align with the larger whole. Here’s how we can think about this problem as a system:
- Inputs: Search queries and result data from Algolia.
- Processes: Data retrieval, text matching, and highlighting.
- Outputs: Highlighted search results displayed to the user.
- Feedback Loops: User interaction with search results (e.g., clicking a result).
- Interdependencies: Chunking the data would affect data storage and search performance processes. Front-end highlighting would be isolated.
Voilà! We now understand how the front-end highlighting solution mitigates risks within our system because it reduces complexity—there’s less interdependencies that can cause unwanted side-effects in our system (the app).
Recapping
To recap, let’s talk about how this worked:
- First Principles: The root issue isn’t search—it’s making sure users can see relevant highlights. Solving this on the front-end aligns directly with the core purpose.
- Design Thinking: By focusing on user needs (clear, relevant highlights), the front-end solution delivers a simple, effective experience without unnecessary complexity.
- Systems Thinking: The front-end solution minimizes disruptions to the system, avoids unnecessary overhead, and integrates seamlessly with existing processes.
Test the Method!
Take a problem you’re experiencing and apply these thinking models.
- Use First Principles to identify the root issue.
- Then use Design Thinking to create a testable user-centered solution.
- And confirm the reduced complexity with Systems Thinking.
Enjoying this issue? Sign up to get weekly insights in your inbox.