In computing contexts, the "Explicit User Model" refers to a practice in which programmers attempt to define the model that users have for their software, then write the software to conform to that model.
This seems sensible until you discover that the users model everything, even your model. So, once you have your software that conforms to the users' model, the users will construct a model of that model. If you want to respond to that, you have to construct a model of the user's model of the current model. And so it continues.
[...] And so it continues.
Not necessarily. After all, humans also build models of each other without running into this problem. You stop if you reach a fixed point (which is guaranteed, because every modelling iteration throws away some detail to fit a complexity limit). But I fear software engineering has yet to reach this level; I suppose it's AiComplete. -- GunnarZarncke
You know, this seems erroneous. For most software and for most users, users don't have any model of the software. They just have a list of predefined tasks which they've memorized. That's not a model. Or if it is then it's a pathological one.
See ComputersAsTheatre.
... for most users, users don't have any model of the software. They just have a list of predefined tasks which they've memorized.
Do you have any evidence for this rather extraordinary claim? Surely it depends on the user, and whether they are a mapper or a packer, a hedgehog or a fox, a model-maker or a stamp-collector.
Users are complex, software doubly so. Control that complexity and you're winning, even if you don't know the rules.
See also MentalModel