
I’m am an engineer. I write software for a living. I love nothing more than solving hard problems. Oftentimes I have to resist the urge to try to design the biggest, baddest, most elegant solution that solves all the problems at once. It’s hard to resist the urge because I know with a high degree of certainty what the solution should resemble. But I must resist the urge because the cost/benefit is often too hard to recognize for normal business situations. So here is how I think about creating long-term value without the risk of “big bang” projects.
But first, some philosophy…
Pain Now vs. Pain Later
Humans are naturally comfort-seeking experts and chronically short-sighted. Most people know that eating vegetables and getting to the gym are good for us in the long run. But eating Cheetos and watching Netflix feels good now. “The gym will still be there tomorrow.” Maybe we’ll regret it when we’re [more] overweight and a drag on the medical system. But Cheetos today is always a good idea, right?
Another way to look at this is in terms of preparation. When you have a deadline for something public — a presentation, a competition — you are guaranteed to experience “pain” as a part of the process. It can come in the form of private preparation, or it can come in the form of public failure.
Good news: You get to choose which kind of pain you will endure.
We’re getting to the part about boiling the ocean…Stick with me.
Conflation
When we’re trying to solve a problem it’s always a good idea to look for the simplest answer. This will get us to the solution we need faster, and that’s good, right? From a customer’s perspective, they get value sooner. From a business perspective, we get more money sooner…win/win.
Don’t Trivialize
There is no doubt that simple is good. But don’t trivialize. One of the worst phrases used by engineering and product leaders is, “Can’t we just…?” Almost every time this phrase comes up there’s a bunch of engineers that kind of shrug and say, “I guess so.” The problem here is that 99% of the time (or some other made-up statistic) “Can’t we just…?” doesn’t consider the big picture and the long-term effects.
Good Enough Never Was
OK, so instead of solving the whole problem, let’s just reduce scope.
Great idea! How agile of you. This is a great approach IF you actually iterate and refactor. Launching an MVP (or POC) is the beginning of the project, not the end. Don’t devalue your customer’s experience by only giving them the minimum version of the product.
Simplification vs. Small Thinking
Simplifying the approach to solving a problem is distinctly different from dumbing down the solution. We should try to simplify. We should absolutely not give in to thinking small just because big seems hard.
Boiling the Ocean in Two Steps
Step 1: Begin with the end in mind.
When you’re solving big problems with lots of potential risk and ambiguity, you must start by thinking BIG. You have to envision what the ocean will look like when it’s boiling. You have to think about how that boiling ocean will solve all the problems that may come up in the future. Write it down. Draw pictures. Discuss and debate it. Ultimately, align the team on what the end looks like. Agree that even though the vision looks like this now, new information could shape the vision as time goes on. This context will serve as a decision-making framework for the team without the need for explicit direction. TL;DR: Establish a big vision.
Step 2: Don’t actually boil the ocean.
Now figure out what the smallest and/or most valuable part of the final vision would be the best MVP. Reduce your scope to this MVP, but ensure the scope includes time to plumb in some degree of abstraction to accommodate the end vision. This is what I call “MVP+” or “looking around the corner”. This is the secret to strategic incremental improvement rather than tech debt on tech debt.
By taking the relatively brief moments to think big and execute “MVP+” you are engaging in a small amount of pain today to exponentially reduce your pain tomorrow. Or, more positively, by taking a small amount of time today, you’re giving yourself back exponentially more time tomorrow. When you compound this effect over months and years, the ocean will boil, and you will end up with more opportunity than those that choose short-term comfort.*
But do not skip step 1. Go re-read it now.
*This doesn’t apply only to software development.