As important as it is to have people with the right skills and appropriate team structure to implement user-centered design, it is just as important to facilitate a good design process. An effective design process involves several phases: researching, designing, prototyping, testing, and iterating.

Research
Designing for users presupposes that the product development team understands the users it is targeting. True understanding comes from extensive qualitative and quantitative research, which help the team identify market segments and user needs, behaviors, and attitudes.

Design
A fundamental premise of bringing design into the development process is that design happens before programming begins. If the foundation is flawed, corrections can be difficult to make after coding begins. During the design phase, objectives and features are not only defined, but also who the target user is, what their goals are, what the context of use is, and what the task requirements are. As mentioned earlier, design tradeoffs are made based on the business case for the product, so it is important to establish the business goals upfront. During this phase it is important that the team consider the product in terms of goals, which are generally more descriptive than features.

Prototype
As the product evolves from a conceptual framework and interaction model, it is important to create prototypes of the design. Prototypes not only help communicate the design, but also help the team visualize the design and understand task flow. They are also useful for gathering user feedback throughout the design process, whether they are storyboards or interactive mockups.

Low-fidelity prototypes may be created using pencil and paper or in Visio. Such prototypes are useful for visualizing and getting user feedback on task organization or conceptual ideas. Hi-fidelity prototypes are more operational and allow the team to get feedback on the mechanics of user interaction.

Test
User testing during the design process offers many benefits. Feedback from user testing can provide input into the current design, future releases, and related products, and offer general lessons about usability that might be applicable across the entire network. It can also provide the development team insight into the user’s perceptions, satisfaction, questions, problems, and general use. More specific information about user research methods can be found in the next section.

Iterate
Rarely is a product team going to nail down the best solution on the first try. Therefore, it is important to allow for time to iterate on the design so the team has an opportunity to modify the design based on user feedback. The more the design can be refined upfront before coding, the more time spent on development can be saved. Of course, additional lead time is needed for the design team to design, prototype, test, and iterate, so involving UED upfront and early is imperative to fostering user-centered design.

ON: Reframing My Product Design Life Cycle via @jpenabickley