Live Session

Finding Your Flow • Thu, Jan 30, 2025 • Sign up!

Drew Barontini

More about me
Issue #14

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:

  1. First Principles to identify the true problem.
  2. Design Thinking to create user-centered solutions.
  3. 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:

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:

Test the Method!

Take a problem you’re experiencing and apply these thinking models.

Enjoying this issue? Sign up to get weekly insights in your inbox.