When trying to solve important and challenging problems, it’s helpful to distinguish between problems that are extremely difficult (but possible) to solve, and those that are impossible to solve. Which kind you think a problem is changes how you approach it, both intentionally and subconsciously.
We should approach extremely difficult (but solvable) problems by assuming that they can be solved, and then trying to find the best solution within the constraints given to us. We spend most of our time in the design phase, and we’re motivated by the fact that, given enough time and study, a correct solution will emerge.
Chasing a problem like this is a search for efficient correctness. We ask, “How much resource and effort is required to solve this problem most efficiently?”
Impossible problems, on the other hand, are best approached more iteratively. There’s no guarantee you’ll find a correct solution, or even that one exists in the first place. So instead, chasing an impossible problem is really an exploration of the tradeoff space between effort invested, and the approximate solution you can afford with that time and effort. The more you invest, the closer you’ll get to a more correct, general solution, but you don’t know if you’ll ever reach complete correctness; you have to make a call at some point to stop searching and settle.
Chasing a problem like this is a pursuit of balance. We ask, “What’s the level of correct-enough that we’d be happy with?”
I first encountered this distinction when I was brainstorming sales strategies with a friend concerning a particularly important client of theirs.
“Do you think we can get [X big customer] to buy this?” he asked me.
“No,” was my response. “They already have their own way of doing it and they’re a little too big for the product.”
He followed up with, “Well, what if we covered all their legal costs to transition over, cut our price, and we had a specific teammate assigned to make sure they got all their questions answered by a human?”
“I mean, if we did all that, then maybe they’d consider it.”
“So it’s not a no? It’s just really hard.”
And he was right. The company had to pull some strings and negotiate, but eventually, the customer signed on, and in the end the cost to the company wasn’t quite as absurd as the initial hypothetical from the conversation. I had presumptuously dismissed a problem as impossible, when it was simply really difficult, but solvable.
I think we fall into this kind of mis-assumption just as easily in technical problems. Recently, I came across a programming problem with lots of moving parts, many touching relatively new, unproven technologies. I was getting increasingly uncertain about whether we could come up with a solution that worked well enough. Every improvement seemed to uncover three more edge cases. I subconsciously considered the problem ahead of me to be impossible, and my job was just to build something good enough.
But while brainstorming with other engineers, we came up with a few different potential, complete solutions. These solutions were impractical and naive, and I had dismissed them in the beginning, but they did work, in theory. And that conversation helped me shift the problem in my mind from impossible to just really, really complicated.
There was a solution, though, somewhere in between the really-impractical ideas we made up, and the kind-of-good-enough ideas I had settled for.
After some experiments, those solutions I thought were impractical ended up being good starting points for further work. I’m continuing to hack on it, but the problem feels much more approachable now. More importantly, I’m searching for correctness, not settling.
When working on a problem I believe to be impossible, I tend to settle quickly. My mind is constantly in search of the right tradeoffs, operating under the assumption that any balance of cost and benefit may potentially be good enough. But when I believe a problem to be solvable, albeit extremely difficult, I tend to think deeper, persevere longer, and experiment more ambitiously, which helps me arrive at a good solution faster without unnecessary compromises.
This doesn’t mean that we should assume every problem has a straightforward solution. I think that kind of unchecked optimism can also be dangerous. When we fail to carefully hold our ambition in check, we misstep on truly challenging and important problems like racism and privacy and misinformation.
However, I do think there are many problems that appear impossible at first glance, that really aren’t. Either they turn out to be extremely difficult but solvable, or we’re capable of re-framing the problem to something smaller that is solvable, even if complicated. And when we correctly identify these discrepancies, we can tackle some big problems that seem overly ambitious, and get it right.
Another word for these re-framed “impossible” problems is Moonshots.
Sending people to the moon, ending gun violence in the US, eradicating COVID-19, curing cancer. These are moonshots.
Much of the task of leaders, whether startup founders or social justice activists or legislative strategists, is to exercise good judgement about which problems in a problem domain are impossible, and which are simply extremely difficult.
The key to solving important and challenging problems is that: judgement, on which problems are worth solving, which solutions are good enough, and where we can’t compromise. These points of compromise form the outlines of our values. In this way, chasing moonshots is a constant conversation about ambitions held against constraints. Unbridled optimism held against uncompromisable values.
These moonshots are formidable challenges, but ones I think we can tackle with a judicious balance of optimism and prudence. Extremely difficult, perhaps, but – I hope – not impossible.
← Making Unim.press
Price of purpose →
I share new posts on my newsletter. If you liked this one, you should consider joining the list.
Have a comment or response? You can email me.