As Terry Pratchett likes to have his characters say (Pterry being as fond of  his own jokes as the next man and liking to repeat them often), a metaphor is a lie. Which makes it surprising, given the propensity of software engineers to shout “Not True!” at the drop of a hat, that metaphors are so often used in our software: everywhere from basic concepts to icons.

We’re going to have a KOffice crash interaction design meeting next weekend at my place, and in preparation I’m reading up on my Cooper. One thing that has always surprised me is the use of metaphors in software. Cooper agrees: in chapter 20 of About Face 2.0 he talks about metaphors, idoms and affordances, preferring the latter two over the first. The big problem with metaphors is not that they don’t fit the way humans think, we do think in metaphors, but that they don’t scale and become stale so very fast. For example:

  • The clipboard. Who has ever seen a real clipboard? Outside old World War II movies? One of those cardboard thingies with a metal clasp on ’em? And how often on those real-life clipboard did you see words, sentences, small scraps of text, the odd image, long-play records, movie reels and complete folders from the filing cabinet held by that clasp? The clipboard on a computer is a metaphor, that is, a lie.
  • The pasteboard. Even more obscure, page layout design applications like Pagemaker use the pasteboard metaphor. That is, around the page you’re working on, you’ve got this great big desk that you cover with cut-out scraps of text and image that you’re going to glue in the right order on your page. I have worked that way, when I was a kid and prepared a monthly magazine on Andal — but as a metaphor, it should be retired.
  • Filing folders. I don’t know about you, but while my desk at work still has an arrangement for those folders that have a bit of bent metal in them to hang them from a frame so you can drop paper in it, I’ve never used them in the past decade. So inconvenient.
  • Forms. My favourite pet peeve. A dialog with checkboxes, radiobuttons, text areas and so on look just like my income tax statement… The metaphor still works, although the income tax statement is moving to a wxWidgets-based application, but to be reminded day in day out of taxes… Eugh!

On the other hand, I don’t see the problem with saving documents: I can handle a small working set of things I work on (my XEmacs has never more than a dozen open buffers), and a place where the things are moved for safety. But actually, instead of having to decide for every document whether I would like to save it or not, I would like to have that working set in a more literal way: my set of documents, organized in work piles per task, and the option (with a reminder, visually for instance through having my workspace too cluttered for comfort) to put the documents in a versioned safe place from time to time. Everything on that workspace should always be as I left them; including the last edits.