Where every project is different and may necessitate a different approach I have a fairly typical, but ever-evolving design thinking-based process working in a (preferably agile) team with product owners, researchers, developers and testers: 


Meeting with the customer and gathering information. This is about understanding the goals of the customer and the problem we are trying to solve for their users. Often a customer may come with a solution in mind and we must take a step back to make sure we are aligned on the problem to be solved.

This stage also involves understanding more about their user and their pain points, developing user personas and carrying out competitor analysis.


Ideation usually consists of lots of rapid sketching, scamping and whiteboard collaboration to identify a number of potential solutions. Focussing on the riskier or most problematic areas first means we can reduce the risk of investing a lot of time and money on something that may not meet the user’s needs or be technically feasible. Depending on what we’re developing, this stage would typically involve the creation of low fidelity prototypes, wireframes, user journeys and user experience maps. A few high-fidelity screens will also start to be developed to give an indication of how the end product might look.


With our low-fidelity prototypes, I work with our user researchers to test with users and iterate on our findings. This may consist of several rounds of testing and iteration depending on feedback.


At this stage, I begin to develop high-fidelity UI for more of the key screens as the visual language starts to build and forms a component library. Motion design and micro-interactions are also considered to bring the product to life. With these high-fidelity screens, further clickable prototypes are usually developed to further test with the research team.


Once the product has been launched into the real world and in users hands we continue to gather feedback to iterate and improve upon what we have built.