Thinking about the extremes to break out of local maxima
Thinking about the extremes is a powerful tool to help refine our intuition, unearth second-order effects, discover novel ways of doing things, and generally find alternate solutions to problems when we’re stuck.
Think of it like this: you’re a person trying to climb a hill.
One way to do that is to take a step in any direction. If you discover that the next step is higher than your previous one, great! You’re making progress.
You repeat that process over and over again, taking one step at a time. Each time, you check if you’re higher than before. If you are, you’re going uphill!
That’s marginal improvement, and it’s typically good. After only a finite number of steps, you’ll reach the top of the hill.
But once you’re at the top, any step you take will be a step downhill. You’ve reached a maximum.
How can you reach higher places? You can’t use the same “one small step” mentality. You actually need to change your approach.
And that’s where thinking about extremes can be helpful.
It’s only by thinking, “how can I climb Mount Everest?” that you realize you might need to get on a plane and fly to Nepal.
I think the same is true in business and software development. You can often get very far by making the next marginal improvement. One step at a time is good! You might even reach some heights. But at some point, you’ll likely get stuck in a local maximum. And it’s at that point that thinking about the extremes can help.
Consider this example. If you’re only trying to grow your revenue by 3% this year, you’ll probably focus on marginal improvements. But if you start thinking about how you can double or triple your revenue this year, you’ll come up with some wild, new ideas because you have to. There’s no other way to reach that goal.
Or think about query optimization in software development. You might try to optimize the query as much as possible. But at some point, you can’t make it any faster (you’ve hit a local minimum). If you think about the extreme you might ask, what if we could avoid making the database call altogether? You might discover a way to support the feature without that query or a different way to get the same information.
Steady progress is good and important. But every once in a while, you get stuck. That’s a good time to start thinking about the extremes.