Zain Rizvi bio photo

Zain Rizvi

Softare Engineer, Experimenter, Life-long Student. Working at Google making the Google Cloud Platform run

Twitter Github Stackoverflow

“The definition of genius is taking the complex and making it simple.” –Albert Einstein

In today’s world the most valuable employees are the ones who can tackle complex problems. And the best of those are the ones who can make the complex problems look simple.

But how can someone actually do that? Below are some tactics I’ve used which can make a big difference.

These tactics are designed to get me thinking about the problem space in different ways. The different perspectives often yield insights that help separate the core components into smaller, more manageable units (and of course this list is always a work in progress)

1. Ask Questions and Challenge Assumptions

Questions are at the heart of discovery. Every step here requires asking questions and striving to find the answers. One question you should be asking yourself is “What assumptions can I challenge?”

Note: Challenging assumptions includes challenging your own assumptions. The mere act of trying to discover what assumptions you and others are making can give you a new perspective on your project.

2. Discover the Core Problem

What is the core problem(s) your boss (or whoever gave you this task) is trying to solve? What are your customer’s burning pains? Note: Your customer is whoever will use the thing you’re making. It could be your boss, your IT department, or your company’s customers.

Go beyond the mere features being asked for and get to the heart of the problem. This is the difference between “I need a SQL database” and “I need a reliable was to access and modify my business critical data”. Perhaps you can think of a better way to solve the problem.

Ask questions like: Who cares about this problem? Why is it important to them? If there are no good answers to these questions, is the problem even worth working on? Maybe this is an opportunity to quit early

Understanding the burning pains often involves talking to stakeholders and customers. It’s hard to understate how valuable the insights you’ll get with this step can be

3. Componentize your Solution

You should have some idea for a solution at this point. If you don’t, take some time to come up with one.

Take a close look at that solution. Which pieces could be split into separate modules or components? Can any of those components provide value independently? If not, can any be tweaked so that they do provide independent value?

4. Find your MVP

Think about what would make a good MVP (Minimum Viable Product) for your product. Remember, the goal of the MVP is to learn information that will affect the design of the final product. Try to Identify at least three different questions you want answered and what MVPs you could create to answer them (hint: the same MVP is unlikely to answer all your question)

Get creative in what you consider an MVP. Maybe showing random strangers at Starbucks a napkin drawing of your app’s layout would be good enough.

5. Let your Subconscious Work

If you follow steps 1-4 then you will most likely develop a much better understanding of your problem and already developed a bunch of insights.

Great, go work on them!

Now that you’ve spent so much time researching the problem you’ll probably find yourself also thinking about it in your spare time, when you’re in the shower, driving, etc. This is when all the different pieces you’ve been studying for so long can suddenly click together in a new way, giving you a fresh insight.

This eureka moment might happen a week or two (or more) after you’ve started implementing your previous ideas. Don’t be afraid to throw those old ones away in favor one something you now know is better!

The Real Secret

The common theme here is to develop a deep understanding of the problem you’re working on, which can lead to fresh insights others may not have. The above tactics give you that understanding by forcing you to look at the issue from different angles.

But undoubtedly there are other ways to achieve that understanding as well. If you use different tactics to achive this understanding I’d love to hear them!