Paul Dourish
Ph.D. Dissertation at the Department of Computer Science of University College London.
The design of Computer-Supported Cooperative Work (CSCW) systems involves a variety of disciplinary
approaches, drawing as much on sociological and psychological perspectives on group and individual activity
as on technical approaches to designing distributed systems. Traditionally, these have been applied
independently--the technical approaches focussing on design criteria and implementation strategies, the
social approaches focussing on the analysis of working activity with or without technological support.

However, the disciplines are more strongly related than this suggests. Technical strategies--such as the
mechanisms for data replication, distribution and coordination--have a significant impact on the forms of
interaction in which users can engage, and therefore on how their work proceeds.
Consequently, the findings of sociological and psychological investigations of collaborative working have direct
impact for how we go about designing collaborative systems.

In support of this relationship, this thesis concentrates on the provision of flexibility in CSCW systems, and, in
particular, in toolkits from which they are generated. Flexibility is key to supporting many characteristics of
group behaviour detailed by observational investigations--the improvised nature of work and activity, individual
and group tailoring, customisation and re-purposing, changing group membership and activity over the course
of a collaboration, and so forth.

Based on an analysis of current CSCW toolkits, and on the interaction between user behaviour and system
design, I will demonstrate that, as in many other areas of system development, traditional notions of
abstraction in system design mitigate against the design of open, flexible systems. "Open Implementation" is
an emerging approach based on the systematic and principled exposure of mechanism in system components,
"opening up" abstractions to examination and manipulation. Concentrating particularly on distributed data
management and concurrency, I will show how these ideas can be exploited to provide an open and
customisable framework enabling programmers and end-users to tailor toolkit structures to the needs of
applications and domains.
Report number: