Whenever a new user starts to use a new program, he is not completely blank. He always has some ideas as to how the program will work and what he’ll be able to do. If they have been using a similar program prior to this, they will automatically think of it as the same kind of software. They might also have certain intelligent expectations and suppositions about the UI of the system. This cognitive understanding of the software is known as the user model.

The software in question also has a cognitive model which is the actual implementation and is known as the program model. The principle here is that the developer end has to ensure that the program model is as similar to the user model as possible. This would be the measurement of success of a user interface.

How to determine the user model?

The question here is simple; how in the world would one know what user model to follow?! Fortunately, the answer to this can be acquired relatively quite easily. All you need to do is question around five or six random people!

The first step is to choose the people you want to question. Next, explain to them generally what your application does. After that, you need to elaborate the specific scenario, also in simple enough terms. All you need to do next is just ask small and simple questions which will help you guess the user model on the basis of their answers. It is also possible that for some cases, the users don’t have any idea or simply don’t even bother enough. In such a case, you need to access a wider population. This will help in being able to determine the popular user choice. This prevalent choice is what a good user model would be. After that, all you have to do is ensure that the program model corresponds to that user model.

The next part in the strategy is that you have to test your formed theories. You can do this by building a prototype of the interface in question and give it to some users to test. Help them do this by asking them to carry out a task using the interface. Ask them to think aloud while they try to perform. Be sure to know what they are expecting and what they think is going to happen or happening.

How extensive should this activity be? You shouldn’t follow instinct in this regard and should only test through five or six users. The reason for this is that five or six users provide sufficiently desirable results and if you keep on testing with more users, the results would not vary and useful time will be wasted. For this usability testing, you don’t need an extensive lab setup. All you need to do is grab a few people nearby and interview them. Talk to them through the task and ask them what they are thinking and expecting.

An important thing to remember is that user models tend to be simple rather than complex. This is due to the fact that people have to guess and they only guess the basic things.

An example to demonstrate this fact is based on the Alt+Tab key combo in Microsoft Windows. A user would assume that he would be automatically directed to the next window BUT this is not the case. Only after a couple of tries the user understands that this combination takes you to whatever he previous screen was and you have to use multiple presses to get to the screens in line. This is a difference between this programs user and program models.

The reason behind sticking to the simpler models is that it’s already hard to ensure that the program model conforms to the user model. And if one complicates the program model, it becomes even harder to achieve this level of conformity. So one should always opt for the simplest model possible.