When tackling new projects, I have a set of checkpoints I try to apply to all of my designs. Ideally I like to make sure all of these checkpoints are met, but since working environments and design methods vary from company to company, I try to apply them where I can.
Frame up the problem. Take a step back, look it all over.
I ask myself lots of questions around the problem. I then do the work of interviewing all the stakeholders for the requirements needed. Finding all the pain points the user is facing will really help me to understand the requirements proposed, and ultimately help me to craft the best possible solution.
I want to get to know the problem inside and out. I make it my best friend.
I'll look into competitors solutions and how that thinking could be leveraged in my planning. I try to talk to everyone that's involved. Were there any previous designers or product owners that worked on an earlier version I could get information from? What is the persona of the user I'm designing for? How can I gain more knowledge around the users habits? This helps me craft the best user stories for the given experience. I then start to think how the solution could reflect the brand values. Which of these do I want to target? All this preliminary research helps me to craft the best, most accurate user stories for the experience. This is the stage to get all that knowledge out and on paper (so to speak).
Sketch. Sketch some more. Kill your darlings, then start again.
Think outside the box. Cliche, I know, but, this helps me to rule out over-reaching solutions and narrow in on the most creative for the problem. How do these solutions answer the user story? I then filter out the weaker solutions and refine down to a clear winner. This helps me to establish a solid framework when moving into the visuals phase.
Now it's time to push some pixels.
With the established framework I've built, it's now easy to apply visual styles on top of this. I'll reference the brand values I've targeted and how I can highlight those visually in my layouts. When I want feedback, I ask for it on specific areas I feel need work. Then, I refine and iterate until the perfect balance of function and brand values are achieved. I make sure to get the needed approvals, then redline that sucker and SHIP IT.