This image, which is based on one by Donald Norman, shows seven stages a person has to go through to complete an activity. If we start at the top with the person's goals, then from those goals he forms a set of intentions to change certain things in the world. He translates the intentions into a sequence of actions and executes them. He subsequently perceives the new state of the world, interprets what he sees, and compares it against what he intended to change. He may have to do another cycle if his goals were not met.
If there are tools involved, as is the case when the world is the world of the Web, then the intentions have to be translated into actions that the particular set of tools is capable of. If the way a person thinks about a problem is different from the way the tool maker did, then this translation can be difficult: think of it as trying to move from one square of a chess board to an adjacent one when all you can do is make jumps with the knight. Norman calls this step the gulf of execution.
The tools in our case are software and formal languages. Good programs can hide bad languages somewhat, but when the model behind the language is hard to understand or complex, such programs are hard to make. And sometimes people don't know the right tools to use.
Take an example: graphic designers want to create visuals on Web pages that
consist of (in their mental model) partly overlapping images. Before there was
CSS2, the only tool they had was the <table>
element of HTML.
But table cells do not overlap. However, some clever software makers were able
to present an interface to them where they could put images anywhere they
wanted and behind the scenes the program would cut up the images in tiny
pieces and those pieces that didn't overlap would each occupy a cell of a huge
table. That worked, most of the time, but when somebody else, not possessing
the author's tool, would try to interpret what was going on, or even change
the visual, he wouldn't be able to make head or tail of it. Which brings us to
the other gulf.
The gulf of evaluation on the right side of the diagram represents the difficulty a user has in mapping the visuals and messages from the system back into his own mental model. The problems here may be that the system presents incomplete or ambiguous information ("Syntax error in file") or that it employs metaphors that do not match those of the user ("green means error"). In the example above, tables were an incorrect metaphor for overlapping images.