At the beginning of every new project, I want to gather as much information as I can.
I want to know:
I try to answer these questions by conducting User Interviews. I find that talking directly with end users is the best way to learn what their needs are. I want to know what issues users are having and what they want to accomplish with this new product or feature.
Analysis of the research will help me begin defining the features and functionality that will constitute the scope of the product. This is where I start framing the problem (if any) and generate a list of functional specification and the content requirements.
User Research is the key to creating an informed user experience.
Next, I want to map out the user's workflow. I would brainstorm and design a high-level user flow and outline each step the user would have to take in order to achieve their goal. This helps me understand the "happy path" as well as any potential pitfalls or confusion they may run into along the way.
Once the user workflows are created and all their needs are satisfied, I move onto to wireframing and rapid prototyping to test any assumptions that were made and to see if the user actually wants what they said they wanted.
Depending on the product complexity, project deadlines and other business needs, I judge how much time I have to play around with various ideas. Generally, I use pen and paper to sketch out a few designs and ask what other team members think. This helps me begin visualizing what the User Interface (UI) may look like and what it will contain.
From there, I open my favourite prototyping tool, Figma, and I start using basic components from a library or the company's Style Guide to create the Information Architecture (IA). This is the structural design of information on the page. When doing this, I want to focus on the usability and find-ability of content on the page.
Side Note: I used to use Sketch and InVision as my main prototyping tools but switched to Figma since it can do both design and prototype all-in-one. Also, the developers like the hand-off method from Figma a lot better.
Once the main pages are built and the UI begins to take shape, I start adding interactions between each page to prepare for upcoming user tests. After this step, I will have a workable, Interactive Prototype that gives me a better sense of what the new feature will look like, how it will behave and what it will feel like to use.
Now comes the fun part; designing and conducting Usability Tests.
This is where I design an experiment and test the product (prototype) directly with the user. User Tests like this are great at giving insight and opinions as well as finding likes and dislikes of my designs.
After collecting data from users, I start my feedback analysis. This consists of consolidating and understanding what happened and why. I look for patterns and pinpoint areas that need improvements.
From my notes and observations, I iterate my designs and make the necessary changes. My aim here is to improve usability in every way I can. This is a continuous cycle of testing, improving and repeating. UX never ends!
During iterations and re-testing cycle, I also work on the visual aesthetics of the UI. I enhance what appears on the surface - the beautiful UI - and move from low-fidelity mockups to high-fidelity ones.
Design iterations can vary anywhere from something minor such as changing a specific icon on one page or something major like re-thinking a certain workflow and other functionality.
Once the results from the final user tests are all green and no more changes need to be made, I setup a meeting with the executive team and project stakeholders to walk them through this new feature. Then I do the same thing with the development/engineering team to make sure they understand the technical requirements of it. I go over use cases for it and show them what each step entails, how the feature should behave, what it looks like and mention any limitations it should have. Ex: A max character input or a max-height on a certain div.
And finally, as a team, we create User Stories and fill them in with UAT Steps, Expected Outcome and the technical tasks required to complete the story. I attach my designs to the story so the developers have everything they need to build it successfully.