Home > Articles > Programming

  • Print
  • + Share This
This chapter is from the book


When building a system for our customer, we'll be hamstrung without a common set of terms to use in communication. Sometimes the business domain is relevant enough to enable us to use the native language directly: books, orders, customers, suppliers, and so on. Pretty soon the team evolves its own form of "tribal language," which is used to describe user stories and development. A good metaphor is a powerful aid in unifying the technical and business teams.

Another reason to use metaphors is that they make technology easier to understand for the customer. There is no special training course that teaches the business team members to understand developer techno-speak. Customers are going to have to use their own words soon enough as they write user stories!

How can you start development with just a metaphor as your architectural guide? This works a few ways, the prime way being the quick feedback the technical team gives to the customer. With the short cycles we are using in XP the customer quickly gets a measurement of how well our metaphor is working. Customer involvement in your project is key to success as we discovered while looking at project failures. If you want strong involvement from your customer, they will need to be comfortable speaking to you about the system. Developers often miss this aspect as they overwhelm the business with their software-engineering jargon. Is it any wonder that customers don't speak up at critical meetings or junctures? They might have no idea what you're talking about!

An example of a metaphor is when the team is developing a foreign exchange dealing-room system. The customer will be using words like "swaps," "options," "basis point," "interest rate risk," and so on. The team aligns their language around the language of the customer, which might go down to the level of individual components or modules.

Often customers will think and express ideas based on what they can see. The struggle is to firm up the intangible thoughts into something that the team can build. From a user interface perspective the metaphor may extend to visual cues on the screens or forms. Amazon's online site (http://www.amazon.com/) was originally limited to the selling of new books. The user selected the book they wanted by clicking on the image of the book cover.

Finally, using metaphors keeps with the XP values of simplicity, communication, and feedback.

  • + Share This
  • 🔖 Save To Your Account