This flow shows what I believe is the ideal full process to follow in doing thorough user-centered design. In many cases due to time constraints or an already-defined feature, only some of these steps are appropriate, but still as many should be included as are relevant and possible, prioritizing among them.
In general, it follows a standard beneficial pattern of design thinking to identify ideas, prototyping, and user validation, iterating and backing up a step as needed.
However, there are specific steps I would recommend as schedules allow. The descriptions of each below use examples from a variety of projects I led, in all of which I was very hands-on (creating the wireframes, leading the brainstorms, etc.) as well as overseeing the process.
0. Create and Answer a "Question Zero"
Define the project and get everyone on the same page with questions like for what, for whom, why, when, with what resources, done by whom, compared to what, etc. (done with the entire project team and all stakeholders). This can be very important to ensure all involved are solving the same problem and syncing that up.
1. Brainstorm Initial Ideas
This forms the ideas which can then help identify whom to do research with and what to ask them. This is not the set the of ideas to use, but a way to start the research process (though in a schedule too tight to do research, this might be what you have time for instead).
2. Group Ideas Into Themes
This helps organize the thoughts, and will help guide questions around those areas.
3. Create Questions, Both Around the Themes and Open-Ended Questions
Ensure the themes are well covered, but include open questions for different ideas. You can always ask additional questions live, such as to drill down on something, but this guide should provide a consistent basis of core questions for multiple people you are interviewing.
4. Interview, Discuss, and Whenever Possible, Directly Observe
Have multiple people take notes if possible, writing or typing based on at which they are faster. Make an audio recording (with permission) which you can refer back to later if needed for quotes or clarity. If you can watch the person do a task around your topic area, you will learn significantly more, in things they never thought to say and should make notes of what seemed clumsy or improvable, as well as what already works well.
5. Summarize Key Insights
This can capture the most important ideas and even be posted on the wall. But capture the others too, on post-its so they can placed later with other related items. Optionally include a photo of the person to help remind people who said these things.
6. Identify Opportunity Areas
Create "How Might We" questions from insights, then group them by theme to identify missed ones too. Specifically wait to actually design solutions yet, to avoid leaving opportunity areas behind.
7. Have Key Stakeholders Vote on Themes to Pursue for the Project
Dot stickers can work well for this. Be sure all understand the theme content beyond their simple titles though. Make sure to keep the full set for future projects.
8. Pull Out the Chosen Themes, Then Brainstorm for Each Opportunity Area Within Them.
The brainstorming is best done with a broad group for a wide set of ideas, and the ability to build off each other. Moderate this to avoid people making negative comments about anyone's ideas or spending too long on one instead of identifying other ideas.
(You'll recognize the theme post-its brought over -- the pink ones are the opportunity areas for those themes, and the light and dark yellow post-its are the brainstormed ideas from the session)
9. Choose the Most Promising Ideas, Considering All Aspects
Ideas should be considered for technical viability (not limiting to what is possible now, but to what could be reasonably possible with work), business viability (whether the solution would be of a price anyone would pay, competition, etc.) and of course user desirability based on the research done.
Stakeholders making that decision can then vote on the best ideas to pursue. Colored dots work again here (and you can see in the photo above that step already done).
10. Create Wireframes
Wireframes are perfect for working out the details of ideas and socializing them with stakeholders, executives, and potential users. They work particularly well because they do not look so finished or looking like they required so much work that people are afraid to give you major changes or tell you something is completely wrong, but they also do not have color or icons typically which would distract people and provide detailed feedback instead of the flow and layout feedback you want at this stage.
11. User Test
Whether it is from wireframes, rough physical prototypes, or anything else, get user and potential user feedback as soon as possible to ensure you're on the right track and check for major issues. The longer you wait, the more expensive it is to change directions. If a random selection of people is chosen, 10 - 20 users will usually be enough to get most information.
12. Analyze User Test Results and Make Changes
Prioritize issues by importance as well as frequency seen, to identify which need the most attention. Often a small change can address an issue, but a major change may be needed -- it's good you found it now!
13. Create Visual Designs
Once the layout and flow design has been finalized, create visual designs. Ideally use a professional visual designer, as I did with these projects, and include that person to some degree from early on in the project so they understand the goals and don't just have something handed to them cold.
14. Create Specification and/or Click-Through
Document the design for development. For software, this is often best done with a clickable demo that shows the screens and flow, rather than a lot of text. But in most cases some descriptive text will be needed. This can also be a good way to show the design planned to executives and others who may want an update or chance to approve before proceeding.
15. Work Closely with Development While the Project is Implemented
Check in regularly with development, and ensure they feel comfortable contacting you with any questions or issues arising. Ensure time is reserved in the schedule for a review to ensure the implementation matches the design, and to make any fixes.
16. If Applicable, Plan Out Presentation Details and Present to Customers.
This will also allow getting additional input, which can be used on the next version.