What Is a Metaphor?


Webster's Dictionary describes a metaphor as "a figure of speech which makes an implied comparison between things which are not literally alike." In Extreme Programming Explained, Kent Beck says, "The system metaphor is a story that everyone customers, programmers, and managers can tell about how the system works" [Beck2000].

The metaphor can provide a "system of names" for your system. In his keynote address at XP Universe 2001, Ward Cunningham described programming with a thesaurus handy, to get just the right shade of meaning that supports subtle expectations about the objects involved. This approach isn't unique to XP, though; terms such as "window," "frame," "pane," or "tree," "hashing," and "queue" demonstrate that metaphors have been part of programming for a long time.

A good metaphor has generativity: It helps you ask better questions and understand things you might not have otherwise. For example, consider a call center application that is treated as an assembly line. This metaphor drives us to ask things such as, "What happens when something reaches the end of the line?" or "Where are the bottlenecks?" These questions might not come up if the system were regarded as just nodes and transitions.

Metaphors help with abstraction and modeling of the system: They give you a picture of how it works. We've found it more helpful to use a metaphor as a model of the solution than as a model of the domain; this helps in understanding how changes in the domain affect your system.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net