Pages: pp. 15-17
As most of us are aware, recent technological advances offer tremendous promise in bringing the benefits of rich computational capabilities to dynamic, diverse situations in everyday life. However, much of this promise remains unfulfilled. We can't yet use this enormous computing power to facilitate our day-to-day lives and regularly deliver compelling ubiquitous computing applications. Our situation is analogous to the early 1980s and the then-new concept of GUIs. We could see that GUIs had potential, but building any new application with them was a major undertaking, and building good interfaces seemed extremely difficult. To overcome these barriers, researchers and developers created a series of tools and methodologies over time to explore many alternatives quickly with minimal effort. Those prototyping tools and techniques had a much-needed enabling factor that contributed greatly to the success of what we now consider traditional interfaces.
Today, building ubicomp systems for realistic scenarios is difficult. Compared to simpler, more mature interface domains, development tools and methods are still at an early stage, and development is expensive, significantly hindering our progress. Often it's not clear in early development phases whether a system is feasible or acceptable to potential users. As in earlier HCI efforts, progress in prototyping methods and tools will be central to overcoming the barriers to widespread development and deployment of ubicomp. This need is particularly strong owing to our envisioned systems' high-level complexity, the implementation challenges of using many small and distributed devices, the multidisciplinary questions involved, and the need to understand and evaluate the full impact of the systems we build.
Because ubicomp scenarios often consist of different undeveloped components, a complete implementation might be impractical, and a partial implementation can't show the full potential. This presents a dilemma, particularly in research and early development, because researchers and developers must concentrate on their specific area to advance technology rather than expend effort on broad system-implementation issues.
This dilemma can be partially overcome by rapidly prototyping the whole system while focusing most of the engineering, design, and evaluation effort on the specific area of interest. It's then possible to have a complete system working, letting us clearly assess a new development. Tools for automating development and evaluation activities have always played an important role in this type of activity. Two articles in this issue illustrate new advances in this area. The first is "Wizard of Oz Support throughout an Iterative Design Process," by Steven Dow, Blair MacIntyre, Jaemin Lee, Christopher Oezbek, Jay David Bolter, and Maribeth Gandy. The second is "Multipurpose Prototypes for Assessing User Interfaces in Pervasive Computing Systems," by Bonnie E. John and Dario D. Salvucci.
Researchers have also appropriated traditional user interfaces' lessons and methods for use in pervasive computing. In particular, researchers have demonstrated the Wizard of Oz technique's potential in creating working ubicomp systems. In addition to Dow and his colleagues' article, other articles in this issue discuss this topic. The first is "The Webkit Tangible User Interface: A Case Study of Iterative Prototyping," by Mark Stringer, Jennifer A. Rode, Eleanor F. Toye, Alan F. Blackwell, and Amanda R. Simpson. The second is "Evaluating Early Prototypes in Context: Trade-offs, Challenges, and Successes," by Derek Reilly, David Dearman, Michael Welsman-Dinelle, and Kori Inkpen. Additionally, John and Salvucci demonstrate how to adapt sophisticated cognitive modeling approaches, previously applied only in traditional interfaces, to pervasive contexts.
Because researchers embed successful ubicomp projects in rich real-world contexts that can touch many aspects of life, they've made multidisciplinary teams the norm rather than the exception. However, overcoming boundaries between various disciplines is a significant challenge and in many cases represents a key factor for successful development. Problem-solving approaches differ radically, and finding common ground for assessing results can be difficult.
Means for developing and sharing sketches for solutions early on can help solve these problems. Prototyping, especially low-fidelity prototyping, is an interesting, important starting point for joined research and development processes. Several articles in this issue showcase examples of paper prototypes or other non-interactive approaches. In addition to Stringer and his colleagues' article, one article is "Prototypes in the Wild: Lessons from Three Ubicomp Systems," by Scott Carter and Jennifer Mankoff. The second article is "Prototypes and Paratypes: Designing Mobile and Ubiquitous Computing Applications," by Gregory D. Abowd, Gillian R. Hayes, Giovanni Iachello, Julie A. Kientz, Shwetak N. Patel, Molly M. Stevens, and Khai N. Truong. The third is "Rapid Prototyping and User-Centered Design of Interactive Display-Based Systems," by Dan Fitton, Keith Cheverst, Chris Kray, Alan Dix, Mark Rouncefield, and George SaslisLagoudakis.
This experience clearly shows that we can adapt such techniques to pervasive computing requirements. The techniques serve well as versatile tools in an overall suite of techniques moving from lower-fidelity prototyping approaches at early development stages to higher-fidelity and more technological approaches as a design matures.
Developing complex systems isn't a new problem. However, when looking at ubicomp systems, understanding the full complexity is often different and more difficult than in areas of more bounded scope. In realistic ubicomp systems, this involves interactions between system components and users. Furthermore, settings have been changing with regard to infrastructure and context of use. When creating complex interactive systems and services, it's hard to predict how users will react. In traditional systems, researchers can base predictions (for example, how long it will take to fill in a form on a screen) on well-established data. In pervasive computing systems, such data often isn't available. John and Salvucci show how we can begin to address some of these questions for expert performance; however, many questions about novice user performance and overall user acceptance can't be easily answered in advance. In such cases, building prototype systems is an essential means to finding answers.
Research shows that prototyping and deploying systems for study is important to understanding how systems fit into the user's world and how they can be used effectively. Designing, building, and deploying systems help both researchers and developers better understand a particular application domain's key issues. This issue provides a rich body of experience in issues associated with prototype deployment.
This issue's articles represent some of the best recent advances in applying rapid prototyping to ubiquitous-systems development. The articles have well-grounded approaches and include practical advice about the pitfalls and difficulties (as well as successes) that can accompany prototyping in this area. They review a wide range of methods suitable at different design and development stages and, as a whole, offer rich experience that should be helpful for anyone seeking to use rapid prototyping approaches in ubicomp work.