1. Understand the user problem and business goal, through researching users and analyzing the company's business model.
2. Explore divergent solutions on pen and paper to better clarify the problem and identify technical constraints.
3. Code clickable prototypes and/or make high-fidelity mockups to refine the solution and test usability.
4. Focus on tech quality—maintainability, flexibility, and performance—and speed to launch.
5. Validate hypotheses during post-launch for next iteration.