I always encourage my team to follow the below steps for every project, no matter the size or the scope of the project.

1. Research - understand the problem

Understand what the stakeholders have in mind for the project.
Ask questions and listen to understand the problem and requirements.
Conduct market research to evaluate similar products and understand how and why people use these products.
Define your persona, and if possible conduct interviews with users that have this profile.

2. Create flows

Create possible scenarios and user journeys to illustrate how the users would interact with the product.
Develop flows to illustrate your findings. If this is a redesign, this is also a good time to create an audit flow and show what works and doesn’t work on the existing UX.
Discuss flows with stakeholders and make decisions based on findings.

3. Sketch/wireframe

Sketch out some ideas. At this point, I would recommend inviting stakeholders to a sketch session and obtain immediate feedback. Make sure to include engineers on this step to get early feedback on tech capabilities.
Based on the feedback, create wireframes that represent the selected flow from step 2 and share the wireframes with stakeholders to describe the proposed UX of the project.

4. Prepare mocks and prototypes

After agreement on the UX, create detailed UI mockups, and seek feedback from stakeholders, including the engineers. Then, create prototypes to test the design.

5. UX research - user testing

Test the prototypes created on step 4 with users and gather qualitative data about their experiences using the product.
Ideally, this process is cyclical, the feedback from the UX research informs updates to the design and new prototypes are tested and refined accordingly.

6. Development

After the prototypes have been fully tested, make changes according to the results of the testing and feedback from the stakeholders.
Package your mocks with requirements and specs for the engineers to start development.
Be sure to be available to answer questions during the development stage.
Test the end result before it goes live.