And this leads us, finally, to the concept not of the seamlessness of designed experience, but of “beautiful seams.”
This term was coined by the late Mark Weiser, a pioneer of ubiquitous computing and the Chief Technologist at what was at the time the Xerox Palo Alto Research Center. Instead of the discourse of smooth, distinction-obliterating, disempowering seamlessness which was then (and is to a significant degree still) dominant in discussions of ubiquitous information processing systems, Weiser wanted to offer users ways to reach into and configure the systems they encountered; ideally, such seams would afford moments of pleasure, revelation and beauty.
Update (November 7, 2010): Matthew Chalmers’ paper on Seamful Design and Ubicomp Infrastructure has more on Weiser’s idea of beautiful seams.
Weiser describes seamlessness as a misleading or misguided concept. In his invited talks to UIST94 and USENIX95 he suggested that making things seamless amounts to making everything the same, reducing components, tools and systems to their ‘lowest common denominator’. He advocated seamful systems (with “beautiful seams”) as a goal. Around Xerox PARC, where many researchers worked on document tools, Weiser used an example of seamful integration of a paint tool and a text editor (Weiser, personal communication). He complained that seamless integration of such tools often meant that the user was forced to use only one of them. One tool would be chosen as primary and the others reduced and simplified to conform to it, or they would be crudely patched together with ugly seams. Seamfully integrated tools would maintain the unique characteristics of each tool, through transformations that retained their individual characteristics. This would let the user brush some characters with the paint tool in some artful way, then use the text editor to ‘search and replace’ some of the brushstroked characters, and then paint over the result with colour washes. Interaction would be seamless as the features of each tool were “literally visible, effectively invisible”. Seamful integration is hard, but the quality of interaction can be improved if we let each tool ‘be itself’.
To me, this sounds very much like a well-implemented API.