A Tale of Two Toolkits: Relating Infrastructure and Use in Flexible CSCW Toolkits
The design of software toolkitsembodies a fundamental tension. On the one hand, itaims to reduce programmer effort by providingprefabricated, reusable software modules encapsulatingcommon application behaviours. On the other, it seeksto support a range of applications, which necessitatesavoiding an overly-restrictive commitment toparticular styles of application behaviour. We explore this tension in the domain of collaborativeapplications, which we believe are particularlysubject to problems arising from this tension. Basedon an analysis of the basic issues of flexibility intoolkit design, we explore opportunities for thedesign of toolkits which avoid application style commitments, with illustrations from two toolkits whichwe have developed. A comparative analysis of these twoapproaches provides insight into the underlyingquestions and suggests new design opportunities fortoolkits that provide a framework for applicationenhancement and extension.