The program should respond to every user input or action. If an error should occur, inform the user by displaying a message describing the problem. Make the message instructive by informing the user about which error occurred, where it occurred and maybe suggest corrective actions. The messages should be brief, specific, and appropriate to the user's level of knowledge.
All documentation for the application should be available on-line, and in a search able form. Context sensitive help should be available. That is, by giving one command the user should be given help related to the screen he is currently on, with the ability to explore other issues. Help should be given at all levels of granularity, for screens, fields, codes, and messages. Help should be accessible at all points in the application. The user should be able to choose different levels of help, since a novice user needs more assistance than an expert user.