Top 5 Software Configuration Management Tools

Today we are going to see list of top Software Configuration management tools:

Background:

A software or application is made up of number of physical entities which includes requirement documents, source codes, test cases, reports, test scripts, third party software etc. During the course of creating the software, series of reviews and meetings happen and these entities change very often.

Since all these entities are quite complex and very dynamic, it’s very important to manage and have control on these changes. So here is the place or situation, where configuration management comes into picture.

Definition & explanation:

Configuration management is a technique or discipline to systematically manage, organize and control the changes in the documents, codes, artifacts and other entities during the development life cycle.

Features of a good CM tools are:

  • Ease for the developers to work simultaneously
  • Ensuring that the developers don’t over write watch others code
  • Maintenance the history of everything.

Having said about the development team, what effect does configuration management has for testing team? Well, imagine a situation when you start testing a piece of software with an expectation that you will find some very obvious bugs. To your surprise, you see that the software does better and you are not finding any obvious bugs. To give your final verdict on the release, you decided to check if you are testing the correct version or not and you notice that your team is being validating the older version of the software which is already in a good shape. So in short you are executing the test case in the older version of the software where you are not able to find out the obvious bugs.

It’s very important to know and understand exactly what to test. If we are not using any version controlling system, it does not mean that these versioning cannot be maintained, but using these tools, version control becomes organized and managed.

List of Software configuration management tools available are:

  • VSS – Visual source safe
  • CVS- Concurrent version system
  • Rational Clear Case
  • SVN- Subversion
  • Perforce
  • TortoiseSVN
  • IBM Rational team concert
  • IBM Configuration management version management
  • Razor
  • Quma version control system
  • SourceAnywhere

Also see:

I will try to discuss few here:

1. SVN : SubVersion

SVN is the most popular open source Configuration Management tool used for version controlling. Being open source, it is freely available over the net. It provides many quality control and cost effective benefits to switch to mid projects. Some of the key features include:


    • Ease of set up and administration
    • Fast and flexible update commits
    • Provides high visibility to changes  with the ease of reverting the changes of a file
    • SVN has automatic merging and conflict resolution which makes locking unnecessary.
    • Full revision history is maintained by for the files that are renamed, copied or moved.
    • Has good integration capability with almost everything (window explorer, leading IDEs, Agile and continuous integration tools)
    • Switching between the branches is easy

2. Perforce

Perforce is a version controlling software developed by  Perforce Software Inc. here the users connect to shared file repository and files are transferred between the repositories and individual workstations. Some of the features include:

  • Has a built in document compare tool to quickly understand what the changes between the 2 versions of file are.
  • We can compare and combine the MS  word and power point documents with changes from other team members.
  • We can group the files into projects and teams and can set space level access control  to manage who can see, share edit and comment.
  • Has good feature of email sharing and workflow.
  • Provides immediate notifications.

3. VSS: Visual Source Safe

Visual Source safe is a centralized version control system from Microsoft. Some of the salient features include:

  • High performance with local and remote access.
  • All the repository data is stored in Microsoft SQL Server to ensure the integrity of the data.
  • Since it is built in C++ and JAVA, it has a minimal system requirement. We can install it in 32 bit and 64 bit OSes.
  • Has good security features as it uses SSl and Blowfish encryption.

Stability of VSS is many times questioned, because it uses direct file based mechanism which allows user to modify the file once they have locked it. If the machine crashes in the middle of updating any file, the file can get corrupt, . Many times users uses a utility which checks the database for corruption and corrects the error when found.

4. CVS: Concurrent Version System

CVS is an open source version controlling system which lets group of people work simultaneously on group of files. Some of the features are:

  • It maintains a central repository of the most recent repository. We can check out a copy to our local. If the file is updated by some other user, we can update our local copy.
  • We can edit the copy of the files freely. If new versions of the files have been put in the repository in the meantime, doing an update merges the changes in the central copy into our copy.
  • Client server cvs enables developers who are scattered across different geographies or slow networks to function as a single team.
  • It allows more than one developers to work on the same file at the same time.

5. Rational Clearcase

Rational Clear Case is a configuration management tool developed by IBM. It provides version control, parallel development, build auditing and workspace management. It can be easily integrated with other rational products and can be used for small, large and huge teams which are geographically distributed. Some of the features include:

  • Manages files directories and other development assets across the lifecycle.
  • Manages issues and resolution
  • Manages parallel development
  • Provides better authentication features by providing electronic signatures and audit trials.
  • Unlike SVN or Perforce, It is File Centric, which means that check in has to be done file per file.
  • It is integrated easily with other rational products along with eclipse and windows explorer.

Conclusion:

Configuration management is one of the key entities of the development process and becomes very important when a team (large / small) works on single application. Mostly each developer is assigned independent modules and it is very important to keep the developers works isolated with each other. A configuration management tool thus plays a very important role. It is recommended that before selecting any configuration management tool, have a proper understanding of the features and select the tool which best suits your project needs.