Summary:
Most enterprises need to manage change in three key areas: custom developed corporate software; packaged application suites and related customizations; and the Web. In many cases, it is advantageous to manage them all together ó application code, web content and digital assets ó hence the umbrella term of Enterprise Change Management or ECM. The changes generated in any of these areas of development invariable ripple through the entire organization. Change can be made manageable with integrated systems for software configuration management (SCM) which can include packaged application change management, and web content management (WCM). Software Configuration Management is the ability to control and manage change in a software project.
Body:
Software configuration management (SCM) solutions provide a wide array of benefits for companies across all industries. In fact, a survey performed by industry analyst firm Forrester claims that companies who don’t use automated SCM solutions, and instead choose to manage software changes in a manual or ad hoc fashion, experience problems such as poor software quality, dissatisfied customers, higher IT costs, and loss of business continuity due to production downtime. Change is inherent and ongoing in any software project. The ability to track control such changes in a proper manner form the basis of a good software project. Software Configuration Management tries to bridge this gap by defining a process for change control. Change Management defines processes to prevent unauthorized changes, procedures to follow when making changes, required information, possibly workflow management as well. Change management is orders of magnitude more complex than version control of software. Software configuration management must be practiced for any software system from the moment any work on the software system begins to when support ceases for that system.
The goals of SCM are generally:
With the introduction of cloud computing the purposes of SCM tools have become merged in some cases. The SCM tools themselves have become virtual appliances that can be instantiated as virtual machines and saved with state and version. The tools can model and manage cloud-based virtual resources, including virtual appliances, storage units, and software bundles. The roles and responsibilities of the actors have become merged as well with developers now being able to dynamically instantiate virtual servers and related resources.
Benefits for project leaders
When you automate the hand-offs related to changes, you achieve faster code turnover, shorter development cycles, easier adaptability to market changes and better use of an individual developerís special skills. You are able to:
Benefits for developers
Developers have concerns that are different from those of management. Managing change prevents these common day-to-day aggravations that developers face in ad hoc team development:
Benefits for business managers
Executive management will see benefits for the business bottom line:
When you use a version control system for your developed software, you can:
That last bullet means that you can have several different versions of any part of your code and still be able to understand what you have. This helps when you are making a lot of enhancements that need to be tested separately before they are moved into production. It also means that if a new software bug is introduced, you have a way to trace back and find out which change in the code caused the bug. At that point, the code change can be rolled back to the working version while the bug is investigated and (hopefully) fixed.
To really do this right, there are also a couple of other things you will need to do:
Overall, software configuration management saves you money. This happens because having organized and versioned code goes a long way towards preventing mistakes, re-work, and duplicated effort between multiple developers. The documentation provided by a version control system provides an automated means of communication between members of a development team, meaning fewer misunderstandings about who is working on what. All of this adds up to better productivity and cost savings. You can probably figure out that the best time to start software configuration management is at the beginning of development. If you haven’t done that, though, it’s not too late. There are some great open source systems out there, as well as many that will require an investment. Find a system, decide on a specific date/time, get your code organized, suspend any changes temporarily, and place all the code pieces into your version control system. With this baseline, some coordination, and a bit of effort, you can manage your code and be confident that changes are controlled and documented.
Reference websites:
ieeexplore.ieee.org,dbmaestro.com, seguetech.com,en.wikipedia.org, pvcs.synergex.com, ibiblio.org