My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnData?A Population Approach to Ubicomp 1 System Design Matthew Chalmers
Ubiquitous computingMore than just mobile devices...Systems that ﬁt with context, interaction and activity ...which are varied and dynamic in ways difﬁcult to predictThe system is part of the user’s context System interactions, and how users are modelled and presented to others in them, are resources for new user activity
Ubiquitous computingA holistic view spanning technology, use and users Mark Weiser: The unit of design should be social people, in their environment, plus your device Robin Milner: Here we look for synergy between the societal vision on the one hand, and the development of scientiﬁc models and engineering principles on the other.
SUMgroup: Social / Ubiquitous / MobileMatthew Chalmers, Alistair Morrison, Marek Bell, ScottSherwood, Don McMillanTheory, user experience and system designUse ‘in the wild’ rather than usability in the lab
Mass participation‘App Store’ model of distribution a huge success More than 10 billion downloads in ﬁrst 3 yearsUbicomp ﬁeld trials generally focus on small numbersof usersNow there’s a potential to reach huge numbers ofusers relatively easilyWhat are the challenges: Methodological? Technical? Ethical?
Hungry YoshiOur ﬁrst study exploring app store recruitment modelComparison with ‘traditional’ ubicomp ﬁeld trialTook 2005 Windows Mobile application, reimplemented iton iOS in 2009
Yoshi (2005)Scans of WiFi APs‘Carry’ fruit to YoshisMainly qualitative methods, to studyintegration of game into everyday lifeOriginal study was “long-term, wide-area”Played over a week, with16 players inGlasgow, Nottingham and Derby
Qualitative evaluationTelephone interviews Offered payment A few very keen participants at start, but struggled to get >10 Self-selection biases, language issues
Quantitative evaluation: SGLogA generic logging framework with phone and server partsLog user interactions (button taps, screen changes), anddevice/sensor data (accelerometer, WiFi connections)Write to locally-stored ﬁles on device, but opportunisticuploading to SGLog server over Internet‘Real-time’ evaluation/monitoring of trial in progressSGVis: complementary visualisation / analysis desktop tool
Quantitative evaluationHow do we count user numbers for Yoshi?In Windows Mobile trial : 16 users paid for participationIn iOS trial: Download? Register for account? Play for > x minutes/hours/days?
Quantitative evaluationHow do we count user numbers for Yoshi? Downloads: 182,714 Unique users launching: 98,556 Users registered: 36,169 Score points: 4,134 Played on 5 or more days: 3,080
SGVis: Categorising usersCalculate centroids of each identiﬁed cluster4 categories of users: top players, commuters,static players, beginners
Categorising usersTargeting evaluation to speciﬁc categories More effective or efﬁcient evaluation?Users’ reactions to categorisation User feedback may let us understand whether or how it is meaningful Users may change their behaviour as a result of being categorised?
Categorising users as part of iterative designRelease initial version of app and then loop: Use tools to observe usage, analyse patterns and categorise users Release optional modules to support observed and requested usage of users in speciﬁc categories Sets of modules may be bundled and named as separate apps to support different observed categories of use
The software engineering revolutionConventional models of the software development processall claim that “at some point, a product is delivered to auser community, at which point, for that revision of thesoftware, the design process is over.”Paul Dourish
The software engineering revolution“When we look at an interactive system as an evolvingartifact in use, it follows that the process of design doesnot end with the delivery of the system to somecommunity of users. Instead, it continues as they use andadapt the system.”
Concept Demonstrator/EvaluationInitial evaluation via a simple mobile game called CastlesGame chosen because Keeps users motivated In-depth and intense use stresses system Provides an infrastructure suitable for modular architecture
Game OverviewPlayers construct kingdoms Inhabitants Resources Buildings SoldiersPlayers may choose to battlewhen they are in wi-ﬁ range
Game OverviewPlayers start with a set ofcommon modules and a setunique to themWhen players battle: histories are exchanged recommendations are made modules are transferred
Game OverviewAfter a battle, a player willbe informed if there arerecommendations
Game OverviewModule recommendationsintegrated into the buildinglistStars showrecommendation rankGray buildings are newlyreceived modules
FindingsPlayers progressed more rapidly with recommendationsNearly all followed recommendationsModules were spread to and used by others
FlexBook Mobile social networking app Dynamic integration of software modules at runtime Shared via our “module store” server, or ad hoc peer-to-peer Reviewing and user feedback Implicit logging of use Explicit comments and rating Shown in app and Facebook
My predictions interface getF ix! BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 4 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp 7Fixture server : FS1 getF ix?◦ 1 0 τ
A population approach to ubicompsystem designBased on mass participation & dynamic software structuresRedeﬁning a fundamental computer science concept: classA new project, ofﬁcially starting today Two universities, four million pounds, ﬁve years, nine people
The population approachMultiple representations of a software class (or type)Tools to use, create or adapt these representationsSocial interactions and practices involving those tools
The traditional representationA class is a structure, and all instances conform to it Data structure: variables or state Code structure: methods, procedures or functions These form a structural description of potential behaviour and use Assumption: exact match between the structure of the class deﬁnition, and the structure of each instance
The traditional representationTests and changes need only be done on one thing at one time:the class structureWhat’s true for the class is true for the deployed instancesPoor ﬁt with trends such as plug-ins, add-ins, e.g. what is Firefox?Phones often user-adapted, via App Store, Cydia, AndroidMarket...
Borrowing from biology: population thinkingA species is a varied and changing population of individuals A species may be described by unifying and deﬁning characteristics A species is also continually changing and evolving Each individual member may differ from others, and variation among individuals is natural and vital to adaptation The species can also be described by the set of current (or recently recorded) members: the aggregate of each individual’s DNA, size, colour, shape, etc.
A new representation: populationA class is a varied and changing population of instances A class may be described by unifying and deﬁning characteristics A class is also continually changing and evolving Each individual instance may differ from others, and variation among individuals is natural and vital to adaptation The class can also be described by the set of current (or recently recorded) members: the aggregate of each instance’s structure, context, use, etc.
A new representation: a populationMatch between class and each instance may vary The value of a variable may vary... but also which variables, methods and functions make up internal structureVariation and dynamism mean complexity of design andanalysis Probabilistic statements and models instead of simpler discrete ones
Populations: variation and dynamismWhat’s true for one instance may not be for another 90% of unmodiﬁed instances crash, but those with module A added don’t crash. Overall, 75% of instances crashAnalysis results may be different at different times We advertise A and the percentages; a week later only 50% crashResults for different contexts may differ News of module A spreads faster in one country than another, so in Spain 25% crash while in the US 60% crash
New tools and new interactionsAnalysis of modules, conﬁgurations and contexts Which conﬁgurations and contexts are popular? Which are problematic? How are they used? Are there clusters that should be separately managed and designed for? How does my setup compare to my friends’? Are there conﬁgurations like my own that doesn’t crash so much? How are they used?Access to modules and usage data May support free dissemination (P2P) or retain a degree of control ‘Lead users’ keen to try out new or specially instrumented versions
A third representation: ostensionOne or more population members are pointed out asexamplesMany potential ways to make an ostension e.g. a category or cluster selected from a population of instances
From observed use patterns to softwarestructureMapTool is usually run along with DGPSLocationStreamUKTrainSchedule is frequently logged as being used in UKlocations tagged as train stationFestivalEvents and FestivalVenues modules are frequently usedwith an unofﬁcial module AlternativeGuideToTheFringe whenthe user is in Edinburgh Fringe Festival venues
System design and structure“An ontology is a formal speciﬁcation of a sharedconceptualization” Gruber, via SemanticWeb.orgTraditionally, design is about the perfect hierarchicalstructure One structure for all known uses, contexts and people Adaptation is the problem of changing it
System design and structurePopulation approach couples process and structure Design process in which structure is a resource for use, and in which use creates or adapts structure Giddens’ duality of structure, Heidegger’s hermeneutic circle Adaptation of a structure to new contexts and uses is part of the processA design requirement for ubicomp
Designing for duality of structureMoving from structure to use is commonplace That’s what happens when you compile code and users run itThe trick is how to move back again Making code for a class from a set of instances and usage historiesA process that allows for gradual adaptation of a class Moving between complementary forms of class deﬁnition Each move is (or should be) a social interaction
Intension A class, compiled to create an executable shared among usersExtension the deployed instances, that are adapted by users and which create log data shared with evaluators and developers (and other users)Ostension a subset of instances selected by one of these people as particularly interesting or useful, and shared among them for comment and use analysis to a class signature reﬂecting ‘family resemblances’ among the conﬁgurations and logs of that subset
Scenario: FanPhotoFanPhoto: two core components,for text and photo sharingWe give it out to 100 people and they start using itWe start developing newmodules one for sharing data via Facebook one for fast compression and sharing of text, photos and video via MANETs
Scenario: FanPhotoA few participants areinterested in new modules 97 download them and show off 3 that they are trying them outAnalysts keep track via logdata streaming back start to see a new subcluster forming
Scenario: FanPhoto FanPhoto TextSharingIn the IDE, developers can PhotoSharingsee the FanPhoto class FacebookSharing Modules used by a minority of MANETmodule users are shown in grey
Scenario: FanPhoto 97After some time, 3developers and evaluatorsmeet to play back severalweeks’ use
Scenario: FanPhoto 91After some time, 9developers and evaluatorsmeet to play back severalweeks’ use
Scenario: FanPhoto 26 51After some time, 23developers and evaluatorsmeet to play back severalweeks’ use
Scenario: FanPhoto FanBook 60 5 5After some time,developers and evaluators 30meet to play back severalweeks’ use
Scenario: FanPhoto FanBook 60 5 5After some time,developers and evaluators 30meet to play back severalweeks’ use Zippy
Scenario: FanPhotoA developer sets hisIDE to do automaticupdatesCode deﬁning each FanPhotonew subclass appears labelled with users’ and analysts’ names FanBook Zippy linked to tools to analyse the ostensions that made them
Ostension revisitedMost forms of ‘analysis’ afford ostensive deﬁnition A way to focus on a subset of structures, contexts, uses and users e.g. an evaluator’s video of particular users from a system trial, a user’s list of friends on Facebook, a developer choosing a name of a city to customise design forLog data allow us to link to the software used Extend previous work that links from video to log data
Iterative design at a large scale1. Development and reﬁnement of tools, infrastructure, statistical methods, formal analysis methods and theoretical frameworks2. Initial apps deployed by us to signiﬁcant numbers of people: social networking and games3. Larger-scale deployments developed/distributed with partners: Edinburgh Festivals, Rangers FC and other football clubs, Glasgow museums...4. Go back to step 1 and do it better
A population approachA combination of theory, design, evaluation and use Advances in all four needed for successA circular process designed for duality of structure Change and human agency as essential elements of the process Multiple ways of representing a software class Tools to use, create or adapt these representations Users’, evaluators’ and developers’ social interactions and practices involving those tools... that feed back into low-level representations
My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnDatafirstname.lastname@example.org 1 www.dcs.gla.ac.uk/~matthew
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.