“A user interface is well-designed when the program behaves exactly how the user thought it would.”
Letting people who use your software feel that they are in control of their environment makes them happy. To pull this off, one must correctly interpret their actions. Getting the interface to behave in the way users expect can be a real challenge.
In his article Controlling Your Environment Makes You Happy, by Joel Spolsky , Joel mentions an important theory of psychology called Learned Helplessness, developed by Dr. Martin E. P. Seligman. Supported by years of research, the theory asserts that a great deal of depression stems from feelings of helplessness. The helpless feelings are the accumulative effect many little instances of frustration. In many cases Frustration comes on when things a person tries to control, a UI for example, do not behave as expected.
We are happier when we feel that we can control our environment. We enjoy when things are working. Next time you find your self frustrated, angry or out of sorts, notice if you are feeling in control of the situation or not. It may be just a small thing that sets you off – or, will it be just one small thing? Likely it will be an accumulation of several small things that rob you of control within your environment.
Excellent UI design requires making users feel at home and comfortable with every “small thing”. Think about the software you love to use, the devices you love to swipe and sites you enjoy visiting. The sites you recommend to your friends and colleagues are the ones that make you feel smart. If software fits like a glove you feel “at ease” and get a sense of accomplishment.
It is not possible to anticipate a users every action. This is why user testing and studies are so important. This is also where MVC software design pattern shines as it more readily accommodates the tweeks and changes to the “view” as results of the user experience studies require.