All design work begins with a solid understanding of who you're designing for, and early on is the best time to bring in users. I use broad focus interviews and observation to get a clear understanding of the types of users we are dealing with before building out personae.
Having spent time with users puts me in the position of being able to define the problems that users are having. This ensures we are building a solution to problems that actually exist.
The aim here is to find as many solutions to the problems as possible in a short amount of time. I will usually do this with the team, although often I'll bring solutions suggested by users in the initial interviews.
Prototyping has the advantage of being really, really fast. Several options from the previous stage can be built out and evaluated in a short space of time. Usually several will be discarded and only a few will make it to testing.
I use a combination of face-to-face or remote moderated testing and online automated testing to establish the strengths of different prototypes and iron out the pain points. Several iterations of prototyping and testing are usually required before we arrive at a design ready for market.