Know your user– This can be hard when your user group is very general
Reduce cognitive load– This concerns designing so that users don’t have to remember large amounts of detail
Engineering for errors – Engineering for errors includes forcing a user to prevent him or her from making an error or at least make it more difficult
Maintain consistency and clarity– You can maintain consistency by using standard operations and representations and from using appropriate metaphors that help to build and maintain a user’s mental model of the system