Cheap to change, expensive to change
Changing a wireframe takes minutes. Changing the same decision after it is built takes days, and after it ships to users, weeks — plus migration, retraining and support.
Design is not a styling phase before development. It is the cheapest place to be wrong.
Settle these in design
In practice these are the decisions that cause the most expensive rework when deferred.
- Who the primary user is when two groups want different things
- What the product does when data is missing, partial or wrong
- Which actions are reversible, and what confirmation each needs
- How the system behaves at zero, one, and ten thousand records
- What the user sees while waiting, and when something fails
- Which information belongs on the same screen because it is decided together
Empty, loading, error
Most designs are drawn in the happy path: realistic data, everything loaded, nothing broken. Real products spend a great deal of time in the other three states.
An empty state is the first thing a new user sees, which makes it the most important screen in an onboarding flow — and it is usually the least designed.
Prototype the risky part
You do not need to prototype everything. Prototype the part the team disagrees about, or the part no one can picture. That is where the risk is, and an interactive prototype settles arguments that a document cannot.
