Interfaces and prototypes agreed upon before any code is written.
Understand users and flows before designing.
Clean, consistent, and easy-to-understand screens.
Test the flow before development to reduce rework.
Reusable components and guidelines for long-term consistency.