You may have the best product ever, but you will never sell a product. Instead, you have to sell a solution to a problem. The greatest solution in the world has no market if no one has the problem it solves. So how do you match your wonderful product with the right problem?
It Starts Before You Do
Before you even have a product, you need to start understanding your market. Ask questions. Get to know your audience before you spend time developing a product. Why waste six months developing something that nobody wants? Start in with your research early. Look at things similar to what you want to make and understand the gaps and limitations that your new product can fill. Then ask people whether or not they actually need you to fill those gaps.
Amazon (and its reviews) can be a great starting point for your research. You can discover a wide world of products and whether or not similar competition to yours exists, as well as how well it performs. The reviews provide insight into potential customer challenges and desires that you can look to address with your product or service.
Another problem that can plague product developers is overbuilding the product, spending too much time developing the product, often to create excess feature functionality that nobody actually needs. Here we can steal a process from agile software development - the concept of a "minimum viable product." The idea is to define the least possible functionality required to create the marketable product.
For sure, some of your feature ideas may be wonderful, but they can't delay the release of the product. Instead of spending excessive time developing additional features, focus initially on getting out a good product that solves a customer problem, and make sure that it has a market. Then, you can work through your backlog of features, making sure that each of the features has a market, much in the same way that you discovered the need for your product - research and interrogation. Thus, you can avoid wasting time developing unnecessary features and create only what your customers want.
Never Finish, But Get to Done
No product ever reaches perfection. Once you have launched your minimum product, you likely will have many more features to add to continue to build it out for your customers. This phase is important and can solidify the product greatly, as you have actual users and customers of the product that can provide you the most valuable feedback in terms of enhancements and needs. But the enhancement cycle can become an endless loop.
To prevent this infinite chase for perfection, set a concrete goal that means you are "done." Maybe you want to sell a certain number of items or hit a specific number of customers. Maybe you need to limit the total time you spend on a single product. Whatever the test, create and write down some outer bound on product development for a given initiative. Once you reach it, force yourself to move along. Work on something else and get that to done as soon as you can. Certainly, you can keep enhancing the previous product, but you need to move your focus towards creation rather than enhancement.
Instead of developing products, you evolve them. They start by identifying an actual need that exists in the marketplace and matching your product to fill that need and close gaps. Then, you need to determine the minimum product you need to be able to get sales started and begin to receive feedback from your customers. From there, you have the ability to enhance and modify the product to move forward, though you should define your criteria for being done and prepare to move on towards your next product. Lather, rinse, repeat and build a portfolio.