Ubiquitous computing (ubicomp) has emerged as a key area in computer science. It usually involves mobile computers, particularly phones, but also explores more exotic technology such as ‘wearable’ computers, and sensors and displays embedded in furniture. Ubicomp aims to support use of computation in everyday life, fitting with context so well that people do not have to consciously think about how they use it. This ideal is challenging, as applications and contexts are unpredictable. For example, when people are mobile and interact with each other in the uncontrolled environment of a city, designers and evaluators cannot tell in advance exactly where people will go or what they will do. Evaluators, who feed requirements and other observations to developers, struggle to understand long-term changes to context and application, as it is too difficult to follow users all the time in their everyday lives. Therefore, actual use may differ from designers' preconceptions, and software may become increasingly unhelpful or inappropriate, unless the software adapts or is adapted to fit.
The Jigsaw system1 supported adaptation via the familiar puzzle metaphor. Pieces of software could be moved on-screen to assemble programs, and the shape of each ‘component’ showed and constrained what it could be connected to. Even though users could adapt the connections between components, the system designer had to guess in advance which subset would be needed. This assembly task may be difficult, unless the set is very small. Speakeasy2 similarly used a fixed set of connection patterns, allowing components to be configured in new ways. The authors noted that a more dynamic approach would be preferable, in which connection patterns were tailored to the user's context and history.
Such tailoring is one of the key features of our own work. Our Domino system3 offered users recommendations of new software components, easing the assembly task by effectively saying, “People who used the components you have now also used these other ones.” People shared their usage logs and components, via wifi, each time they met. Domino took advantage of emergent patterns in the log data to hide many of the technical details of finding and integrating components, but revealed enough to let a person maintain control over his or her system. On the evaluation side, some researchers have explored ‘experience-sampling’ methods,4 which bring up a questionnaire on screen when a mobile device detects that it is in a context of interest. Momento5 supports experience sampling, diary studies, capture of photos and sounds, and messaging from evaluators to participants, using SMS and MMS (multimedia messaging service) to send data between participants' mobile devices and an evaluator's desktop. Supporting even richer interaction between users, evaluators and developers is another key aspect of our current work.
Recently, we developed FanPhoto, an Apple® iPhone application geared to sporting events based in and around stadiums. Photographs taken with FanPhoto are automatically shared among a group, and members can comment on each other's photos. FanPhoto uses a new implementation of Domino6 that streams log data back to evaluators' and developers' analysis tools in near to real time, so that they can assess design problems and opportunities. New software components are then sent to the phones, and either integrated automatically or offered as recommendations that can be accepted or rejected.
We thought it prudent to make our first experiments with our new infrastructure less apparent to users. In trials of FanPhoto, we used Domino to update the components for logging usage data. Remotely installing new logging components enabled evaluators to gain new insights and examine aspects of use relevant to ongoing context, while reducing the need to interrupt the user experience. For example, some participants seemed to create very few photos and comments. More detailed logging helped to reveal whether they were still actively using the system to look at content generated by others. New log data also led us to develop analysis tools that assisted understanding of user activity as well as development and deployment of phone software. These innovations in turn generated additional questions and issues to resolve. This preliminary work has uncovered some concrete technical issues, such as the testing and release of multiple versions of components, and the need for new tools for developers and evaluators to handle the complexity of software used in a wide geographic area for a substantial period of time, and made up of many different sets of components.
As we move back towards supporting adaptation in end-user applications, we still believe that a holistic view is needed to achieve ubicomp's ideal of sustained contextual fit. We do not merely accept that change happens in this complex ensemble of devices, software, users, evaluators and developers, but we aim to positively support that sociotechnical process. We see many productive lines of research that do not treat the unpredictable dynamics of system structure and social interaction as a problem but as the key resource that will enable us to realize ubicomp's design objectives.