Metaphor and Problem Solving

Most of us have at least a limited experience in working cooperatively, in organizing groups of individuals. Thus we have a great deal of intuition and common sense that we can bring to the table. We know, for example, that often the easiest way to solve a problem is to find somebody else who will do the work for us. I can't deliver flowers directly to my friend in another city, but I can ask the florist to do it for me.

Similarly we know that in an organization of individuals, if a task is going to happen there must be somebody whos job it is to make it happen. If nobody does it, it won't happen.

These intuitive notions and commen sense ideas can help us when we think of a computer program as a community of interacting individuals. In contrast, common sense was seldom useful when a program was envisioned in the older, process-state image, since few of us solve problems in our everyday lives using pigeon-holes.

[audio] [real] Text to accompany slide2, in Chapter 1 of An Introduction to Object-Oriented Programming