Where every project is different and may necessitate a different approach I have a fairly typical, but ever-evolving design thinking-based process working in a (preferably agile) team with product owners, researchers, developers and testers:
Meeting with the customer and gathering information. This is about understanding the goals of the customer and the problem we are trying to solve for their users. Often a customer may come with a solution in mind and we must take a step back to make sure we are aligned on the problem to be solved.
This stage also involves understanding more about their user and their pain points, developing user personas and carrying out competitor analysis.
With our low-fidelity prototypes, I work with our user researchers to test with users and iterate on our findings. This may consist of several rounds of testing and iteration depending on feedback.
Once the product has been launched into the real world and in users hands we continue to gather feedback to iterate and improve upon what we have built.