I follow the Double Diamond process. First, I research and define the real problem. What are your goals? Who are the users? What should the product do and what should it not do? Once this is clear, I move to solutions: exploring directions, testing what works, and designing every screen, state, and interaction your developer needs to ship.