Product Development

Have an idea for a project? Read this first.

As a software developer, I try to create products that solve meaningful problems. I believe that to solve any problem, you must first understand it. Then, identify and solve its root cause, not its symptoms.

A common mistake that I’ve made is having the assumption that my experience of the problem represents the problem in its entirety. This led me to create a product from my own bias and with my own assumptions about reality.

Who we are seeps into what we create. However, we have control over how much bias is ingrained our products.

Know Your Problem, Beyond Your Own Experience

Use the solution you currently have as means to understanding your own assumptions. Ask yourself: What needs to be true about the world in order for my solution to work?

The answers to this question will be a list of your assumptions. From here, reach out to people who you believe experience the problem you’re solving.

Ask them questions that threaten to invalidate your assumptions.

It’s important that you don’t ask directly about your solution. You are (in)validating your assumptions about the problem, not the solution. Most of the time, users don’t know what they want until it’s in front of them. However, they can give you valuable information about the problem they experience from their own perspective.

Asking questions that threaten your understanding of the problem broaden the potential of your solution. With enough perspective, your solution can stretch across the entirety of the problem’s effect on the world.

Apply External Perspectives to Your Solution

Once you’ve gathered a deeper understanding of your problem, you can revise your solution to be applicable to the multiple dimensions of the problem.

With perspective, your solution is now able to adapt to cover cases that you initially overlooked.


Ask yourself: What is the smallest thing I can build that would provide value to users?

The answer to this question will be the simplest version of your product, also known as your minimally viable product(MVP).

Building your MVP first is beneficial because it gives you the ability to ship a usable product to users for feedback. A MVP also serves as clearly defined, quickly attainable goals, allowing you to filter out features that aren’t absolutely necessary in providing value to your users.

Now that you have a deeper understanding of the problem and your own bias in solving it, have adapted your solution to include other perspectives, and have scoped your product down to the simplest way to provide value to your users, you’re ready to build! Don’t forget whom you’ve asked questions to — they might be your first users!

Think this article was valuable? Click here to share it with others on Twitter!