I normally start with a problem (no matter how that problem was spotted), I collaborate with my team in order to make sure it’s a real problem and that is something important to solve as a priority. I do my research around it in order to understand why that problem is happening while interviewing product experts and users.
Once the problem is clear, I sit down with my team, and together we generate ideas to explore. The goal is to have something testable to put in the hands of users as fast as possible. It might not solve the problem, but it will generate user feedback.
Testing and validating ideas with real users is mandatory. Collecting all the feedback will allow us to iterate on the solution and deliver a usable product. It is far from done, but it will put your users in a better position than before.
Once that product is out, we will iterate again on it in order to make it lovable.
It will be the first version your users love and talk about it.