One of the problems in Software Configuration Management (SCM) regards
cooperating work on large systems. A substantial part of the total
software costs is associated with maintenance and further development.
On large software systems, there are usually several people doing
development simultaneously, and their work is not always
A programmer may want to work in isolation, to avoid surprises when e.g. a library or a common header file is suddenly changed by someone else. On the other hand, (s)he may get in trouble when the work is finished, and turns out to be ``wrong'' because it is based on an outdated version of the same library/header file.
Other kinds of problems arise when two developers want to change the same part of a product concurrently. We may want to let them do that, so that both can go on with their work.
Situations like these inevitably show up in large development projects. Of course, it is always a good idea to try to organize the work in such a way that this does not happen too often, but it is not possible to avoid it totally without putting severe restrictions on the work. Instead, an SCM system should give support for planning for, detecting and dealing with such conflicts, rather than trying to avoid or work around them at all costs.
To aid cooperation between users of a CM system, one should not only consider access control to objects, but also provide users with information that can be used to e.g. plan activities.
The EPOS CM system (ECM) is built on top of a general, versioned database (EPOSDB ) and offers a set of commands to access software components stored in the database. We have added functionality in a number of areas to support cooperation among ECM users: The underlying database has been enhanced to allow more flexible access to data and we have implemented a set of tools that is used to enter and retrieve information.