What is CrazyEngico.com (CE)?

CrazyEngico (CE) is a one-stop solution for interview questions and answers, domain knowledge, e-learning, tutorials, articles and many more learning material.
e-learning - Intelligent e-learning tutorials and articles
Domain Knowledge Learn about various business domains/verticals such as Banking, Financial, Insurance, Healthcare and many more...
Interview Questions and Answers - Post your questions and answers. 1000+ database of ready questions and answers available to prepare for an interview.
Tutorials - 300+ video tutorials from beginner to expert level.
Articles - 300+ technical articles to understand concepts.
Forum - A technical forum to post your queries/responses.

e-learning > Software Configuration Management Tools

Software Configuration Management Tools



Author: Vishwanath Paibir

Abstract

One way of making software project management better is by implementing SCM tool. SCM tools are readily available in the market, and there are different vendors providing it. It takes a considerable amount of time to plan, research, select and implement the tool in the company. It is not an easy task for project managers to select a SCM tool. The selection of SCM tool widely depends on an organizational culture, style of work, amount of work, and so on. Even wrong choice of the tool is harmful as compared to no SCM tool. In this article, we will introduce SCM tools, discuss advantages, functions, and features of SCM tools.
 
 
Introduction to SCM Tools

Managing a software project is a significant challenge for project managers. Implementing better processes, tools, and management in a diverse project team working at multiple locations, in different time zones, certainly help in avoiding the confusion and chaos. One way of making software project management better is by implementing SCM tool. SCM tools are readily available in the market, and there are different vendors providing it. It takes a considerable amount of time to plan, research, select and implement the tool in the company. It is not an easy task for project managers to select a SCM tool. The selection of SCM tool widely depends on an organizational culture, style of work, amount of work, and so on. Even wrong choice of the tool is harmful as compared to no SCM tool.

The earlier SCM tools had limited functionality such as source code control and revision control. Now, SCM tools are loaded with more features and functions to control and manage not only the configuration items but also the processes. Some of the SCM features which are built into today’s SCM tools, include "build management, defect and enhancement tracking, requirements tracking, release management, software production control, software packaging and distribution control (licensing and generation of serial numbers, CD keys, codes), and site management" (Leon, 2005, p. 228). The market for SCM tools is highly competitive, and many are investing heavily in developing better SCM tools to compete the market. SCM tools are released with new features and functions with every new release. Some of the reasons for the increasing popularity of SCM tools are increase in developer productivity by managing source code automatically, increase in customer satisfaction through faster delivery of products, decrease in defects due to better tracking of items through automated processes, better integration of items all in one place accessible to cross-functional teams, and lastly automation of various processes involved in software product development (Leon, 2005, pp. 228-229).
 
Advantages of SCM Tools

SCM tools are beneficial in many aspects such as better project management, productive development, excellent customer support, company certification, and customer satisfaction. Some of the major advantages of SCM tools are project information is shared across teams with accurate and reliable information, flexible in supporting parallel development at various locations at the same time, provide better decision-making capability which helps in planning and incorporates new technology by utilizing latest and the greatest in the IT industry (Leon, 2005, pp. 229-231).
 
Functions of SCM Tools

Many companies are including SCM tools in their strategic plan to automate the manual processes which are prone to human errors. Automating basic tasks such as document revision management, defect tracking, and code management is now done using SCM tools. According to Leon, "a good SCM tool should automate the project coordination and management tasks, support repeatable processes, manage changes and issues, and automate the system builds" (2005, p. 232). SCM tools provide a lot of powerful features, which help in, automating the tasks. Some of the features included in SCM tool are version management, change management, problem tracking, promotion management, system building, status accounting (querying and reporting), configuration audits, access and security, customization, release management, graphical user interfaces, distributed software development, client-server development support, and web support (Keyes, 2004, p. 261; Leon, 2005, pp. 233-239).

Version management takes care of versioning different configuration items (CI) when updates are made. When the CI is checked out for edit, the version management feature tracks the version number automatically along with the snapshot of the file. Using version management, historical revisions of a document can also be retrieved. Users can also compare current snapshot with any historical snapshots. Version management automatically assigns a unique version number for the file or set of files. Version management involves creating a new version, maintaining historical changes, and provide comparison tool to compare two different snapshots. Version management feature connects and collaborates with Change and Build management features of SCM tool (Leon, 2005, p. 233).

Change management feature usually helps in managing a change request. A change request initiated by the management or business development team can create a change request item into the SCM system. The change management feature usually handles communication process of informing all the required personnel about the change. In this way, the change can be managed in a better way, can be identified, and implemented by the development team. An automated workflow system can be built inside the SCM tool, to execute different rules based on the change request. It can automatically flow from one level to another level. Once the request is approved it can go directly to the development team. The change management feature tracks all this information and also provides valuable information for configuration status auditing SCM activity. Change management also supports Parallel and Distributed development through branching. Build engineer can create different branches in SCM tool for parallel development. For example, SCM system can have two branches: the main branch and the hot fix branch. The main branch usually can be used for a major release development and the hot fix branch can be used for service pack releases. Both branches keep separate versions of the files. Change management also provides flexibility to merge different branches and Changesets to maintain code consistency between the two branches, and automatically resolve all conflicts. Change management also records all the activities of check-in and checkout.

Problem tracking feature helps in identifying, documenting, tracking, resolving, and managing the problem. All the related details about the problem are documented into the SCM system automatically. Problem tracking can take full advantage of email messaging system and shot-messaging system to send alert emails and SMSs to the concerned people for their attention.

Promotion management feature tracks various different phases of software development life cycle. It tracks the CI based on the phases. SCM tool tracks all the details about the event in different phases with the start and end date. This feature usually helps in testing the system. Testers can know what exactly happened during system testing and integration testing. Testers and developers could trace back using SCM promotion feature and find the root cause of the issue (Leon, 2005, p. 236).

Build management feature provides most prominent function of triggering source code builds for new software. System builds are usually done to release new code to testing or production environment. Build management builds all the required files, projects, source code, and libraries; compile them into an executable; and deploy the executable on the server or package it as a final product. Build management process also tracks build version number, which helps in testing. Some of the SCM tools are so powerful that they can be automated to trigger builds after every one hour time limit. All the build parameters are configurable, and the build system notifies the personnel with build success or error details.

Status accounting with reporting and querying provides an excellent tool for SCM reports. Since the SCM tool records each and every transaction into the SCM database, the SCM reporting user can create different reporting queries and fetch back all the details in a representable report. The reports can then be used for any decision-making or auditing purposes. Many contemporary SCM tools provide different report formats, templates, and flexibility to create user driven reports.

SCM reporting feature also helps in configuration audits. SCM tool provides all the necessary details required for audits. SCM tool stores all the configuration details, version numbers, changesets, and historical snapshots; which can be queried and reported using SCM reporting tool. Reports can then be audited, validated, and verified to control the configuration management process.

SCM tools provide authentication and authorization modules to provide access and security to the SCM system. Since SCM contains proprietary details, security is of utmost importance. SCM tools assist in providing access to only specific people. It can also restrict access to certain files based on the role. SCM system can be configured to support different roles and access levels. Build engineer who maintains the SCM system, usually create login ID’s and passwords for all users. For online SCM tools, all the transactions usually occur over the secure HTTP network i.e. HTTPS 1.1 (Hypertext Transfer Protocol Secure).

SCM tools also offer various customizations to the SCM system. SCM systems can be customized from basic level such as fonts, colors, layouts, etc. to more advanced level such as roles, and access rights. Some of the SCM tools also provide the complete system as packaged software. For example, as packaged software, the company purchasing the SCM suite can only buy the features which are required and necessary for the organization. The company selling the SCM tool can sell the same software suite by enabling or disabling the features. In this way, the company using the SCM tool can acquire the necessary module later point of time without installing a new software package. They could simply re-enable the disabled functionality.

Now-a-days all tools have graphical user interface (GUI). GUI helps in understanding the system in a better way and helps improve the productivity of the user. SCM tools typically use different layouts, forms, fonts, colors, icons, and many other user interface elements to assist in supporting great user experience (UX). UX is of utmost importance when it comes to web-based and desktop-based SCM tools.

SCM tools also support distributed development with different people working at a different location at the same time. SCM tool handle file conflicts in an organized way to manage consistency and redundancy.

Many SCM tools are usually based on client-server technology, and many have moved to web-based technology. Web-based provides flexibility in accessing the SCM system on-the-go. It can be accessed from the laptop, mobile, IPAD, and various other devices which support Internet browsing. Since the SCM tool is web-based, there is no installation process involved in implementing such a system. This helps the company utilizing the SCM tool to reduce maintenance cost. This, in turn, provides cost savings for the company since all the SCM maintenance is handled by the SCM tool manufacturer.

With the advent of cloud-based computing, we can also expect to see some SCM tools available on the cloud. SCM tools have many features and functions which help in managing software projects in an organized manner. Project managers should select the right SCM tool that suites the organization culture and the goal.
 
SCM Tools

SCM Tool Company
Visual Source Safe (VSS) Microsoft Corporation
http://www.microsoft.com/
MKS Integrity MKS
http://www.mks.com/platform/our-product
Team Foundation Server Microsoft Corporation
http://www.microsoft.com/
AccuRev SCM Software Solutions (AccuRev 4.9) AccuRev
http://www.accurev.com/
AllChange Configuration Management Software (AllChange 8) IntaSoft
http://www.intasoft.net/
CA Software Change Manager Computer Associates
http://www.ca.com/
ClearCase IBM Rational
http://www-01.ibm.com/software/awdtools/clearcase/
Razor Visible Software
http://www.razor.visible.com/Products/Razor/index.htm
TRUEchange McCabe Software
http://www.mccabe.com/cm.htm
Perforce Perforce Software
http://www.perforce.com/perforce/products/index.html
 
References

Keyes, J. (2004). Software configuration management. Boca Raton, FL: Auerbach Publications.

Leon, A. (2005). Software configuration management handbook Second Edition. Norwood, MA: Artech House, Inc.
 
Comments

Share This Page

Ads



Copyright © 2017 CrazyEngico.com. All rights reserved.
CrazyEngico.com is not responsible for the content and CrazyEngico.com does not evaluate or guarantee the accuracy of any CrazyEngico.com content.
Please read our terms of service agreement before using this site.

feedback