29
1.9 Configuration and version management
Many of the types of state tracking discussed as part of the section on concurrency are
the logical variations of the problem of version management. This problem has been very
thoroughly examined in the context of software development. However, the problems of de-
veloping software are different from some form of collaborative work, particularly the
authoring of documents. Collaborative editing of texts has a number of specialized properties
that differentiate it from software development:
• The unstructured nature of most authoring tasks makes it unlikely that authors will ad-
here to complex and explicit process management protocols.
• The smallest unit of text editing is either the character or the word. The line of code is
the typical unit for software.
• The time scale of updates is much more variable in authoring than in software engi-
neering.
• Merge and selective undo of changes are more likely to be frequent operations in text
editing.
The willingness of authors to learn complex version models that enforce highly structured
update protocols is probably less than that for software engineers. Collaboration in software
engineering is tightly structured due to the exigencies of creating reliable programs, espe-
cially large reliable programs. Software engineering support systems systems must address a
number of difficult problems of consistency management that do not exist for authoring,
because of the large number of potentially machine-verifiable properties prerequisite to the
creation of working software. This is not because inconsistencies in texts don’t exist, but
because there is no hope of automatically detecting them. On the other hand, the problems
of change tracking in software systems are in some ways easier: formal management of the
process (in ways that are unlikely to be adopted for writing tasks) reduces the number of
1.9 Configuration and version management
Many of the types of state tracking discussed as part of the section on concurrency are
the logical variations of the problem of version management. This problem has been very
thoroughly examined in the context of software development. However, the problems of de-
veloping software are different from some form of collaborative work, particularly the
authoring of documents. Collaborative editing of texts has a number of specialized properties
that differentiate it from software development:
• The unstructured nature of most authoring tasks makes it unlikely that authors will ad-
here to complex and explicit process management protocols.
• The smallest unit of text editing is either the character or the word. The line of code is
the typical unit for software.
• The time scale of updates is much more variable in authoring than in software engi-
neering.
• Merge and selective undo of changes are more likely to be frequent operations in text
editing.
The willingness of authors to learn complex version models that enforce highly structured
update protocols is probably less than that for software engineers. Collaboration in software
engineering is tightly structured due to the exigencies of creating reliable programs, espe-
cially large reliable programs. Software engineering support systems systems must address a
number of difficult problems of consistency management that do not exist for authoring,
because of the large number of potentially machine-verifiable properties prerequisite to the
creation of working software. This is not because inconsistencies in texts don’t exist, but
because there is no hope of automatically detecting them. On the other hand, the problems
of change tracking in software systems are in some ways easier: formal management of the
process (in ways that are unlikely to be adopted for writing tasks) reduces the number of