A configuration management tool must be able to bring in existing projects from flat and spread-out directory structures and from deeply nested directory structures. When project data is migrated, the tool must provide an easy way to create a baseline. A baseline is project version upon which all subsequent development effort is based.
Ideally, a configuration management tool is not apparent, allowing developers to work on source code files, insulated from disruptions caused by changes from other developers. At a certain point, however, that insulation must relax so the developers can incorporate other changes from other developers into their own projects. Therefore, a configuration management system must provide developers with insulated areas in which to work, yet also provide an efficient way in which they can work as a team, sharing modifications to their source code.
Using a configuration management tool, a team can reach build plateaus, where a greater degree of stability is attained with each higher build level. Additionally, the tool implements a process by which development can continue as higher-level builds take place. Such a process ensures that the team is on the correct path to product release. It also ensures fixing any code that breaks a higher-level build.
A configuration management tool must excel in the ability to reproduce various versions of your software application. Often, development teams work on a defect correction release and a new features release in parallel. These releases can have different build requirements. After the defect correction release is finished, the new features release team normally incorporates those changes into their work. An important goal of a configuration management tool is to allow several types of projects to take place simultaneously. The tool must provide a way for developers to reuse the code, no matter what directory it was created in. When parallel products are released, technical support personnel must be able to reproduce past milestone releases for customer support. As the number of parallel releases a development team completes increases, so does the need for product version reproducibility.