Maxim #2: Always know what problem you are solving
When evaluating any course of action, whether it be a feature, building an entirely new product, or even just making an efficiency improvement, the most important thing to know is what customer or stakeholder problem you are solving. There are two key reasons to understand and focus on the problem. First, when you understand the problem, you can then assess how much value is created by solving the problem. Second, understanding the problem well means you are likely to actually solve the problem.
Understanding the problem seems like obvious advice, but it is surprising how often the customer's problem is not understood before embarking on building a solution. Customers frequently ask for a particular solution rather than stating the problem they are trying to solve. The sales or customer-facing team will then relay the requested solution. Every ask for new functionality has a problem behind it, and good product managers always work to understand the actual customer problem before doing anything else.
If you do not understand the problem being solved, it's hard to assess the value of the solution, as the customer value of the solution is entirely the value of solving the problem. It's also difficult to assess how many other customers will benefit from the solution if you don't understand the problem. A future Maxim will cover why it's far superior to ask customers about problems than if they will use your proposed solution, but for now, let's just say you'll get much more insight by asking about problems. If you understand your customer segments well and understand the problem well, you'll be able to make a pretty good guess about how many customers will benefit from solving the problem before you even start your customer research on the issue.
The second reason to understand the problem you are solving is that if you understand the problem, you can assess how proposed solutions solve the problem. Customer-proposed solutions often do not solve the problem they are trying to solve or do not solve it well. Customers are experts on their problems, but are not experts on the best ways to solve them. I've had numerous experiences where the solution the customer asks for won't actually solve their problem or will only partially solve it.
Even if the solution the customer asks for would do a great job solving the problem, your customers certainly have not considered the level of engineering effort or your operational cost for their proposed solution. Often, there are alternative solutions that are less expensive to build or maintain. Once you understand the problem, you can explore the entire solution space and often will be able to craft a solution that’s better on one or more criteria. Another issue with customer asks is that the customer is only considering their problem, and you may be able to generalize the solution so that it benefits more customers, but that requires understanding the problem you are solving.
Sometimes you once you understand the problem, you won't need to build anything new because your existing product already has a way to solve that problem that the customer isn't aware of.
As an example, I recently was involved project where the product manager decided the problem to solve was for a given piece of functionality to ensure that there were not any future cases for any potential customer that could not be accommodated. This resulted in designing a very complex system that took a year and a half to build. In the meantime, there was significant opportunity lost since there was a large segment of customers who immediately needed something far simpler. If the problem was defined as needing the solve the common use cases or even the 90% percentile use case, different decisions would have been made and value would have been delivered sooner.