Computational Reflection and CSCW Design

Designing computer systems to support collaborative work is hard. One of the major reasons for this is the requirement that such systems be flexible, able to adapt themselves to different users or groups, able to track changes in group behaviour over time, and able to function efficiently in different computational and infrastructural environments. For the designer of a toolkit for building CSCW applications, these problems are heightened, since a toolkit needs to be applicable to a range of applications, each of which require flexibility along these different dimensions. This paper proposes a toolkit based on the theories and techniques of computational reflection, which enable the implementation of malleable, open-ended systems with dynamic properties which are particularly applicable to collaborative systems design.