The Complexity of Clearcase

You may already be a clearcase user. But consider, for a moment, how you wouldn't design a system for Software Configuration Management. Configuration management systems don't just have to meet the requirements of configuration management but they also ought to be well engineered. Some requirements of a configuration management system might be:

Easy to maintain/operate
Software departments often don't have the resources to dedicate to maintaining and supporting a complex system.
Fast operation in build
Compilers are quite file intensive, file and architecture for fetching and building a system should be as fast as possible. If this isn't the case development and releasing can be delayed.
Ability to enforce policy
As systems grow it should be possible to control checking in and out. To link to ticketing systems to track changes. It is not uncommon to generate release with the information that is collected from this linkage.
One key quality of configuration management systems is to allow the project to produce variations so that variations can be developed in parallel. This allows multiple schedules to be met and risk reduced. Can acomplished in a number of ways, with varying degrees of success.
Tools should keep data consistent and prevent loss of and/or corruption of the source code. The ability to back up this data is important.

Often also it is nessecary for an organisation to deliver the source-code to an escrow organisation, protecting the interests of customers against their suppliers going bust. This code needs to be delivered so it can be build
Integrate well with the operating system
As much as possible the system should not prevent the user from using existing tools to manipulate the source, or even access different sourcecode versions.

To be continued...