Optimize the design for frequent or critical tasks.
Provide a task flow that is predictable. The page layout should reflect the user's natural completion order.
Provide clear ways of continuing, going back and going home on every page.
Use terminology based on the user's language. Avoid technical jargon.
Maximize memory recognition (e.g. with defaults) and minimize memory recall.
Provide timely and relevant feedback to the user regarding system status. When there is a problem, tell the user exactly what's wrong and how to fix it.