In other words, a writer cannot construct an artifact that is independent of its context and usage. Metaphors provide a powerful way to communicate with the user, to link the mental models of the developer and the user. Metaphors can play different roles in different contexts and at different times. These metaphors are used in the design process but are not represented in the resulting interface. An example of an implicit metaphor would be to consider a message system in terms of a railroad, in order to understand queuing, routing, and so on.
Explicit metaphors have certain risks.
They must be concrete and obvious in order to be effective. Some tasks do not have an appropriate metaphor. An incomplete metaphor can lead to the user's taking the metaphor more seriously than the designer intended. As the user uses a metaphor to mesh his or her mental model with an application, the metaphor may lead to misunderstandings about the capabilities of the software. This is the surface of the interface, its operational characteristics.