|
Overview
The notion of using ‘patterns’ to document good
design practice was first proposed by Alexander in the domain of architecture
and urban planning. The notion of design patterns has been enthusiastically
embraced by the software design community. In a translation from the original
domain, a number of general patterns have been documented for reuse across
a range of software systems. In this work we proposed the analogous notion
of patterns of cooperative interaction which are patterns of cooperation
and computer use that recur across a range of settings, and can be derived
through ethnographic field studies. Through re-examining the corpus of
ethnographic studies and conducting new studies we identified a series
of patterns of cooperative interaction; i.e. a series of different types
of computer (and other artefact) use and cooperation, with at least two
specific examples of each type from different settings.
Contrary to other forms of patterns, our patterns
are descriptive of the activities in a given setting, rather than being
solution oriented. They are meant to convey details of work, cooperation
and interaction that are similar across different settings, to serve as
an informational resource when considering dependable systems design in
novel settings with similar attributes to those in our archived patterns
collection. Our pattern collection is therefore meant to inform the process
of social analysis of work. Pattern examples point to interesting features
of social and cooperative system use that it is important to take into
account when designing novel technologies to support that work.
By presenting abstracted, generic, patterns of cooperative
interaction along with specific examples of those patterns from fieldwork
we aim to make ethnographic material more amenable and more easily communicable
to system designers. At the generic pattern level, designers can grasp
a concept that applies to a number of situations of social and cooperative
system use, while the provision of specific instances from fieldwork allows
them to see the analytic purchase that can be gained by comparing and
contrasting examples of the same pattern in the details of any given setting.
In this way, our patterns move away from the dense, narrative descriptions
of conventional ethnographies while directing the user of them to find
the right balance between understanding general features of cooperative
activity and their specific rendering in a given setting.
For our patterns collection we constructed a template
'language' to define these patterns, then presented our collection on
the WWW. At the generic level (the front web page for each pattern), each
pattern is given a name that captures its essence, then this essence is
described, below this are three further sections relating to ‘design
for dependability’. The first section details why the pattern is
‘useful’, the second ‘where used’ (i.e. in which
settings we have found examples of the pattern), and the final section
details some ‘design implications’. By clicking on hyperlinks
to the individual settings listed in the ‘where used’ section,
readers gain access to the pages listing the specific examples.
According to our template, five features of each specific
example are detailed: (1) Cooperative Arrangement - a basic description
of the people and technologies involved in the pattern example; (2) Representation
of Activity – a description of any representations involved in the
example; (3) Ecological Arrangement – a description or diagram of
the layout of the example; (4) Coordination Techniques – the means
by which the people coordinate their activity; (5) Community of Use –
the user groups involved in the example.
Our pattern collection details 10 generic patterns
with around 25 specific examples. Our patterns are also listed on wiki
pages so others can add to our collection on-line, as well as another
set of wiki pages that list a series of patterns derived from a single
study of extreme programming (XP).
Explanation
The patterns collection forms a general resource for learning
about different aspects of social and cooperative work that are important
to consider when designing systems to support that work. Achieving dependable
systems design and implementation is now considered to be a process where
attention needs to be paid not only to the technical system but also to
the social and work environment into which the system will be placed.
Dependability is seen as a property of the whole socio-technical system.
Particular consideration is required to understand how well the technical
system will fit with the activities of the users in the proposed setting
(the application domain). For instance, highly dependable technical systems
may be part of an undependable socio-technical system because they are
inappropriate to the setting and users. Ethnographic studies have been
very useful in describing the details of social aspects of work but have
tended to yield results that are seen as specific to the setting studied.
Patterns of cooperative interaction provide a means of generalising and
comparing and contrasting findings across settings to allow the re-use
of ethnographic data.
Guidance
For designing in a given setting, the user can see whether
any features of the work in that setting correspond with any of the patterns.
This can be done in one of two ways. The patterns user can conduct a basic
observational study then compare their results to the patterns collection.
Or they can approach the setting with the patterns collection in mind
and see whether any aspects of the setting and activities are similar
to the patterns. By considering any relevant patterns and how they relate
to the specifics of the setting the patterns user should be able to generate
design issues and considerations as the patterns illustrate how certain
arrangements of people and technologies facilitate or constrain certain
types of work activities. In this way, the patterns provide a route to
thinking through dependable design concerning social and cooperative aspects
of work. Another aspect of the collection is that it is open for contributions,
of new patterns or pattern examples, as the wiki pages may be added to
on-line.
Examples of patterns are included with each pattern
description.
Contributors: David Martin, Tom Rodden, Mark Rouncefield,
Ian Sommerville, Steve Viller
|