Most privately developed applications are primarily functional, with little time and effort spent on design concerns and even less on usability. How many times have we seen applications that throw out a stack trace to the end user when an error occurs, or validation messages that highlight errors with the camel case code names for fields, rather than the labels used in the UI?
In a good application, the end user should never be presented with any code-based terminology. If we were writing an English based application, we wouldn't output error messages in Spanish, so why output them in C#? This can confuse the user and even alarm them in some cases.
How many times have you used an application that has an awkward process flow to perform each task, that involves far more mouse clicks than is necessary? This section is dedicated to avoiding these kinds of situations and suggests a number of ways of improving the usability of our applications.