October 10, 2003

Metaphors and XP

XP introduced the idea of a single metaphor to create a common Vision for the project. The metaphor has proven to be the least successful of the XP practices. The concept is correct but its application is flawed. XP attempts to create a Single metaphor for the whole project. A metaphor should be created for each individual that the concept or model is being explained to. People from different backgrounds will need different metaphors. The metaphors can be reused but only for individuals with the same contest/background.

Metaphors are a powerful teaching tools. They are used in a large number of fields. The aim of a metaphor is to create a bridge of understanding : The person trying to explain a new idea or concept attempts to find a common frame of reference between themselves and the person they are explaining the idea to. They then explain the new idea using the common frame of reference .

XP attempts to find a single metaphor that works for everyone. This will not work.

The light dawned for me at the Agile Development Conference in Salt Lake City. I was explaining a concept to Hugh Robinson, Sanjiv Augustine and Russell Hill when I realized they both knew Smalltalk. Smalltalk uses a concept called model view controller. I explained my idea using the model view controller metaphor and was greeted with nods and smiles. They got the idea immediately. Armed with my new all powerful metaphor I attended the “documenting requirements ‘’session run by Pete McBreen .I launched into my explanation using the model view controller metaphor. Once again/was met with nods and smiles from everyone except one woman who looked blank and said “I do not understand what you are getting at.’’ She was a project manager and did not know Smalltalk. Without thinking, I asked her which industry she worked in. “Software for the construction industry‘’. I then drew the following diagram

metaphor.gif

…and explained that there is a single model but you create many views for different users of the software. The system presents a pictorial view for a customer, a gantt chart for the project manager and the quantities of material for the quantity surveyor. She got it straight away. I had created a metaphor using a context that the person I was explaining it could understand. XP should not try to create a single metaphor to explain the model of the project but rather use a number of them, creating new ones as required.

Posted by chrismatts at October 10, 2003 6:13 PM