SPA Conference session: Metaphors We Program By

One-line description:How far do we understand the role of metaphor in software development?
 
Session format: Workshop (150 mins) [read about the different session types]
 
Abstract:Metaphor appears in many aspects of software development from architectural, such as classic XP’s System Metaphor, to metaphors for software development itself, such as building architecture or civil engineering. The primary purpose of metaphor is to assist the understanding of the audience (whether of the written word or in discussion). A powerful and well-chosen metaphor can speak a thousand words in terms of the insight it gives to the audience; a poor one can hide and confuse intent.
Since software development involves communication of potentially abstract concepts ranging from the level of objects to system architecture, it is no surprise that metaphor is a frequently used tool.
This workshop seeks to examine the various roles of metaphor in software development and to explore questions including:
• Which metaphors are commonly used in software development and for which aspects?
• How useful are the metaphors? How quickly do they break down? Do they lead to incorrect assumptions? Do they help or hinder?
• Is metaphor always useful for a given software development? Why has System Metaphor been dropped in XP2?
• Is the metaphor chosen to suit the purposes of the author? Does a positive metaphor help to garner support for a concept, pattern or process?
• How does the name given to a concept, system or pattern affect the way in which it is interpreted?
 
Audience background:General experience of software development.
 
Benefits of participating:Gain an insight into how we use metaphor in software development at different levels. Explore what makes a good metaphor and what does not, how far metaphors can be used and why some unlikely metaphors have gained prominence.
 
Materials provided:Lists and descriptions of metaphors we know
 
Process:Define what a metaphor is and give multiple brief examples
Walk through 3-4 metaphors (only) in depth

First phase - gathering
- Seed each group with 3 metaphor "names"
- work out up to 7 more metaphors to give 10
- Be sure to include some metaphors that you think work
really well and some that you don't think work very well
- Are there any individual metaphor "verbs" that are not attached to
a central core (cf. delegates in C# vs. method)
Second phase - elaboration
- add attributes to each metaphor for what works well
and where it breaks down (e.g. programs run, crash, etc.)
Third phase - market
- Group members circulate ot look at the output of other groups.
- One member stays at all times to explain the output
Fourth phase - analysis
- Do the metaphors that work well have lots of positive attributes (aliging
with metaphor)
- Why don't the bad metaphors work?
- Which metaphors work in spite of themselves?
 
Detailed timetable:
 
Outputs:Web page containing the metaphors examined and conclusions
 
History:This session began life as a focus group at EuroPLoP 2006
 
Presenters
1. Andy Longshaw
Blue Skyline
2. Kevlin Henney
Curbralan Limited
3.