There are a lot of versions of the user centered design approach or the user experience design process. In general, they are all very similar because they put the user at the center of the design decisions, and we must be obsessed to satisfy the user so he/she can complete the task with ease and joy. Here are the steps I take for my user centered design approach.
The first step is gathering requirements from the user so I can have context and information of the problem that needs to be solved. I already mentioned some of the methods for gathering requirements for a system. But they are not the only ones. For instance, if it is possible, I would like to read old documentation, use the current system to have a better context of the current problems. This gives me the overall context and opens the door for more questions during this process when needed.
The second step is putting myself in the users’ shoes, so I have an idea of their frustrations and problems they face by doing the work manually or using a poorly designed system. Here, I create personas, empathy maps, and design reviews, task analysis, and others. Here, I could do heuristic evaluations or usability testing in current systems to find gaps in the design.
After having context and understanding the users and their struggles, it is time to brainstorm solutions. The solutions don’t need to be polished designs or anything remotely. They just need to be solutions that can be even written on a piece of paper, they could be rough sketches, and even screenshots from other applications that solved similar problems. It is never a good idea to just create one solution because it will be biased as our preferred one and as we are not investing a lot of resources into developing an idea, we can take the time to explore a lot of ideas via sketches that can be discharged later. From those ideas, if time and budget allow it, the best one to three ideas can be explored further. The ideas that need to be explored in more details could be in a more defined design that is developed into a prototype, so it is validated in the next step.
From the ideas explored in the previous step, it is necessary to validate our assumptions with real users. Therefore, we need to test our solutions to see if any other problem arises or the problem solves the user’s needs. This step helps us to evaluate the solution against the requirements set in the first step. In most cases, this brings us back to the first step and it continues as a loop of changes until the product is right and the user is satisfied. Thus, with each iteration, we are closer to the final solution.
This is my process for tackling design challenges. However, it must be clear that it is an iterative process and that it is never correct on the first try. Moreover, the user is at the center of all the processes and in doubt, go back and validate with the final users. Also, it is better to fail early and often when it is cheaper to make changes to get the right design that allows the user to perform the task with ease.