30
conflicts between collaborators. The highly modular nature of most software also reduces
conflicts since a program is typically divided into many semi-independent files, each com-
posed of many semi-independent units (subroutines, method definitions, data definitions,
etc.).
The granularity at which changes need to be tracked is also fixed and relatively large,
since the line of code is an adequate, relatively uniform unit in almost all programming lan-
guages.
Document editors, unlike code editors, may need to support collaboration at a time scale
that is very different from that in software development. Real-time shared editing is not
easily possible under a check-in/check-out model, nor is communication by a shared file sys-
tem necessarily sensible for such situations. Real-time update by multiple authors is essen-
tially a variation of the merge problem; even source code control systems like CVS that sup-
port automatic merging are not designed for this frequency of update. In summary, the
problems of collaborative document editing are simply different from those faced by software
engineering, despite the similarity of the problems and points of technical overlap.
Some of these differences have effects on the most appropriate underlying technologies;
line-based difference algorithms are not suitable for text (Neuwirth, Chandhok et al. 1992);
merge and selective undo are relatively infrequent operations in software engineering. Oth-
ers affect the user requirements: the need to support informal access protocols, and the need
to present a relatively simple version model. A general framework should also support a wide
range of policies for version management, under the control of the application. No one-
version management model will serve all different needs. I briefly consider some needs and
approaches to version management below, all of which, ideally, should be available to an
application designer. The VerSE system has proposed the notion of user selectable
“versioning styles” (Haake and Hicks 1996) that are supported by a system on top of an in-
tegrated framework and that can even be adjusted as the pattern of collaboration changes.
conflicts between collaborators. The highly modular nature of most software also reduces
conflicts since a program is typically divided into many semi-independent files, each com-
posed of many semi-independent units (subroutines, method definitions, data definitions,
etc.).
The granularity at which changes need to be tracked is also fixed and relatively large,
since the line of code is an adequate, relatively uniform unit in almost all programming lan-
guages.
Document editors, unlike code editors, may need to support collaboration at a time scale
that is very different from that in software development. Real-time shared editing is not
easily possible under a check-in/check-out model, nor is communication by a shared file sys-
tem necessarily sensible for such situations. Real-time update by multiple authors is essen-
tially a variation of the merge problem; even source code control systems like CVS that sup-
port automatic merging are not designed for this frequency of update. In summary, the
problems of collaborative document editing are simply different from those faced by software
engineering, despite the similarity of the problems and points of technical overlap.
Some of these differences have effects on the most appropriate underlying technologies;
line-based difference algorithms are not suitable for text (Neuwirth, Chandhok et al. 1992);
merge and selective undo are relatively infrequent operations in software engineering. Oth-
ers affect the user requirements: the need to support informal access protocols, and the need
to present a relatively simple version model. A general framework should also support a wide
range of policies for version management, under the control of the application. No one-
version management model will serve all different needs. I briefly consider some needs and
approaches to version management below, all of which, ideally, should be available to an
application designer. The VerSE system has proposed the notion of user selectable
“versioning styles” (Haake and Hicks 1996) that are supported by a system on top of an in-
tegrated framework and that can even be adjusted as the pattern of collaboration changes.