Psychology of Sub-Selves
Since at least the Renaissance man forward, we have become accustomed to muliple sub-personalities or sub-selves within. The one person may be: a traveller, a teacher, an artist, a photographer, a parent, an investor, and a sports person, without an fragmentation of identity. With each of those roles go a whole raft of experiences, memories and various associations - indeed a part of the psyche that encapsulates a sub-self, eminately skilled to deal with that aspect of a life, when needed. The DigitalFriend encourages you to identify such roles in your life (indeed, we have a new methodology to help you along with that), and the web services, rss feeds, data feeds and software agents you will acrue, are categories then accessed via such roles and sub-selves.
One way to think of the DigitalFriend and the methodology, is as: 'the Individual strikes back'. Since the invention of the East Indian Company by Queen Victoria, corporations have been treated legally as if they were a person, but without morality systems, such as those subscribed to by most individuals. The DigitalFriend allows the individual to be multi-skilled and have up to the minute data like an organisation - by building a whole organisation of sub-selves, with various capabilities to enhance the individual.
People-Oriented Programming (POP)
In a recent international conference paper ( Steve Goschnick (2009). People-Oriented Programming: from Agent-Oriented Analysis to the Design of Interactive Systems, J.A. Jacko (Ed.): Human-Computer Interaction, Part I, HCI International 2009, LNCS 5610, pp. 836-845, Springer-Verlag, Berlin.), I present a clear and brief definition of what we have been calling People-Oriented Programming here at the DigitalFriend for a few years now. I wrote it in response to a reviewer of the draft paper, who pushed me for a 'clear and definitive statement', which had been put more modestly/less succinctly in the first version of the paper. The following extract from the published paper is the background section, followed by the brief definition of POP:
1 Introduction ...
4 People-Oriented Programming as a Design Paradigm
4.1 Background
This general method follows on from the Shadowboard Methodology by Goschnick and Graham [12]. It was not a generic AO methodology, but was specifically aimed at gathering and tailoring the AO requirements for a multi-agent Personal Assistant Agent (PAA) system, for an individual user. The authors made the point with:
"... the primary requirement in the work presented here was to have a 24x7 user-representation available (even) while the user sleeps or is otherwise offline, within a tool capable of autonomous computation, some decision-making, some information filtering and with the ability to concentrate the presentation of relevant information and to inform the user at the most convenient time"
Their central idea then was to marry a top-down 62 role/sub-role model starting template, with certain bottom-up techniques from ethnography including Cultural Probes by Gaver et al [7] in the form of " user-kept diaries" and user scenarios in the tradition of Rosson and Caroll [19], into a methodology that addressed the personal aspirations and desires of an individual together with their social needs. To bring an individual's social needs into the equation, Goschnick and Graham foreshadowed future work that called upon the theory of Social Worlds by Strauss [21] and the Locales framework [5]. That foreshadowed work there, is the ShaMAN meta-model here, which now facilitates Social Worlds and Locales in a MAS system.
A significant difference in the Shadowboard Methodology over other agent methodologies involves the Role entity: a role model is not only used in the requirements gathering process, in addition, it serves functions within the analysis, design and in the implementation of a Personal Assistant Agent. E.g. A role-hierarchy lens is used to filter and organise messages for the user's benefit, that come from various sub-agents [10]. These messages are also stored in a log that represents an interaction trajectory arc [5] of the user's life so far.
Cultural Probe [7] data captures the richness of individual users in the domestic and social space, however, many Ethnographers use it to inspire their own design processes [1,8] rather than to enhance the design process. There have been pockets of research trying to bring ethnographic data and/or scenarios into the Software Engineering process as seamlessly as possible [14,22,6,13]. Some provide support for a multi-disciplinary team approach to bring in the richness of social context [13]. While ethnography and software engineering are complementary - ethnographic studies capture the details that are useful in analysis, while software engineering design looks for and uses abstractions as often as possible [22] - the two forms of data and focus, from these two quite different disciplines, each with different notations and concepts, means that there has been a bottleneck in getting from one to the other, difficult to negotiate without loosing much of the detail captured in the ethnographic data. Furthermore, there is neither an efficient or affordable way to capture it on the scale needed for heterogeneous individual user needs .
A way forward involves users collecting data about their own lives with Cultural Probes and Software Engineers providing model-based toolkits to enable end-user development of interfaces and mash-ups of the software and Internet-based services they regularly use in their lives. There is a movement of people towards such end-user development of software and computer-based artifacts - whenever they get the appropriate tools to do so. We can see it in the current rise of mash-ups in the Internet world [2] by hobbyist users. And we see it in the user modifications (so-called mods ) in computer games that facilitate user additions to their game playing [18, 16].
End-user development is in part researched in the context of user innovaton - i.e. innovations created by end-users themselves rather than by corporate software houses [23]. Von Hippel and Katz investigated the use of toolkits [24] distributed to end-users, in order for manufacturers to be able to service the unique needs of individuals in what they called " markets of one ". I.e. Some manufacturers have abandoned their " increasingly frustrating efforts to understand users' needs " (ibid) and instead have outsourced need-related innovation tasks to the users themselves. To do so, the tasks involved in bringing a new product into existence, are divided into two interrelated parts: solution-related tasks, and needs-related tasks. The solutions-related tasks are catered for with flexible user-friendly toolkits, initially provided by the manufacturer. The needs-related tasks are what the end-users then do with those toolkits - i.e. they customise the initial product to suit their specific needs.
Von Hippel has been researching in the user innovation space since the early 1990's and in his book Democratizing Innovation [23] he gives two primary reasons that help to explain the recent exponential growth in the user-innovation area: tools that were previously only available to a niche professional base, have become available to mass end-users (in both cost and ease-of-use); and secondly, online communities of end-users confide their needs and share their solutions through the various communication channels and social networks afforded by the Internet.
One of the earliest mass-enlistments of end-users via software toolkits, is in the computer games area [15], where numerous games have tens of millions of users, and several of them have tens of thousands of end-users providing additional innovative content and functionality to those games. Prugl and Schreier [18] studied the use of toolkits for the popular computer game The Sims (28 million units sold within 2 years of release), in which they studied samples from four online user communities, with an average of 15,000 members (ibid). Many other games offer toolkits to end-users to extend game functionality and content. Jeppesen and Molin [15] found that of the 94 games they surveyed, 33 of them included toolkits for end-user development.
Where von Hippel mainly describes end-user innovation as the way that 'markets of one' can be appropriately and cost effectively serviced with the goal of ' satisfying each user's needs ', Prugl and Schreier looked deeper into ' how ' users deal with the invitation to innovate (including the model of open innovation ), and they also investigated the attractiveness of end-user designs, to other users. They single out ' leading-edge ' users as a potential source of radical product development (ibid), since their designs find large user-bases amongst other users in online communities that centre around the toolkits. This is a useful finding since end-user toolkits are used by a minority of users, whereas some of the innovation produced by those users, can be used by many of the rest. In a study about what motivates users to modify the games they play [16], Kadarusman focused on the World of Warcraft (WoW) game, which has over 11 million registered users (as at October 2008). He reported that WoW has more than 4600 user-modifications available for download, the most popular of which was downloaded on average 110,927 times per day.
4.2 Definition of People-Oriented Programming
We are now in a position to describe People Oriented Programming (POP) as a new design paradigm for developing individual-oriented systems, and define the four elements that it includes. POP calls upon the individual user in three main capacities: firstly, as the central focus of a customised software system addressing heterogeneous needs, which von Hippel and Katz describe as ' markets of one ' [24]; secondly as a self-ethnographer [12,1] administering and using Cultural Probes [7], personal role models [9,10] and scenarios [19] to gather their own very-specific data (including in the domestic space); and thirdly, as end-user developers, coming up with their own solutions to match their personal needs , utilising well-engineered software toolkits [24] designed to make the user the centre of innovation in new product development. The fourth element of POP is the cognitive models behind the tools, techniques and frameworks upon which the user toolkits are built. These models are drawn from two disciplines that are not often cross-referenced [11]: the Agent-Oriented paradigm , and Cognitive Task Modelling . E.g. the technology used in this research to pursue People Oriented Programming is the DigitalFriend, which appropriately has its theoretical base anchored upon a century of evolution of models of mind from Analytical Psychology [9,10].
Example ...
5 Conclusion
People Oriented Programming (POP) as defined above sounds simple i.e.: focus on the heterogeneous needs of individual users; get the users to record their own ethnographic data; and then have them develop their own enhancements to agent-oriented software using user-friendly toolkits. That stated simplicity belies the actual complexity to carry it out. Just as the modern GUI PC is much easier to use than old non-GUI PCs, multiple layers of complexity and indirection were needed to bring about that simplicity of use. Not surprisingly then, ethnography is an inexact way to gather requirements as compared to traditional requirements engineering methods; AO technologies are an order of magnitude more complex that traditional OO languages and frameworks; and user-oriented toolkits that are user-friendly enough to build personal systems from disparate services and applications, are complex in terms of designing and building them. However, the POP approach retains the richness from the cultural probe data, through into the technology in a way that reflects peoples social needs, desires and goals, and to the benefit of the collective aspirations of the social worlds they are a part of.
The recently reported amount of end-user innovation in the games genre touched on above, is testimony to the approach working, when the mix between user-needs and the functionality of the solution-related technology on offer, is right.
The agent-oriented model-based approach to personalising an individual's interface to the technology in their lives is a natural fit. The mentalistic notions that the AO paradigm abstracts in a computational form, draws upon Psychology, and therefore can be reverse-focused upon programming for individuals, by end-users themselves. The models from cognitive task modeling told us that goals, plans, tasks, actions, roles and objects are represented in the cognitive functioning of the mind. These models confirm those from the agent-oriented paradigm [11], and vice versa, through their strong underlying similarities. And it is the models that will hold POP together as the artifacts shared between the Software Engineers building the toolkits, and the end-users innovating their own creations and customisations with them.
[An ealier draft of the full published HCI International paper is available here ( PeopleOrientedProgramming.pdf size: 1.1 MBytes) if you want a complete read of it. It certainly gives a clear idea of what we have been doing here with the DigitalFriend software since 2003 - philosophically and development-wise too.
Cheers, Steve Goschnick (gosh'at'DigitalFriend.org), 17th July 2009.