Every time I make chicken enchiladas from scratch I have to go back to the recipe and follow it pretty closely, otherwise there will not be a delicious outcome in the end. Similarly when I start a design project there are certain steps I like to take. The intensity of effort depends on how much time/resources the project can provide you with. Sometimes it’s napkin sketches and “paper prototyping” and sometimes it’s a full blown A/B testing with [x]% of real people getting to use the feature. Here are the main stages of my design process:

Discover
This phase is all about collecting data and information to understand the requirements, get in touch with the users, define use cases, analyze competitors, research latest UX trends. It's also a good time to meet with the product team on to align on mvp feature set.
Define
My favorite stage where UI definition of feature happens through sketches, white boarding and wireframes. Testing and evaluation is part of this stage. Design team builds initial mockups and share with stakeholders to get their input.
Design
After the layout and flow are finalized, the next step is to turn the initial mockups and wireframes into great-looking interfaces with themes and styles applied to them. Preparing and sharing of design specifications (principles, guidelines, colors, typography, iconography, building out the foundation of design library) to Development team is also part of this stage.
Deliver
Development team builds back end functionality first and connects it with UI when they get design specs. How do we know that we are heading in the right direction? Every time my team works on a project or feature, I like to step back, do a mini heuristics evaluation and ask:

After this the process will iterate itself and depending on the required changes, we may go back one of the the initial steps. I believe that every great user experience can only be achieved by following an iterative Design process. Rinse and repeat:)