Metaphor is communicating
Essentially, System Metaphor is all about communication. It is about using the right words, the correct labels to communicate effectively the content and the goals of the software being produced. Some call these labels and words, stories. For them, it is about creating a story for the product. The critical thing to remember is that in this process of communication no technical or in-house jargon may be used. The reason for this is simple. The customer and end user are included as part of Extreme Programming. System Metaphor keeps customers and end-users in the loop without confusing them with technical words.
Metaphor is words and stories
So Metaphor then is applying words, labels, tags or stories to various elements or chunks within the programming process. To use a common metaphor from the world of the industry, it is like an assembly line. In many factories where an assembly line is used, each worker will be trained to use certain parts of the line. All workers will understand their role and words will be used to define that role that all understand. Not only that but each part of the machine line will be given a label that describes its role in the process.
Putting Metaphor into practice
To achieve all this Metaphor has to consist of the following elements:
A Unified Story
Whatever story is told, whatever labels are attached, they need to be used by all. It is not acceptable when one group is having one story and another using entirely different names. It must be common to all and understood by all.
A Shared Vision
Similarly, each part of the group must see themselves as a whole with one vision or, as said earlier, one story. It is like the various characters within a tale that make the whole tale.
In a way, Metaphor has been used in business and manufacturing for many years and so is not a new concept. It is just in the area of Extreme Programming that some fail to see its use and put it into practice. To get the team to be as productive as possible, it is an important practice and once understood can help the team achieve.