My Process
Every project (and company) is different, but my general approach and design process is consistent.
🏹 Context + Objectives
Before jumping into any project, I need to understand the greater business objectives and context. What is the business model? How does this work support the business? Who are the stakeholders? What are the associated risks? Does this work roll up to any OKRs? Are there any expected obstacles or sensitivities?
I also prefer to have insight into the engineering org. Understanding the tech stack and limitations allows me to design feasible solutions without unnecessary rounds of feedback and iteration.
🧐 Discovery
I rely on some combination (project-dependent) of the following discovery and research methods:
Market research
Competitive analysis
User research
Surveys
Moderated interviews
Card sorting
Moderated/unmoderated user testing
Stakeholder interviews
User session recordings
Heat maps
Any other qualitative or quantitative data available
🤓 Problem Definition + Hypothesis
Insights come from discovery. My involvement in this part of the process varies by company, team, and individual project. I believe that design should be a strong voice here due to the time spent focusing on user needs and pain points.
I develop problem statements based on observations and data. I then form hypotheses to test through prototyping.
🎨 Design
I design using an iterative process that includes feedback and collaboration along the way.
Ideation: Quick exploration of ideas - usually using sketches or whiteboarding
Prototyping: Design fidelity increases as decisions are made and flows crystallize
Wireframes
Mid-fidelity
High-fidelity clickable prototypes
🔬Testing
Design is an art and a science - and science requires data. The more data we have before launching a feature, the more successful it will be. And the more data we can track on a feature’s performance, the better the next iteration will be. I prefer to test as much as possible using the following methods:
Pre-launch user testing
Paper prototypes
Wireframes
High-fidelity prototypes
Post-launch muti-variant testing
♻️ Iteration
A design is never done. Once a feature is launched, we learn from user behavior and start the process all over again for the next iteration.