<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Practice of Software Configuration Management Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/category/practice-of-software-configuration-management/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/category/practice-of-software-configuration-management/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 27 Feb 2021 09:55:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>Skill Sets of SCM, Build and Release Engineers</title>
		<link>https://www.scmgalaxy.com/tutorials/skill-sets-of-scm-build-and-release-engineers/</link>
					<comments>https://www.scmgalaxy.com/tutorials/skill-sets-of-scm-build-and-release-engineers/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 09:04:04 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Build and Release]]></category>
		<category><![CDATA[Engineers]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Skill Sets]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4623</guid>

					<description><![CDATA[<p>Build / WorkFlow Mgmt Tools AnthillPro Apache Continuum Bamboo CruiseControl Hudson LuntBuild OpenMake Meister TeamCity Team Foundation Server Electric Cloud [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/skill-sets-of-scm-build-and-release-engineers/">Skill Sets of SCM, Build and Release Engineers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Build / WorkFlow Mgmt Tools</strong></p>
<ul>
<li>AnthillPro</li>
<li>Apache Continuum</li>
<li>Bamboo</li>
<li>CruiseControl</li>
<li>Hudson</li>
<li>LuntBuild</li>
<li>OpenMake Meister</li>
<li>TeamCity</li>
<li>Team Foundation Server</li>
<li>Electric Cloud</li>
<li>Others</li>
</ul>
<p><strong>SCM Tools</strong></p>
<ul>
<li>AccuRev</li>
<li>ClearCase</li>
<li>CA Harvest</li>
<li>CVS</li>
<li>Dimensions</li>
<li>Git</li>
<li>MKS Source Integrity</li>
<li>Mercurial</li>
<li>Perforce</li>
<li>PVCS</li>
<li>StarTeam</li>
<li>Subversion</li>
<li>Synergy</li>
<li>Team Foundation Server</li>
<li>Vault</li>
<li>ViewVC</li>
<li>VSS</li>
<li>Others</li>
</ul>
<p><strong>Scripting</strong></p>
<ul>
<li>Ant</li>
<li>Groovy</li>
<li>Make</li>
<li>Maven</li>
<li>MSBuild</li>
<li>NAnt</li>
<li>Shell Scripts</li>
<li>Perl Scripts</li>
<li>Python Scripts</li>
<li>Visual Studio</li>
<li>Others</li>
</ul>
<p><strong>Release / Dep Tools</strong></p>
<ul>
<li>Cruise</li>
<li>Rational Team Concert</li>
<li>Manual</li>
<li>Others</li>
</ul>
<p><strong>Security</strong></p>
<ul>
<li>Active Directory</li>
<li>Kerberos</li>
<li>LDAP</li>
<li>Single Sign-on</li>
<li>RSA SecurID</li>
<li>Others</li>
</ul>
<p><strong>Testing Tools</strong></p>
<ul>
<li>Agitar</li>
<li>CppUnit</li>
<li>HP Mercury Quality Center</li>
<li>HP Mercury QuickTest Pro</li>
<li>JUnit</li>
<li>MSTest</li>
<li>NUnit</li>
<li>Selenium</li>
<li>Silk Central Test Manager</li>
<li>TestNG</li>
<li>Others</li>
</ul>
<p><strong>Test Coverage</strong></p>
<ul>
<li>Clover</li>
<li>Cobertura</li>
<li>Emma</li>
<li>Others</li>
</ul>
<p><strong>Source-code Analysis</strong></p>
<ul>
<li>Checkstyle</li>
<li>CodeSonar</li>
<li>Coverity</li>
<li>FindBugs</li>
<li>Fortify</li>
<li>Klocwork</li>
<li>PMD</li>
<li>Sonar</li>
<li>Others</li>
</ul>
<p><strong>Issue Tracking Tools</strong></p>
<ul>
<li>Bugzilla</li>
<li>ClearQuest</li>
<li>HP Quality Center</li>
<li>JIRA</li>
<li>PVCS Tracker</li>
<li>Team Foundation Server</li>
<li>TeamTrack</li>
<li>VersionOne</li>
<li>Others</li>
</ul>
<p><strong>IDEs Integration</strong></p>
<ol>
<li>Eclipse</li>
<li>RAD</li>
<li>Visual Studio</li>
<li>Others</li>
</ol>
<p><strong>Virtualization</strong></p>
<ol>
<li>VMWare Lab Manager</li>
<li>Microsoft</li>
<li>Amazon (Elastic Cloud)</li>
<li>Others</li>
</ol>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/skill-sets-of-scm-build-and-release-engineers/">Skill Sets of SCM, Build and Release Engineers</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/skill-sets-of-scm-build-and-release-engineers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Questionnaire: Access your SCM Process in Project</title>
		<link>https://www.scmgalaxy.com/tutorials/questionnaire-access-your-scm-process-in-project/</link>
					<comments>https://www.scmgalaxy.com/tutorials/questionnaire-access-your-scm-process-in-project/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 06:39:52 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[Questions]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4579</guid>

					<description><![CDATA[<p>TABLE OF CONTENTS 1&#8230;&#8230; General Assessment Questions. 2 1.1     Questions to analyze the development process description.. 2 1.2     Questions to characterize the project application.. 2 1.3     Questions [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/questionnaire-access-your-scm-process-in-project/">Questionnaire: Access your SCM Process in Project</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>TABLE OF CONTENTS</p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339406">1&#8230;&#8230; General Assessment Questions. 2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339407">1.1     Questions to analyze the development process description.. 2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339408">1.2     Questions to characterize the project application.. 2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339409">1.3     Questions to identify the supporting tools. 2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339410">2&#8230;&#8230; Assessment on Configuration and Change Management   2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339411">2.1     Project/Development Managers. 2</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339412">2.2     Developers. 3</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339413">2.3     Testers. 3</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339414">2.4     Configuration Manager. 3</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339415">3&#8230;&#8230; Assessment on Build and Release Management.. 3</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339416">3.1     Build Engineer. 3</a></p>
<p><a href="http://community.scmgalaxy.com/blog/view/16738/questionnaire-access-your-scm-process-in-project#_Toc251339417">3.2     Release Engineer. 4</a></p>
<p>&nbsp;</p>
<h3><a name="_Toc251339406"></a>1           General Assessment Questions</h3>
<h4><a name="_Toc251339407"></a>1.1      Questions to analyze the development process description</h4>
<p>&nbsp;</p>
<p>Which of the following do you get from your existing process?</p>
<p>·         Examples</p>
<p>·         Guidelines</p>
<p>·         Artifact templates</p>
<p>·         Activity descriptions</p>
<p>·         Artifact descriptions</p>
<p>&nbsp;</p>
<h4><a name="_Toc251339408"></a>1.2      Questions to characterize the project application</h4>
<p><strong> </strong></p>
<ul>
<li>What is the size of each project (duration, persons, person years,  LOC)</li>
</ul>
<p>·         What type (maintenance / enhancement / new development / prototype /</p>
<p>§  feasibility)</p>
<ul>
<li>What type of development model is being used?</li>
<li>Are we using any process models like UCM, RUP or any other?</li>
<li>Any industry/domain specific standards (like CMMI, ITIL etc.) to be followed?</li>
</ul>
<p>&nbsp;</p>
<h4><a name="_Toc251339409"></a>1.3      Questions to identify the supporting tools</h4>
<p>&nbsp;</p>
<p>·         What are the tools that you currently use in your work?</p>
<p>·         How is the integration among the above tools?</p>
<p>·         Are we using the tool features the way they are designed or intended?</p>
<p>&nbsp;</p>
<h3><a name="_Toc251339410"></a>2           Assessment on Configuration and Change Management</h3>
<h4><a name="_Toc251339411"></a><em>2.1         </em><em>Project/Development Managers</em></h4>
<p>&nbsp;</p>
<p><em>·         </em>How do you maintain all the artifacts together and version them?</p>
<p>·         Where are the people working on the project located?</p>
<p>·         What&#8217;s the difference between Developer CM and Release CM?</p>
<p>·         How do you assess, and track the impact of a proposed change?</p>
<p>·         How do you manage system integration of modules developed by individual developers?</p>
<p>·         How many product versions are you supporting at this moment?</p>
<p>·         Who is the designated Configuration Manager?</p>
<p><em> </em></p>
<h2><em> </em></h2>
<h2><a name="_Toc251339412"></a><em>2.2         </em><em>Developers</em></h2>
<p>&nbsp;</p>
<p>·         How do you baseline project artifacts?</p>
<p>·         Can you build your system reliably and repeatedly?</p>
<p>·         Explain your labeling scheme?</p>
<p>·         Can you show me what versions went into a certain release?</p>
<p>·         What does the version tree for this file look like?</p>
<p>·         How many product versions are you supporting at the moment?</p>
<p>·         What is the version control tool being used? Is it user friendly?</p>
<p>·         What is the bug tracking/change management tool being used? Is it user friendly?</p>
<p><em> </em></p>
<h2><a name="_Toc251339413"></a><em>2.3         </em><em>Testers</em></h2>
<p>·         Do you know what files/documents should be delivered?</p>
<p>·         How do you assess, and track the impact of a proposed change?</p>
<p>·         Can you show me what artifact versions went into a certain release?</p>
<p>·         How comfortable are you working with Bug/Change management tool?</p>
<p>&nbsp;</p>
<h2><a name="_Toc251339414"></a><em>2.4         </em><em>Configuration Manager</em></h2>
<p>·         Do you know what files/documents should be delivered?</p>
<p>·         How do you track who changed what, when, where, and why?</p>
<p>·         How long does a build or release take?</p>
<p>·         Is there a Configuration Management Plan document?</p>
<p>·         Is there a tight integration between Version control tool and Bug/Change tracking tool?</p>
<p>·         How the parallel (if any) development is enabled? Any limitations with the current branching strategy?</p>
<p>·         Is this project development spanned across multiple sites? If so, what is your multi-site strategy?</p>
<p><em> </em></p>
<h3><a name="_Toc251339415"></a>3          Assessment on Build and Release Management</h3>
<h2><a name="_Toc251339416"></a><em>3.1         </em><em>Build Engineer</em></h2>
<p>&nbsp;</p>
<ul>
<li>What is the build process adopted (automated/manual)?</li>
<li>Are there nightly builds?</li>
<li>Is there continuous integration?</li>
<li>Are there smoke and sanity tests at the end of the build?</li>
<li>What is the build acceptance criterion (BAT)?</li>
<li>What is the build duration? Is it optimal?</li>
<li>How are pre-conditions to the build verified?</li>
<li>Are there any build environment integrated automated unit test-cases?</li>
<li>Is there any enforcement tool on coding standards?</li>
</ul>
<ul>
<li>Is there any code coverage tool being used?</li>
<li>Are the post build activities automated?</li>
<li>Any additional practices (like checksum generation, signing the build artifacts) in place as part of the build?</li>
<li>Are there any scripting technologies used in automating build process?</li>
<li>Is Labeling strategy well-defined?</li>
<li>If any third party tool is being used for packaging, is that package creation process automated?</li>
</ul>
<p>&nbsp;</p>
<h2><a name="_Toc251339417"></a><em>3.2         </em><em>Release Engineer</em></h2>
<p>&nbsp;</p>
<ul>
<li>How many major, minor releases a year per project?</li>
<li>How many customers per release per project?</li>
<li>How do you deliver the releases to the customers? – Is it physical media distribution or Push/Pull mechanism from web or any other process?</li>
<li>Is the distribution CD/DVD creation process automated?</li>
<li>What is the size of the release deliverable?</li>
<li>What are the contents of a release?</li>
<li>How is the release bundle tested?</li>
<li>How many platforms are certified? How different are the release packages?</li>
<li>Is there any release check-list for cross-check?</li>
<li>Is any part of the release process automated?</li>
<li>Is there a need for i18n? If yes, is the i18n release handled separately?</li>
<li>In case of installers, is there installer testing? Is it automated?</li>
<li>Is the release schedule well-planned?</li>
<li>Are you delivering patches in well constructed and cost effective way?</li>
<li>Is there any release audit process in place?</li>
<li>How are you tracking your releases?</li>
<li>Is there any legal compliance in place while shipping the release to the customers?</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/questionnaire-access-your-scm-process-in-project/">Questionnaire: Access your SCM Process in Project</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/questionnaire-access-your-scm-process-in-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Roles of CM Users and Views of CM</title>
		<link>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/</link>
					<comments>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:39:01 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM Users]]></category>
		<category><![CDATA[CM Users Roles]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Manager]]></category>
		<category><![CDATA[Roles of CM Users]]></category>
		<category><![CDATA[Views of CM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4493</guid>

					<description><![CDATA[<p>Roles of CM Users and Views of CM Different views of CM emanate from the different roles and concerns of [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/">Roles of CM Users and Views of CM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Roles of CM Users and Views of CM</strong><br />
Different views of CM emanate from the different roles and concerns of people in an organization.</p>
<p>A simple, typical, CM user scenario of an organization is described in order to present the various roles and the subsequent views of CM support. The scenario involves various people with different responsibilities: a project manager who is in charge of a software group, a configuration manager who is in charge of the CM procedures and policies, the programmers who are responsible for developing and maintaining the software product, the tester who validates the correctness of the product, the quality assurance (QA) manager who ensures the high quality of the product, and the customer who uses the product. Each role comes with its own goals and tasks. For the project manager, major goals are to ensure that the product is developed within a certain time frame and meets the customer’s  requirements. Hence, the manager monitors the progress of development and recognizes and reacts to problems. This is done by generating and analyzing reports about the status of the software system and by performing reviews on the system.</p>
<p>The goals of the configuration manager are to ensure that procedures and policies for creating,<br />
changing, and testing of code are defined and followed, as well as to make information about the project accessible. To implement techniques for maintaining control over code changes, this manager introduces mechanisms for making official requests for changes, for evaluating changes (via a Change Control Board (CCB) that is responsible for approving changes to the software system), and for authorizing changes. The manager creates and disseminates task lists for the programmers and basically creates the project context. Also, the manager collects statistics about components in the software system, such as information determining which components in the system are problematic.</p>
<p>For the programmers, the goal is to work effectively in creating the product. This means programmers do not unnecessarily interfere with each other in the creation and testing of code and in the production of supporting documents. But, at the same time, they communicate and coordinate efficiently. They use tools that help build a consistent software product, and they communicate and coordinate by notifying one another about tasks required and tasks completed. Changes are propagated between each other’s work by merging those changes and resolving any conflicts. A history is kept of the evolution of all components in the product along with a log of what actually changed and reasons for those<br />
changes. The programmers have their own work area for creating, changing, testing, and integrating code. At a certain point, the code is made into a baseline from which further development continues and from which parallel development for variants of other target machines emerges.<br />
The tester’s goal is to make sure every component of the product is tested and found satis-factory. This involves testing a particular version of the product and keeping a record of which tests apply to which version of the product along with the results of the tests. Any errors are reported back to the appropriate people, tracked and fixes are put through regression testing.</p>
<p>The Quality Assurance (QA) manager’s goal is to ensure the high quality of the product. This means that certain procedures and policies must be fulfilled with the appropriate approval. Bugs must be fixed and fixes propagated to the appropriate variants of the product with the correct amount of testing applied to each variant. Customer complaints about the product must be followed up.</p>
<p>The customers use the product — most likely, different customers use different versions and variants of it. Customers follow certain procedures for requesting changes and for indicating bugs and improvements for the product.</p>
<p>As a result of the various roles, an organization ends up with several views of CM. These views range from corporate CM (CCM) and project CM (PCM) to developer CM (DCM) and application CM (ACM). The former two views treat CM as a management and control discipline emphasizing the process aspect of CM, while the latter two views treat CM as a developer support function emphasizing tool support for CM. CCM focuses on maintaining CM information for a product, whose data is the basis for strategic impact analysis and process improvement. PCM focuses on managing change to a product through formal control processes such as change authorization via CCBs and configuration managers guarding CM repositories. DCM focuses on supporting developers (programmers) performing actual changes, maintaining history of actual changes, and providing stability and consistency through system build and team support. ACM focuses on configuration of applications as they are deployed, addressing issues of installation management, as well as dynamic configuration and reconfiguration. Ideally, a CM system suited to the views should support all these goals, roles and tasks.</p>
<p><strong>Reference: </strong><br />
The State of Automated Configuration Management<br />
A. Brown, S. Dart, P. Feiler, K. Wallnau</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/">Roles of CM Users and Views of CM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/roles-of-cm-users-and-views-of-cm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configuration Management</title>
		<link>https://www.scmgalaxy.com/tutorials/configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/configuration-management/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:34:56 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4489</guid>

					<description><![CDATA[<p>By Bob Aiello 2876 days ago Comments (2) configuration management jobs careers Hey everyone &#8211; we are having a discussion about getting started [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management/">Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="elgg-listing-full elgg-content clearfix" data-guid="958">
<div class="elgg-image-block clearfix elgg-listing-full-header">
<div class="elgg-body">
<div class="elgg-listing-summary-subtitle elgg-subtext">By <a href="http://community.scmgalaxy.com/blog/owner/robertjaiello">Bob Aiello</a> <time title="22 February 2010 @ 8:19pm" datetime="2010-02-22T20:19:07-07:00">2876 days ago</time> <a href="http://community.scmgalaxy.com/blog/view/958/configuration-management#comments">Comments (2)</a></div>
<div class="clearfix">
<ul class="elgg-tags">
<li></li>
<li class="elgg-tag"><a href="http://community.scmgalaxy.com/search?q=configuration+management+jobs+careers&amp;search_type=tags" rel="tag">configuration management jobs careers</a></li>
</ul>
</div>
</div>
</div>
<div class="elgg-output blog-post">
<p>Hey everyone &#8211; we are having a discussion about getting started in CM &#8211; in the CM Crossroads forums <a href="http://bit.ly/awKvKA">http://bit.ly/awKvKA</a>. Please feel free to respond here, in the forums or contact me directly at <a href="mailto:bob.aiello@ieee.org">bob.aiello@ieee.org</a></p>
<p>Bob Aiello<br />
Editor in Chief<br />
CM Crossroads<br />
<a href="http://www.linkedin.com/in/BobAiello">http://www.linkedin.com/in/BobAiello</a></p>
<p>______________________________________________________________</p>
<p>Hi Rajesh &#8211; did you actually &#8220;test&#8221; the link, that I posted, before saying that it was &#8220;illegal&#8221;. It resolves just fine and it points to an active discussion on Getting Started in Configuration Management.</p>
<p>Hi bagaloreorbit &#8211; I DID SAY &#8220;Please feel free to respond here&#8230;&#8221; &#8211; didn&#8217;t I???? Gentlemen &#8211; I have been promoting Configuration Management in virtual communities for many many years. CM professionals are true corporate citizens who share their knowledge and expertise. Let&#8217;s model that corporate citizenship. Feel free to send me an email directly at <a href="mailto:Bob.Aiello@ieee.org" rel="nofollow">Bob.Aiello@ieee.org</a> or on skype: BobAiello.</p>
<p>&nbsp;</p>
</div>
</div>
<div id="comments" class="elgg-comments blog-comments">
<ul class="elgg-list elgg-list-entity">
<li id="elgg-object-43134" class="elgg-item elgg-item-object elgg-item-object-comment">
<div class="elgg-image-block clearfix">
<div class="elgg-image">
<div class="elgg-avatar elgg-avatar-tiny"><a class="" href="http://community.scmgalaxy.com/profile/rajeshkumar"><img decoding="async" class="" title="Rajesh Kumar" src="http://community.scmgalaxy.com/serve-file/e0/l1481295947/di/c0/DvX3nSE-uqKjjX5cKaVIDgy-EEgV_Q5LK1iM9vbQUL0/1/84/profile/84tiny.jpg" alt="Rajesh Kumar" /></a></div>
</div>
<div class="elgg-body"><a name="comment-43134"></a></p>
<div class="mbn"><a href="http://community.scmgalaxy.com/profile/rajeshkumar">Rajesh Kumar</a> <span class="elgg-subtext"><a href="http://community.scmgalaxy.com/comment/view/43134/958"><time title="24 February 2010 @ 1:41am" datetime="2010-02-24T01:41:06-07:00">2875 days ago</time></a></span></p>
<div class="elgg-output elgg-inner" data-role="comment-text">
<p>Hi Robert,</p>
<p>the link which you have given for CM crossroads is false. I would request you to correct the link as soon as possible. its violating the community rules as you are providing false link.</p>
<p>cm Crossroads link is:<cite>www.<strong>cmcrossroads</strong>.com</cite></p>
</div>
</div>
</div>
</div>
</li>
<li id="elgg-object-43133" class="elgg-item elgg-item-object elgg-item-object-comment">
<div class="elgg-image-block clearfix">
<div class="elgg-image">
<div class="elgg-avatar elgg-avatar-tiny"><a class="" href="http://community.scmgalaxy.com/profile/bangaloreorbit"><img decoding="async" class="" title="bangaloreorbit" src="http://community.scmgalaxy.com/serve-file/e0/l1481295942/di/c0/ah6u7quiTaBcQMhjzP0xoX1T0uI0xyCnKqaSPbXmeQI/1/49/profile/49tiny.jpg" alt="bangaloreorbit" /></a></div>
</div>
<div class="elgg-body"><a name="comment-43133"></a></p>
<div class="mbn"><a href="http://community.scmgalaxy.com/profile/bangaloreorbit">bangaloreorbit</a> <span class="elgg-subtext"><a href="http://community.scmgalaxy.com/comment/view/43133/958"><time title="24 February 2010 @ 1:50am" datetime="2010-02-24T01:50:50-07:00">2875 days ago</time></a></span></p>
<div class="elgg-output elgg-inner" data-role="comment-text">
<p>This is Short url to cm-crosswords.</p>
<p>Robert, I guess we can discuss here same topics instead of moving multiple platform <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
</div>
</div>
</div>
</div>
</li>
</ul>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/configuration-management/">Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/configuration-management/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Four Basic Requirements for an SCM</title>
		<link>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm-2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm-2/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:06:27 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Basic Requirements]]></category>
		<category><![CDATA[Minimum Requirements]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Requirements]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4464</guid>

					<description><![CDATA[<p>Identification, control, audit, and status accounting are the four basic requirements for a software configuration management system. These requirements must [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm-2/">The Four Basic Requirements for an SCM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Identification, control, audit, and status accounting are the four basic requirements for a software configuration management system. These requirements must be satisfied regardless of the amount of automation within the SCM process. All four may be satisfied by an SCM tool, a tool set, or a combination of automated and manual procedures.</p>
<ol>
<li><strong>Identification</strong>—Each software part is labeled so that it can be identified. Furthermore, there will be different versions of the software parts as they evolve over time, so a version or revision number will be associated with the part. The key is to be able to identify any and all artifacts that compose a released configuration item. Think of this as a bill of materials for all the components in your automobile. When the manufacturer realizes that there has been a problem with parking brakes purchased from a subcontractor, it needs to know all the automobile models using that version of the parking brake. It is the same with software. If we are building a multimedia system that has audio MPEG3 drivers for Windows 98, Windows 2000, Windows CE, Linux, and FreeBSD operating systems, how do we find out which releases are impacted when we find an error in the Linux product? You must go back to your SCM system to identify all the common components in all operating system releases that are impacted.</li>
<li><strong>Control</strong>—In the context of configuration management, &#8220;control&#8221; means that proposed changes to a CI are reviewed and, if approved, incorporated into the software configuration. The goal is to make informed decisions and to acknowledge the repercussions associated with a change to the system. These changes may impact budgets, schedules, and associated changes to other components. If a problem is reported in a released product, software engineers must act quickly to evaluate repercussions—a &#8220;fix&#8221; for one client&#8217;s version of the product may be dangerous to another. The control inherent in an SCM system shows each version in which the flawed component appears.</li>
<li><strong>Auditing</strong>—Auditing an SCM system means that approved requested changes have indeed been implemented. The audits allow managers to determine whether software evolution is proceeding both logically and in conformance with requirements for the software. The SCM system should document changes, versions, and release information for all components of each configuration item. When such documentation is in place, auditing becomes a straightforward analysis task.</li>
<li><strong>Status accounting</strong>—Reports and documentation produced by the status accounting function are the auditable entries. All approved parts of a software configuration must be accounted for, and the software parts list must reflect the transition from part CIn to CIn+1. This accounting provides the historic information to determine both what happened and when on the software project. Status accounting enables the auditing requirement of the SCM. As a project manager, the status accounting holds a wealth of information on the amount of effort required throughout the life cycle of the product in its development and maintenance. This is critical to the software project manager in making estimates for new systems based on historic information. The SCM can be used as one of the key components of the project managers&#8217; metrics system.</li>
</ol>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm-2/">The Four Basic Requirements for an SCM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>5 Keys to Automating Configuration Management for Application Infrastructure</title>
		<link>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/</link>
					<comments>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 09:55:31 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Application]]></category>
		<category><![CDATA[Automate]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4460</guid>

					<description><![CDATA[<p>One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>One of the trends being discussed in business, among vendors and in the analyst community is the importance of automating the functions performed by IT. Growing demands by the business, tight budgets and compliance pressures together accentuate the need for IT to be more agile, efficient and responsive to business stakeholders.</p>
<p>Naturally, vendors rush into this environment, each touting the unique benefits of its solution set and the urgency to move forward immediately.  A key area targeted for IT automation is the area of ‘configuration management.’  As it relates to automating day to day IT functions, configuration management can mean many different things: patch management, server and network management or others.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/">5 Keys to Automating Configuration Management for Application Infrastructure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/5-keys-to-automating-configuration-management-for-application-infrastructure-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Versioning in Software Configuration Management &#124; SCM Versioning Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/versioning-in-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/versioning-in-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Wed, 23 May 2012 09:49:14 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Versioning Guide]]></category>
		<category><![CDATA[SCM Versioning Process]]></category>
		<category><![CDATA[SCM Versioning Reference]]></category>
		<category><![CDATA[SCM Versioning Steps]]></category>
		<category><![CDATA[SCM Versioning Tutorial]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Versioning]]></category>
		<category><![CDATA[Steps]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Versioning]]></category>
		<category><![CDATA[Versioning in SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2012/05/23/versioning-in-software-configuration-management/</guid>

					<description><![CDATA[<p>Versioning in Software Configuration Management? Reference: This article has been take out from Book Called &#8220;The Build Master: Microsoft&#8217;s Software [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/versioning-in-software-configuration-management/">Versioning in Software Configuration Management | SCM Versioning Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3798 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2012/05/versioning-configuration-ma.png" alt="versioning-in-software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2012/05/versioning-configuration-ma.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2012/05/versioning-configuration-ma-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></h3>
<h3>Versioning in Software Configuration Management?</h3>
<p><strong>Reference:</strong> This article has been take out from Book Called &#8220;The Build Master: Microsoft&#8217;s Software Configuration Management Best Practices&#8221;</p>
<h3><strong>Why Worry About Versioning?</strong></h3>
<ul>
<li>Having a good version scheme for your software is important for several reasons. The following are the top five things a version scheme allows you to do (in random order):</li>
<li>Track your product binaries to the original source files.</li>
<li>Re-create a past build by having meaningful labels in your source tree.</li>
<li>Avoid &#8220;DLL hell&#8221; —multiple versions of the same file (library in this case) on a machine.</li>
<li>Help your setup program handle upgrades and service packs.</li>
<li>Provide your product support and Q/A teams with an easy way to identify the bits they are working with.</li>
</ul>
<p>So, how do you keep track of files in a product and link them back to the owner? How can you tell that you are testing or using the latest version of a released file? What about the rest of the reasons in the list? This chapter describes my recommendations for the most effective and easiest way to set up and apply versioning to your software. Many different schemes are available, and you should feel free to create your own versioning method.</p>
<p>Ultimately, like most of the other topics in this book, the responsibility to apply versioning to the files in a build tends to fall into the hands of the build team. That might be because it is usually the build team that has to deal with the headaches that come from having a poor versioning scheme. Therefore, it is in their best interest to publish, promote, and enforce a good versioning scheme. If the build team does not own this, then someone who does not understand the full implications of versioning will make the rules. Needless to say, this would not be desirable for anybody involved with the product.</p>
<h3>What is the best way to accomplish this? Let&#8217;s start with the version number and work our way down.</h3>
<p><strong>File Versioning</strong></p>
<p>Every file in a product should have a version number; a four-part number separated by periods such as the one that follows seems to be the established best practice. There are many variations of what each part represents. I will explain what I think is the best way of defining these parts.</p>
<p>&lt;major version&gt;.&lt;minor version&gt;.&lt;build number&gt;.&lt;revision&gt;</p>
<p><strong>Major version</strong>— The component owner usually assigns this number. It should be the internal version of the product. It rarely changes during the development cycle of a product release.</p>
<p><strong>Minor version</strong>— The component owner usually assigns this number. It is normally used when an incremental release of the product is planned instead of a full feature upgrade. It rarely changes during the development cycle of a product release.</p>
<p><strong>Build number</strong>— The build team usually assigns this number based on the build that the file was generated with. It changes with every build of the code.</p>
<p><strong>Revision</strong>— The build team usually assigns this number. It can have several meanings: bug number, build number of an older file being replaced, or service pack number. It rarely changes. This number is used mostly when servicing the file for an external release.</p>
<h3><strong>Build Number</strong></h3>
<p>Each build that is released out of the Central Build Lab should have a unique version stamp (also known as the build number). This number should be incremented just before a build is started. Don&#8217;t use a date for a build number or mix dates into a version number simply because there are so many date formats out there that it can be difficult to standardize on one. Also, if you have more than one build on a given date, the naming can get tricky. Stick with an n=n+1 build number. For example, if you release build 100 in the morning and rebuild and release your code in the afternoon, the afternoon build should be build 101. If you were to use a date for the build number, say 010105, what would your afternoon build number be? 010105.1? This can get rather confusing.</p>
<h3><strong>How Versioning Affects Setup</strong></h3>
<p>Have you ever met someone who reformats his machine every six months because &#8220;it just crashes less if I do&#8221; or it &#8220;performs better?&#8221; It might sound draconian, but the current state of component versioning and setup makes starting from scratch a likely solution to these performance issues, which are further complicated by spyware.</p>
<p>Most of the problems occur when various pieces of software end up installing components (DLLs and COM components) that are not quite compatible with each other or with the full set of installed products. Just one incorrect or incorrectly installed DLL can make a program flaky or prevent it from starting up. In fact, DLL and component installation is so important that it is a major part of the Windows logo requirement.</p>
<p>If you are involved in your product&#8217;s setup, or if you are involved in making decisions about how to update your components (produce new versions), you can do some specific things to minimize DLL hell and get the correct version of your file on the machine.</p>
<p>Installing components correctly is a little tricky, but with these tips, you can install your components in a way that minimizes the chance of breaking other products on your own.</p>
<p><strong>Install the Correct Version of a Component for the Operating System and Locale</strong><br />
If you have operating system (OS)-specific components, make sure your setup program(s) check which OS you are using and install only the correct components. Also, you cannot give two components the same name and install them in the same directory. If you do, you overwrite the component on the second install on a dual-boot system. Note that the logo requirements recommend that you avoid installing different OS files if possible. Related to this problem is the problem caused when you install the wrong component or typelib for the locale in use, such as installing a U.S. English component on a German machine. This causes messages, labels, menus, and automation method names to be displayed in the wrong language.</p>
<p><strong>Write Components to the Right Places</strong><br />
Avoid copying components to a system directory. An exception to this is if you are updating a system component. For that, you must use an update program provided by the group within Microsoft that maintains the component.</p>
<p>In general, you should copy components to the same directory that you copy the EXE. If you share components between applications, establish a shared components directory. However, it is not recommended that you share components between applications. The risks outweigh the benefits of reduced disk space consumption.</p>
<p><strong>Do Not Install Older Components Over Newer Ones</strong><br />
Sometimes, the setup writer might not properly check the version of an installed component when deciding whether to overwrite the component or skip it. The result can be that an older version of the component is written over a newer version. Your product runs fine, but anything that depends on new features of the newer component fails. Furthermore, your product gets a reputation for breaking other products. We address the issue of whether it makes sense to overwrite components at all. But if you do overwrite them, you don&#8217;t want to overwrite a newer version.</p>
<p><strong>&#8220;Copy on Reboot&#8221; If Component Is in Use</strong><br />
Another common mistake is to avoid dealing with the fact that you cannot overwrite a component that is in use. Instead, you have to set up the file to copy on reboot. Note that if one component is in use, you probably should set up all the components to copy on reboot. If you don&#8217;t, and if the user doesn&#8217;t reboot promptly, your new components could be mixed with the old ones.</p>
<p><strong>Register Components Correctly; Take Security into Account</strong><br />
Sometimes setups don&#8217;t properly register COM components correctly, including the proxy and stub. Note that Windows CE requires that you also register DLLs. Note, too, that when installing DCOM components, you must be vigilant about permissions and security.</p>
<p><strong>Copy Any Component That You Overwrite</strong><br />
It is smart to make a copy of any component that you overwrite before you overwrite it. You won&#8217;t want to put it back when you uninstall unless you&#8217;re sure that no product installed after yours will need the newer component—a difficult prediction! But by storing the component in a safe place, you make it possible for the user to fix his system if it turns out that the component you installed breaks it. You can let users know about this in the troubleshooting section of your documentation, the README file, or on your Web site. Doing this might not save a call to support, but it does at least make the problem solvable. If the component is not in use, you can move it rather than copying it. Moving is a much faster operation.</p>
<p><strong>Redistribute a Self-Extracting EXE Rather Than Raw Components</strong><br />
If your component is redistributed by others (for instance, your component is distributed with several different products, especially third-party products), it is wise to provide a self-extracting EXE that sets up your component correctly. Make this EXE the only way that you distribute your component. (Such an EXE is also an ideal distribution package for the Web.) If you just distribute raw components, you have to rely on those who redistribute your components to get the setup just right. As we have seen, this is pretty easy to mess up.</p>
<p>Your EXE should support command-line switches for running silently (without a UI) and to force overwriting, even of newer components, so that product support can step users through overwriting if a problem arises.</p>
<p>If you need to update core components that are provided by other groups, use only the EXE that is provided by that group.</p>
<p><strong>Test Setup on Real-World Systems</strong><br />
If you&#8217;re not careful, you can install all your setup testing on systems that already happen to have the right components installed and the right registry entries made. Be sure to test on raw systems, on all operating systems, and with popular configurations and third-party software already installed. Also, test other products to make sure they still work after you install your components.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/versioning-in-software-configuration-management/">Versioning in Software Configuration Management | SCM Versioning Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/versioning-in-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Importance of Automation Tools in SCM</title>
		<link>https://www.scmgalaxy.com/tutorials/importance-of-automation-tools-in-scm/</link>
					<comments>https://www.scmgalaxy.com/tutorials/importance-of-automation-tools-in-scm/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Fri, 23 Dec 2011 12:17:36 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Advantages of automation tools in SCM]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Automation Tools]]></category>
		<category><![CDATA[Automation Tools Importance]]></category>
		<category><![CDATA[Automation tools in SCM]]></category>
		<category><![CDATA[Benefits of automation tools in SCM]]></category>
		<category><![CDATA[Importance]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Automation Tools]]></category>
		<category><![CDATA[SCM tools]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Why automation tools are important in scm]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2011/12/23/importance-of-automation-tools-in-scm/</guid>

					<description><![CDATA[<p>Importance of Automation Tools in SCM by John Ferguson Smart Since the dawn of time, people have been using tools [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/importance-of-automation-tools-in-scm/">Importance of Automation Tools in SCM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="alignnone size-full wp-image-3859 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/12/automation-tools-in-scm.png" alt="automation-tools-in-scm" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/12/automation-tools-in-scm.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/12/automation-tools-in-scm-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p><strong>Importance of Automation Tools in SCM</strong><br />
<strong>by </strong>John Ferguson Smart</p>
<div style="text-align: justify;">
<p>Since the dawn of time, people have been using tools to make their life easier. Tools let you solve a problem at hand more quickly and more efficiently, so that you can spend your time doing more interesting things. The stone axe, for example, enabled your prehistoric hunter to cut up meat more efficiently, thus leaving the tribe with time to do much more satisfying activities such as grilling mammoth steaks and painting on cave walls.</p>
<p>Of course, not all tools are equal, and tools have a tendency to evolve. If you go down to your local hardware store nowadays, you can probably find something even better to chop up your firewood or to chop down a tree. In all things, it is important to find the tool that is most appropriate for the job at hand.</p>
<p>The software industry is no exception in this regard. There are thousands of tools out there, and there is a good chance that some of these can help you work more efficiently. If you use them well, they will enable you to work better and smarter, producing higher quality software, and avoiding too much overtime on late software projects. The hardest thing is knowing what tools exist, and how you can put them to good use.</p>
<p>That&#8217;s where this book can help. In a nutshell, this book is about software development tools that you can use to make your life easier. And, in particular, tools that can help you optimize your software development life cycle.</p>
<p>The Software Development Life Cycle (or SDLC) is basically the process you follow to produce working software. This naturally involves coding, but there is more to building an application than just cutting code.</p>
<p>You also need a build environment.</p>
<p>When I talk of a build environment, I am referring to everything that contributes to letting the developers get on with their job: coding. This can include things like a version control system (to store your source code) and an issue management system (to keep track of your bugs). It can also include integration, testing, and staging platforms, in which your application will be deployed at different stages. But the build environment also includes tools that make life easier for the developer. For example, build scripts that help you compile, package and deploy your application in a consistent and reproducible manner. Testing tools that make testing a less painful task, and therefore encourage developers to test their code. And much more.</p>
<p>Let&#8217;s look at a concrete example. My picture of an efficient, productive build environment goes something along the following lines.</p>
<p>You build your application using a finely tuned build script. Your build script is clean, portable, and maintainable. It runs on any machine, and a new developer can simply check the project out of the version control system and be up and running immediately. It just works.</p>
<p>You store your code in a central source code repository. Whenever you commit your code, a build server detects the change to the code base, and automatically runs a full suite of unit, integration, and functional tests. If any problems crop up, you (and the rest of the team) are immediately notified. You have learned from experience that committing small, regular changes makes the integration process go a whole lot smoother, and you organize your work accordingly.</p>
<p>You use an issue tracking system to keep tabs on features to implement, bugs to fix, or any other jobs that need doing. When you commit changes to your source code repository, you mention the issues that this change addresses in the commit message. This message is automatically recorded against these issue in the issue management system. Furthermore, if you say &#8220;Fixes #101,&#8221; the issue automatically will be closed.</p>
<p>Conversely, when you view an issue in the issue management system, you can also see not only the commit messages but also the exact modifications that were made in the source code. When you prepare a release, it is easy to compile a set of reliable release notes based on the issues that were reported as fixed in the issue tracking system since the last release.</p>
<p>Your team now writes unit tests as a matter of habit. It wasn&#8217;t easy to start with, but over time, coaching and peer programming have convinced everyone of the merits of test-driven development. Automatic test coverage tools help them ensure that their unit tests aren&#8217;t missing out on any important code. The extensive test suite, combined with the test coverage reports, gives them enough confidence to refactor their code as necessary. This, in turn, helps keep the code at a high level of reliability and flexibility.</p>
<p>Coding standards and best practices are actively encouraged. A battery of automatic code auditing tools checks for any violations of the agreed set of rules. These tools raise issues relating to coding standards as well as potential defects. They also note any code that is not sufficiently documented.</p>
<p>These statistics can be viewed at any time, but, each week, the code audit statistics are reviewed in a special team meeting. The developers can see how they are doing as a team, and how the statistics have changed since last week. This encourages the developers to incorporate coding standards and best practices into their daily work. Because collective code ownership is actively encouraged, and peer-programming is quite frequent, these statistics also helps to foster pride in the code they are writing.</p>
<p>Occasionally, some of the violations are reviewed in more detail during this meeting. This gives people the opportunity to discuss the relevence of such and such a rule in certain circumstances, or to learn about why, and how, this rule should be respected.</p>
<p>You can view up-to-date technical documentation about your project and your application at any time. This documentation is a combination of human-written high-level architecture and design guidelines, and low-level API documentation for your application, including graphical UML class diagrams and database schemas. The automatic code audits help to ensure that the code itself is adequately documented.</p>
<p>The cornerstone of this process is your Continuous Integration, or CI, server. This powerful tool binds the other tools into one coherent, efficient, process. It is this server that monitors your source code repository, and automatically builds and tests your application whenever a new set of changes are committed. The CI server also takes care of automatically running regular code audits and generating the project documentation. It automatically deploys your application to an integration server, for all to see and play around with at any time. It maintains a graphical dashboard, where team members and project sponsors can get a good idea of the general state of health of your appplication at a glance. And it keeps track of builds, making it easier to deploy a specific version into the test, staging, or production environments when the time comes.</p>
<p>None of the tools discussed in this book are the silver bullet that will miraculously solve all your team&#8217;s productivity issues. To yield its full benefits, any tool needs to be used properly. And the proper use of many of these tools can entail significant changes in the way you work. For example, to benefit from automated testing, developers must get into the habit of writing unit tests for their code. For a continous integration system to provide maximum benefits, they will need to learn to commit frequent, small changes to the version control system, and to organize their work accordingly. And, if you want to generate half-decent technical documentation automatically, you will need to make sure that your code is well-commented in the first place.</p>
<p>You may need to change the way people work, which is never easy. This can involve training, coaching, peer-programming, mentoring, championing, bribing, menacing, or some combination of the above. But, in the long run, it&#8217;s worth it.</p>
</div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/importance-of-automation-tools-in-scm/">Importance of Automation Tools in SCM</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/importance-of-automation-tools-in-scm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</title>
		<link>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/</link>
					<comments>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 22 Feb 2011 06:13:08 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[SCM Process Concept]]></category>
		<category><![CDATA[SCM Process Guide]]></category>
		<category><![CDATA[SCM Process Introduction]]></category>
		<category><![CDATA[SCM Process Overview]]></category>
		<category><![CDATA[smartBuild]]></category>
		<category><![CDATA[smartBuild Concept]]></category>
		<category><![CDATA[smartBuild Guide]]></category>
		<category><![CDATA[smartBuild Introduction]]></category>
		<category><![CDATA[smartBuild Overview]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Development Process]]></category>
		<category><![CDATA[What is SCM]]></category>
		<category><![CDATA[What is smartBuild]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2011/02/22/scm-process-and-smartbuild/</guid>

					<description><![CDATA[<p>SCM Process and smartBuild SCM Process and smartBuild from Rajesh Kumar</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/">SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="wp-image-3909 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild.png" alt="scm-process-and-smartbuild" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2011/02/scm-process-and-smartbuild-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<h1 class="h-slideshow-title">SCM Process and smartBuild</h1>
<p style="text-align: center;"><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/3Xz7hdL0HbXDQH" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="SCM Process and smartBuild" href="//www.slideshare.net/rajeshatbuzz/scm-process-and-smartbuild" target="_blank" rel="noopener">SCM Process and smartBuild</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/">SCM Process and smartBuild Overview, What is SCM Process and smartBuild?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/scm-process-and-smartbuild/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Software Configuration Management in Pakistan &#124; SCM Practices in Pakistan</title>
		<link>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/</link>
					<comments>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 13 Dec 2010 10:38:37 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[CM Job Roles in Pakistan Software Industry]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration Management in Pakistan IT Industry]]></category>
		<category><![CDATA[Configuration Management jobs in Pakistan]]></category>
		<category><![CDATA[Job Roles in Pakistan IT firms]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Pakistan]]></category>
		<category><![CDATA[Pakistan IT firms]]></category>
		<category><![CDATA[Pakistan Software Development Industry]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM in Pakistan]]></category>
		<category><![CDATA[SCM practices in Pakistan]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/12/13/software-configuration-management-in-pakistan/</guid>

					<description><![CDATA[<p>Mature CM is cross-business functionality NOT functionality solely within engineering. Software Configuration Management facilitates timely communications; enforces development policies and [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/">Software Configuration Management in Pakistan | SCM Practices in Pakistan</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3894 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana.png" alt="software-configuration-management-in-pakistan" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/12/software-configuration-mana-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></div>
<div style="text-align: justify;">Mature CM is cross-business functionality NOT functionality solely within engineering. Software Configuration Management facilitates timely communications; enforces development policies and technical standards along Management of Hand-offs between Environments and Teams efficiently.</div>
<p style="text-align: justify;">The practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations. Specifically, Software Configuration Management ensures the integrity, reliability and reproducibility of developing software products from conception to release.</p>
<p style="text-align: justify;">I should say CM in Pakistan has been catching up slow but very steadily. There are not many senior people in Pakistan who have dedicated their careers in Configuration Management. Many people moved on to various management roles out of CM after some years of experience. This is due to lack of management opportunities in this area. But, times have changed for good and are getting better. With the growing maturity of CM across the industry, organizations are giving utmost importance to this area and so are hiring people at very senior levels.</p>
<p style="text-align: justify;">I have around 3 years of experience while Interacting CM Professionals internationally and national level; found very strong maturity and awareness. With my experience, I would say Pakistan IT firms still need a broader thinking from CM perspective. In many organizations, people think that CM is just about making builds and controlling source code for projects. We need to educate people about the real importance of Software Configuration Management in any organization. There is a need of clear understanding of various aspects of Configuration Management like Change Management, Incident/Problem Management, Build &amp; release management, Code control/version control , Automated Build management , Parallel development and Continuous integration , Introduction to new tools for software and hardware configurations etc…</p>
<p style="text-align: justify;">CM is much beyond a tool administration or builds management. It does comprise entire life cycle of a project as well as the POST PRODUCTION analysis to improve the process for upcoming projects. It’s a continuous process which not only gives any IT organization a process to boost confidence in delivering quality product with stable code line.</p>
<p style="text-align: justify;">NetSol is vigilant and moving superbly toward innovation and automation through R&amp;D in the field of Configuration Management. Being the CMMI 5 organization; we have implemented excellent Release Management Process that beautifully interacting and entertaining CM Services throughout the organization. We are in process of experimenting Modern tools and discovering best practices for making our process incredibly easy and technically strong. NetSol’s Department of Configuration Management really welcomes newly born organizations and specially those (existing) who want to setup/improve their Configuration Management process and looking for technical improvement mentor; please come up and Consult NetSol with trust.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/">Software Configuration Management in Pakistan | SCM Practices in Pakistan</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/software-configuration-management-in-pakistan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Best Practices-Software Configuration and Release Management (SCRM)</title>
		<link>https://www.scmgalaxy.com/tutorials/best-pactices-software-configuration-and-release-management-scrm/</link>
					<comments>https://www.scmgalaxy.com/tutorials/best-pactices-software-configuration-and-release-management-scrm/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 17 May 2010 06:27:31 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Best Pactices]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management Best Practices]]></category>
		<category><![CDATA[Good Practices]]></category>
		<category><![CDATA[Intruction]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Recommend]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Release Management Best Practices]]></category>
		<category><![CDATA[SCRM]]></category>
		<category><![CDATA[SCRM Best Practices]]></category>
		<category><![CDATA[SCRM Best Practices Guide]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration and Release Management]]></category>
		<category><![CDATA[Software Configuration and Release Management Best Practices]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/05/17/best-pactices-software-configuration-and-release-management-scrm/</guid>

					<description><![CDATA[<p>Introduction The development of software applications is an evolutionary process, moving towards some predetermined end goals. These goals are usually [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-pactices-software-configuration-and-release-management-scrm/">Best Practices-Software Configuration and Release Management (SCRM)</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4377" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/software-configuration-and-.png" alt="software-configuration-and-release-management-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/software-configuration-and-.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/05/software-configuration-and--300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 18pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">Introduction</span></span></strong></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">The development of software applications is an </span><a name="OLE_LINK2"></a><a name="OLE_LINK1"></a><span style="mso-bookmark: OLE_LINK2;"><span style="color: #000000;">evolutionary</span></span><span style="color: #000000;"> process, moving towards some predetermined end goals. These goals are usually in the form of a <strong>Release</strong>, either internal or external, to deliver a set of required functionality. <strong>Software Release Management </strong>is the process of ensuring releases can be reliably planned, scheduled and successfully transitioned (<strong>deployed</strong>) to Test and Live Environments. Software Release Management is not just about &#8220;automating the path to production&#8221; although that is certainly an important part. It also about adopting a holistic view of application changes, using the &#8220;Release&#8221; as the container to ensure that changes are packaged, released and tested in a repeatable and controlled manner. Release Management is often likened to the conductor of an orchestra, with the individual changes to be implemented the various instruments within it. Software Release Management is intrinsically linked with the more well understood and adopted <strong>Software Change and Configuration Management </strong>disciplines.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">This article defines a set of good practices for helping in the successful adoption of Software Release Management. Although this article is about Software Release Management, many of the practices are generic and can also apply to Release Management in its wider sense as described in the </span></span><a href="http://www.itil-officialsite.com/"><span style="font-family: 'Times New Roman','serif'; color: blue; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="text-decoration: underline;">IT Infrastructure Library (ITIL</span></span></a><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">) whereby all aspects of hardware installation (e.g. do we need new PCs?), infrastructure upgrade (e.g. do we need to upgrade inter-site links?) and end-user training are considered. In some cases such a release might not include any software artefacts at all.</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 18pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">Defintions</span></span></strong></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">In order to define some good practices it is first worth defining some terms which are used in Software Release Management. The following table lists of set of generic terms which are taken both from service management and application development.</span></span></p>
<table class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184;" border="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="text-align: center; line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Term</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="text-align: center; line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Definition</span></strong></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">RFC (Request for Change)</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A high-level change request that captures the detail of a change that is to be made to a new or existing application. RFCs are usually decomposed down to lower level work requests or tasks for software development.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">CAB (Change Advisory Board)</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">The collection of stakeholders who review all RFCs at specific intervals to assess whether they should be implemented, assign priorities and allocated them to a Release.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Release</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A stable, executable version of a product  intended for deployment to testing and production.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Release Package</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A logical container that defines the set of RFCs and Deployment Units (sometimes called Release Units) that are to be included in a Release. It also includes metadata such as the type of release (see Release Type) and its planned dates (see Release Calendar).</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Release Type</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">The type of release that is to be implemented, i.e. Major, Minor, Emergency. Each Release Type will usually have a different workflow.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 6;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Release Policy</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">An organizations published policy that determines under which circumstances different Release Types should be used as well as the standard set of milestones that selecting a particular Release Type implies in the Release Calendar.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 7;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Release Calendar</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A set of published milestones that details when Releases are planned to transition through the different development, test and production phases.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 8;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Baseline</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A snapshot of the exact versions of Configuration Items, including executables, libraries, configuration files and documentation that are to be deployed.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 9;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Build</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">An operational version of a product or part of a product. Not all builds are released but builds are typically carried to transform inputs (source code) into executed and installable Deployment Units.</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 10; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">Deployment Unit</span></strong></p>
</td>
<td style="background-color: transparent; border: #f0f0f0; padding: 0.75pt;">
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';">A physical, self-contained, installable release of an application.</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">An example of how these different definitions relate to one another is illustrated in the diagram below:</span></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 18pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">The Best Practices</span></span></strong></p>
<p class="MsoNormal" style="line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">The following good practices are based on many years implementing and observing Software Release Management. They are listed in no particular priority or order.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">1. Define regular, targeted release dates</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">You should strictly plan and manage your releases and deliver releases regularly. Create a <strong>Release Calendar</strong> for each type Product&#8217;s<strong> Release Package</strong> to ensure that release progress is effectively communicated and planned. If a number of releases are being developed in parallel, create and communicate a high-level release milestone plan. The Release Calendar should communicate both internal (development, testing) and external (deployment to live) milestones. The Release Packages and Release Calendar are more easily managed and communicated if the details are kept within a database or workflow tool.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">2. Always have a tested back-out plan</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">For releases that are being deployed to managed live environments you should always have a tested back-out plan. For example, if you deploy a new Internet Banking product release onto the live servers and subsequently find that there are problems with it, there should be a process in place for removing this release and rolling back to the previous one. In this scenario it is desirable that this process is as automatic as possible. The acceptance testing and rollout scenario should be part of the workflow defined for each <strong>Release Package</strong>.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">3. Have a documented Release Policy</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">Your Software Release Management processes and policies should be clearly defined and documented. This should include the definition of the types of release you will manage, their workflows, the default calendars, as well as roles, responsibilities and artifacts. Usually this type of information is captured in a <strong>Release Management Plan</strong>. Make sure that this plan clearly states who is responsible for each part of the release process, i.e. who plans and manages the release, who builds and delivers the release internally and who packages and deploys the release externally. All the artefacts that are to be produced as part of the release process, i.e. Release Plan, Release Notes, Installation Instructions, should be clearly documented (and example templates given) along with who is responsible for generating them.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">4. Construct Deployment Units as early as possible</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">Every time you build your application you should be constructing <strong>Deployment Units</strong> with the potential to be installed, for example a J2EE .EAR file or a Windows .MSI package. These Deployment Units might not be released beyond the development team but the point is that the build, packaging and installation process is proven early and at each phase.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">5. Use an independent team to construct all external releases</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">If your team is very small then the developers might be able to carry out the build and construct the <strong>Deployment Unit</strong>. However, for any medium to large size product it is desirable to have a separate release team. This team usually manages the build process and packages up the results of the build into the Deployment Unit. They usually deploy internally (and sometimes externally) or pass the deployment unit to a separate deployment team. The release team is also responsible for creating the logical Release Package&#8217;s and communicating release dates.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">6. All deployments should be performed by a team independent of the Development team</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">Developers should not be allowed to transition Deployment Units into a live environment. There is a potential conflict of interests in this situation. For audit ability and traceability it is better to have a separate team deploy the release to Live (and usually Acceptance Testing)</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">7. Test the deployment process at least once before deploying to Live</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">The deployment process should be tested at least once before any release is put into a live environment. This is normally carried out by having an Acceptance Test environment that mimics the live environment and is controlled in the same way.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">8. Automate as much as possible – use integrated tools for Configuration, Change Management and Deployment Management</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">Software Release Management can be a repetitive and error prone manual process, therefore as much as possible should be automated. At the very least, the inputs and outputs of the release process (including the build components and release documentation) should be versioned using a Configuration Management tool (e.g Perforce,Subversion,Clearcase,TFS,etc) A Change Management tool can be used for controlling the content of the release and making Requests For Changes (RFCs) to it. A Deployment Management tool can be used to move the release to different environments or to install onto multiple desktop machines. Obviously, this all works best if these tools are integrated through to the Release Management process and its supporting tool(s).</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">9. Use a mature Software Configuration Management process and tool to support the development of multiple releases in parallel</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">When you are developing, building and deploying multiple releases in parallel it is critical that you have a Software Configuration Management tool that supports parallel development. Such tools are sometimes high-end, expensive toolsets (not open-source  but they can significantly help to automate and reduce errors in the otherwise manual branching and merging process.</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto;"><strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;">10. Link all release documentation and scripts to your Deployment Unit</span></span></strong><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><br />
<span style="color: #000000;">When a release is deployed you should be able to identify from the <strong>Deployment Unit </strong>all the related hardware and software that is required to support the release.  The Release Package is a good container for managing these relationships. The <strong>Release</strong> <strong>Package </strong>can either relate all this together in documentation form or better still reference entries in a database. Such a database should identify for each product that is built and released: the required hardware, supporting third-party software and the Installation and Configuration instructions. In the </span></span><a href="http://www.itil.co.uk/"><span style="font-family: 'Times New Roman','serif'; color: blue; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="text-decoration: underline;">ITIL</span></span></a><span style="font-family: 'Times New Roman','serif'; font-size: 12pt; mso-fareast-font-family: 'Times New Roman';"><span style="color: #000000;"> world such a database is often called the CMDB (Configuration Management Database).</span></span></p>
<p class="MsoNormal" style="text-align: justify; line-height: normal; margin: 0in 0in 0pt;">
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-pactices-software-configuration-and-release-management-scrm/">Best Practices-Software Configuration and Release Management (SCRM)</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/best-pactices-software-configuration-and-release-management-scrm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Introduction To Software Configuration Management</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 21:01:11 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Aout Software Configuration Management PPT]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Introduction PPT]]></category>
		<category><![CDATA[SCM Introduction Presentation]]></category>
		<category><![CDATA[SCM Overview]]></category>
		<category><![CDATA[SCM Quick Start Guide]]></category>
		<category><![CDATA[Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Introduction]]></category>
		<category><![CDATA[Software Configuration Management Overview PPT]]></category>
		<category><![CDATA[What Is Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-introduction-to-software-configuration-management/</guid>

					<description><![CDATA[<p>Power Point PPT: Introduction To Software Configuration Management Introduction To Software Configuration Management from Rajesh Kumar &#160;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/">Power Point PPT: Introduction To Software Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4234" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into.png" alt="software-configuration-management-introduction" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-into-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Introduction To Software Configuration Management</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/dKFEEfZFCLhYTT" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Introduction To Software Configuration Management" href="//www.slideshare.net/rajeshatbuzz/introduction-to-software-configuration-management" target="_blank" rel="noopener">Introduction To Software Configuration Management</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/">Power Point PPT: Introduction To Software Configuration Management</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-introduction-to-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Scm With Mks Integrity</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-scm-with-mks-integrity/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-scm-with-mks-integrity/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 21:00:09 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Mks]]></category>
		<category><![CDATA[Mks Integrity]]></category>
		<category><![CDATA[Mks Integrity in SCM Guide]]></category>
		<category><![CDATA[Mks Integrity in SCM porcess PPT]]></category>
		<category><![CDATA[Mks Integrity in SCM porcess Presentation]]></category>
		<category><![CDATA[Mks Integrity in SCM porcess Slideshare]]></category>
		<category><![CDATA[Mks Integrity in SCM Tutorial]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Scm With Mks]]></category>
		<category><![CDATA[Scm With Mks Integrity]]></category>
		<category><![CDATA[Scm With Mks Integrity PPT]]></category>
		<category><![CDATA[Slidesahre]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-scm-with-mks-integrity/</guid>

					<description><![CDATA[<p>Power Point PPT: Scm With Mks Integrity Scm With Mks Integrity from Rajesh Kumar</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-scm-with-mks-integrity/">Power Point PPT: Scm With Mks Integrity</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4220" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-with-mks-integrity.png" alt="scm-with-mks-integrity" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-with-mks-integrity.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/scm-with-mks-integrity-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Scm With Mks Integrity</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/wtvfTSHlnDvFbX" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Scm With Mks Integrity" href="//www.slideshare.net/rajeshatbuzz/scm-with-mks" target="_blank" rel="noopener">Scm With Mks Integrity</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-scm-with-mks-integrity/">Power Point PPT: Scm With Mks Integrity</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-scm-with-mks-integrity/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Software Configuration Management And CVS</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 20:59:00 +0000</pubDate>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Configuration management with CVS PPT]]></category>
		<category><![CDATA[Configuration management with CVS Presentation]]></category>
		<category><![CDATA[How to use CVS]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management with CVS PPT]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-software-configuration-management-and-cvs/</guid>

					<description><![CDATA[<p>Power Point PPT: Software Configuration Management And CVS Software Configuration Management And CVS from Rajesh Kumar</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/">Power Point PPT: Software Configuration Management And CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4223" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2.png" alt="software-configuration-management-and-cvs" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/software-configuration-mana-2-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Software Configuration Management And CVS</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/bJj2f8EIQJ1j1f" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Software Configuration Management And CVS" href="//www.slideshare.net/rajeshatbuzz/software-configuration-management-and-cvs" target="_blank" rel="noopener">Software Configuration Management And CVS</a> </strong> from <strong><a href="https://www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/">Power Point PPT: Software Configuration Management And CVS</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-software-configuration-management-and-cvs/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</title>
		<link>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 21 Mar 2010 20:55:00 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Advantages of SCM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Importance of SCM]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[PPt]]></category>
		<category><![CDATA[PPT presentation]]></category>
		<category><![CDATA[presentation on software configuration management]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Benefits]]></category>
		<category><![CDATA[SCM PPT]]></category>
		<category><![CDATA[SCM Presentation]]></category>
		<category><![CDATA[SCM Slideshare]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Importance]]></category>
		<category><![CDATA[software configuration management ppt]]></category>
		<category><![CDATA[software configuration management Presentation]]></category>
		<category><![CDATA[software configuration management slideshare]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2010/03/21/power-point-ppt-why-software-configuration-management/</guid>

					<description><![CDATA[<p>Power Point PPT: Why Software Configuration Management Why Scm from Rajesh Kumar &#160;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/">Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4213" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration-.png" alt="why-software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration-.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2010/03/why-software-configuration--300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></h1>
<h1>Power Point PPT: Why Software Configuration Management</h1>
<p><iframe loading="lazy" style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;" src="//www.slideshare.net/slideshow/embed_code/key/23RHiZnaTbmluF" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowfullscreen="allowfullscreen"> </iframe></p>
<div style="margin-bottom: 5px;"><strong> <a title="Why Scm" href="//www.slideshare.net/rajeshatbuzz/why-scm" target="_blank" rel="noopener">Why Scm</a> </strong> from <strong><a href="//www.slideshare.net/rajeshatbuzz" target="_blank" rel="noopener">Rajesh Kumar</a></strong></div>
<p>&nbsp;</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/">Power Point PPT: Why Software Configuration Management &#8211; Prsesentation</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/power-point-ppt-why-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 02 Feb 2009 09:12:32 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Best practices in SCM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Good]]></category>
		<category><![CDATA[Good Practices]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Ideal]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Recomended]]></category>
		<category><![CDATA[Right]]></category>
		<category><![CDATA[SCM best practices]]></category>
		<category><![CDATA[SCM best practices Guide]]></category>
		<category><![CDATA[SCM best practices Techniques]]></category>
		<category><![CDATA[SCM Best Practices Tips]]></category>
		<category><![CDATA[SCM best practices Tutorial]]></category>
		<category><![CDATA[SCM Good Practices]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Best Practices]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/02/02/best-practices-in-software-configuration-management/</guid>

					<description><![CDATA[<p>Best Practices in Software Configuration Management Abstract When deploying new SCM (software configuration management) tools, implementers sometimes focus on perfecting [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3973 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png" alt="scm-best-practices" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/02/SCM-pRactices-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p><strong>Best Practices in Software Configuration Management</strong></p>
<p><strong>Abstract</strong><br />
When deploying new SCM (software configuration management) tools,<br />
implementers sometimes focus on perfecting fine-grained activities, while<br />
unwittingly carrying forward poor, large-scale practices from their previous jobs or<br />
previous tools. The result is a well-executed blunder. This paper promotes some<br />
high-level best practices that reflect the authors’ experiences in deploying SCM.</p>
<p><strong>1. Introduction</strong><br />
“A tool is only as good as you use it,” the saying goes<em>. </em>As providers of software configuration management (SCM) tools and consultants to software companies, we<br />
are often asked for sound advice on SCM best practices – that is, how to deploy SCM software to the maximum advantage. In answering these requests we have a bounty of direct and indirect SCM experience from which to draw. The direct experience comes from having been developers and codeline managers ourselves; the indirect experience comes from customer reports of successes and failures with our product (Perforce) and other SCM tools.<br />
The table below lists six general areas of SCM deployment, and some coarse-grained best practices within each of those areas. The following chapters explain each item.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="319"><strong>Workspaces, </strong>where<br />
developers build, test, and<br />
debug.</td>
<td valign="top" width="319">· Don’t share workspaces.<br />
· Don’t work outside of managed workspaces.<br />
· Don’t use jello views.<br />
· Stay in sync with the codeline.<br />
· Check in often.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Codelines, </strong>the canonical sets<br />
of source files.</td>
<td valign="top" width="319">· Give each codeline a policy.<br />
· Give each codeline an owner.<br />
· Have a mainline.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Branches, </strong>variants of the<br />
codeline.</td>
<td valign="top" width="319">· Branch only when necessary.<br />
· Don’t copy when you mean to branch.<br />
· Branch on incompatible policy.<br />
· Branch late.<br />
· Branch, instead of freeze.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Change propagation, </strong>getting<br />
changes from one codeline to<br />
another.</td>
<td valign="top" width="319">· Make original changes in the branch that has<br />
evolved the least since branching.<br />
· Propagate early and often.<br />
· Get the right person to do the merge.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Builds, </strong>turning source files<br />
into products.</td>
<td valign="top" width="319">· Source + tools = product.<br />
· Check in all original source.<br />
· Segregate built objects from original source.<br />
· Use common build tools.<br />
· Build often.<br />
· Keep build logs and build output.</td>
</tr>
<tr>
<td valign="top" width="319"><strong>Process, </strong>the rules for all of<br />
the above.</td>
<td valign="top" width="319">· Track change packages.<br />
· Track change package propagations.<br />
· Distinguish change requests from change<br />
packages.<br />
· Give everything and owner.<br />
· Use living documents.</td>
</tr>
</tbody>
</table>
<p><strong>2. The Workspace</strong><br />
The workspace is where engineers edit source files, build the software components they’re working on, and test and debug what they’ve built. Most SCM systems have some notion of a workspace; sometimes they are called “sandboxes”, as in Source Integrity, or “views”, as in ClearCase and Perforce. Changes to managed SCM repository files begin as changes to files in a workspace. The best practices for workspaces include:· <em>Don’t share workspaces. </em>A workspace should have a single purpose, such as an edit/build/test area for a single developer, or a build/test/release area for a product release. Sharing workspaces confuses people, just as sharing a desk does. Furthermore, sharing workspaces compromises the SCM system’s ability to track activity by user or task. Workspaces and the disk space they occupy are cheap; don’t waste time trying to conserve them.· <em>Don’t work outside of managed workspaces. </em>Your SCM system can only track work in progress when it takes place within managed workspaces. Users working outside of workspaces are beached; there’s a river of information flowing past and they’re not part of it. For instance, SCM systems generally use workspaces to facilitate some of the communication among developers working on related tasks. You can see what is happening in others’ workspaces, and they can see what’s going on in yours. If you need to take an emergency vacation, your properly managed workspace may be all you can leave behind. Use proper workspaces.<br />
· <em>Don’t use jello views. </em>A file in your workspace should not change unless <em>you</em><em>explicitly </em>cause the change. A “jello view” is a workspace where file changes are<br />
caused by external events beyond your control. A typical example of a jello view is a workspace built upon a tree of symbolic links to files in another workspace –<br />
when the underlying files are updated, your workspace files change. Jello views are a source of chaos in software development. Debug symbols in executables<br />
don’t match the source files, mysterious recompilations occur in supposedly trivial rebuilds, and debugging cycles never converge – these are just some of the<br />
problems. Keep your workspaces firm and stable by setting them up so that users have control over when their files change.· <em>Stay in sync with the codeline. </em>As a developer, the quality of your work depends on how well it meshes with other peoples’ work. In other words, as changes are checked into the codeline, you should update your workspace and integrate those changes with yours. As an SCM engineer, it behooves you to make sure this workspace update operation is straightforward and unencumbered with tricky or time-consuming procedures. If developers find it fairly painless to update their workspaces, they’ll do it more frequently and integration problems won’t pile up at project deadlines.<br />
· <em>Check in often. </em>Integrating your development work with other peoples’ work also requires you to check in your changes as soon as they are ready. Once you’ve<br />
finished a development task, check in your changed files so that your work is available to others. Again, as the SCM engineer, you should set up procedures that encourage frequent check-ins. Don’t implement unduly arduous validation procedures, and don’t freeze codelines (see Branching, below). Short freezes are bearable, but long freezes compromise productivity. Much productivity can be wasted waiting for the right day (or week, or month) to submit changes.</p>
<p><strong>3. The Codeline</strong><br />
In this context, the codeline is the canonical set of source files required to produce your software. Typically codelines are branched, and the branches evolve into variant<br />
codelines embodying different releases. The best practices with regard to codelines are:<br />
· <em>Give each codeline a policy. </em>A codeline policy specifies the fair use and permissible check-ins for the codeline, and is the essential user’s manual for<br />
codeline SCM. For example, the policy of a development codeline should state that it isn’t for release; likewise, the policy of a release codeline should limit<br />
changes to approved bug fixes.1 The policy can also describe how to document changes being checked in, what review is needed, what testing is required, and<br />
the expectations of codeline stability after check-ins. A policy is a critical component for a documented, enforceable software development process, and a<br />
codeline without a policy, from an SCM point of view, is out of control.· <em>Give each codeline an owner. </em>Having defined a policy for a codeline, you’ll soon<br />
encounter special cases where the policy is inapplicable or ambiguous. Developers facing these ambiguities will turn to the person in charge of the<br />
codeline for workarounds. When no one is in charge, developers tend to enact their own workarounds without documenting them. Or they simply procrastinate<br />
because they don’t have enough information about the codeline to come up with a reasonable workaround. You can avoid this morass by appointing someone to<br />
own the codeline, and to shepherd it through its useful life. With this broader objective, the codeline owner can smooth the ride over rough spots in software<br />
development by advising developers on policy exceptions and documenting them.</p>
<p>· <em>Have a mainline. </em>A “mainline,” or “trunk,” is the branch of a codeline that evolves forever. A mainline provides an ultimate destination for almost all<br />
changes – both maintenance fixes and new features – and represents the primary, linear evolution of a software product. Release codelines and development<br />
codelines are branched from the mainline, and work that occurs in branches is propagated back to the mainline.</p>
<p>IMAGE  &#8211; 1</p>
<p>Figure 1 shows a mainline (called “main”), from which several release lines (“ver1”, “ver2” and “ver3”) and feature development lines (“projA”, “projb”, and<br />
“projC”) have been branched. Developers work in the mainline or in a feature development line. The release lines are reserved for testing and critical fixes, and<br />
are insulated from the hubbub of development. Eventually all changes submitted to the release lines and the feature development lines get merged into the<br />
mainline. The adverse approach is to “promote” codelines; for example, to promote a development codeline to a release codeline, and branch off a new development<br />
codeline. For example, Figure 2 shows a development codeline promoted to a release codeline (“ver1”) and branched into another development codeline<br />
(“projA”). Each release codeline starts out as a development codeline, and development moves from codeline to codeline.</p>
<p>IMAGE &#8211; 2</p>
<p>The promotion scheme suffers from two crippling drawbacks: (1) it requires the policy of a codeline to change, which is never easy to communicate to everyone;<br />
(2) it requires developers to relocate their work from one codeline to another, which is error-prone and time-consuming. <em>90% of SCM “process” is enforcing</em><br />
<em>codeline promotion to compensate for the lack of a mainline.</em> Process is streamlined and simplified when you use a mainline model<em>. </em>With a<br />
mainline, contributors’ workspaces and environments are stable for the duration of their tasks at hand, and no additional administrative overhead is incurred as<br />
software products move forward to maturity.</p>
<p><strong>4. Branching</strong><br />
Branching, the creation of variant codelines from other codelines, is the most problematic area of SCM. Different SCM tools support branching in markedly<br />
different ways, and different policies require that branching be used in still more different ways. We found the following guidelines helpful when branching (and<br />
sometimes when avoiding branching):·</p>
<p><em>Branch only when necessary. </em>Every branch is more work – more builds, more changes to be propagated among codelines, more source file merges. If you keep this in mind every time you consider making a branch you may avoid sprouting unnecessary branches.<br />
· <em>Don’t copy when you mean to branch. </em>An alternative to using your SCM tool’s branching mechanism is to copy a set of source files from one codeline and<br />
check them in to another as new files. Don’t think that you can avoid the costs of branching by simply copying. Copying incurs all the headaches of branching –<br />
additional entities and increased complexity – but without the benefit of your SCM system’s branching support. Don’t be fooled: even “read-only” copies<br />
shipped off to another development group “for reference only” often return with changes made. Use your SCM system to make branches when you spin off parts<br />
or all of a codeline.<br />
· <em>Branch on incompatible policy. </em>There is one simple rule to determine if a codeline should be branched: it should be branched when its users need different<br />
check-in policies. For example, a product release group may need a check-in policy that enforces rigorous testing, whereas a development team may need a<br />
policy that allows frequent check-ins of partially tested changes. This policy divergence calls for a codeline branch. When one development group doesn’t<br />
wish to see another development group’s changes, that is also a form of incompatible policy: each group should have its own branch.<br />
· <em>Branch late. </em>To minimize the number of changes that need to be propagated from one branch to another, put off creating a branch as long as possible. For<br />
example, if the mainline branch contains all the new features ready for a release, do as much testing and bug fixing in it as you can before creating a release<br />
branch. Every bug fixed in the mainline before the release branch is created is one less change needing propagation between branches.<br />
· <em>Branch instead of freeze. </em>On the other hand, if testing requires freezing a codeline, developers who have pending changes will have to sit on their changes<br />
until the testing is complete. If this is the case, branch the codeline early enough so that developers can check in and get on with their work.</p>
<p><strong>5. Change Propagation</strong><br />
Once you have branched codelines, you face the chore of propagating file changes across branches. This is rarely a trivial task, but there are some things you can do to<br />
keep it manageable.<br />
· <em>Make original changes in the branch that has evolved the least since branching.</em> It is much easier to merge a change from a file that is close to the common<br />
ancestor than it is to merge a change from a file that has diverged considerably. This is because the change in the file that has diverged may be built upon<br />
changes that are not being propagated, and those unwanted changes can confound the merge process. You can minimize the merge complexity by making<br />
original changes in the branch that is the most stable. For example, if a release codeline is branched from a mainline, make a bug fix first in the release line and<br />
then merge it into the mainline. If you make the bug fix in the mainline first, subsequently merging it into a release codeline may require you to <em>back out</em><br />
other, incompatible changes that aren’t meant to go into the release codeline.<br />
· <em>Propagate early and often. </em>When it’s feasible to propagate a change from one branch to another (that is, if the change wouldn’t violate the target branch’s<br />
policy), do it sooner rather than later. Postponed and batched change propagations can result in stunningly complex file merges.<br />
· <em>Get the right person to do the merge. </em>The burden of change propagation can be lightened by assigning the responsibility to the engineer best prepared to resolve<br />
file conflicts. Changes can be propagated by (a) the owner of the target files, (b) the person who make the original changes, or (c) someone else. Either (a) or (b)<br />
will do a better job than (c).</p>
<p><strong>6. Builds</strong><br />
A build is the business of constructing usable software from original source files. Builds are more manageable and less prone to problems when a few key practices are<br />
observed:<br />
· <em>Source + tools = product. </em>The only ingredients in a build should be source files and the tools to which they are input. Memorized procedures and yellow stickies<br />
have no place in this equation. Given the same source files and build tools, the resulting product should always be the same. If you have rote setup procedures,<br />
automate them in scripts. If you have manual setup steps, document them in build instructions. And document all tool specifications, including OS, compilers, include files, link libraries, make programs, and executable paths.<br />
· <em>Check in </em>all <em>original source. </em>When software can’t be reliably reproduced from the same ingredients, chances are the ingredient list is incomplete. Frequently<br />
overlooked ingredients are makefiles, setup scripts, build scripts, build instructions, and tool specifications. All of these are the source you build with.<br />
Remember: <em>source + tools = product.</em><br />
· <em>Segregate built objects from original source. </em>Organize your builds so that the directories containing original source files are not polluted by built objects<em>.</em><br />
Original source files are those you create “from an original thought process” with a text editor, an application generator, or any other interactive tool. Built objects<br />
are all the files that get created during your build process, including generated source files. Built objects should not go into your source code directories.<br />
Instead, build them into a directory tree of their own. This segregation allows you to limit the scope of SCM-managed directories to those that contain only<br />
source. It also corrals the files that tend to be large and/or expendable into one location, and simplifies disk space management for builds.<br />
· <em>Use common build tools. </em>Developers, test engineers, and release engineers should all use the same build tools. Much time is wasted when a developer<br />
cannot reproduce a problem found in testing, or when the released product varies from what was tested. Remember: <em>source + tools = product.</em><br />
· <em>Build often. </em>Frequent, end-to-end builds with regression testing (“sanity” builds) have two benefits: (1) they reveal integration problems introduced by check-ins,<br />
and (2) they produce link libraries and other built objects that can be used by developers. In an ideal world, sanity builds would occur after every check-in, but<br />
in an active codeline it’s more practical to do them at intervals, typically nightly. Every codeline branch should be subject to regular, frequent, and complete builds<br />
and regression testing, even when product release is in the distant future.<br />
· <em>Keep build logs and build outputs. </em>For any built object you produce, you should be able to look up the exact operations (e.g., complete compiler flag and link<br />
command text) that produced the last known good version of it. Archive build outputs and logs, including source file versions (e.g., a label), tool and OS<br />
version info, compiler outputs, intermediate files, built objects, and test results, for future reference. As large software projects evolve, components are handed<br />
off from one group to another, and the receiving group may not be in a position to begin builds of new components immediately. When they do begin to build<br />
new components, they will need access to previous build logs in order to diagnose the integration problems they encounter.</p>
<p><strong>7. Process</strong><br />
It would take an entire paper, or several papers, to explore the full scope of SCM process design and implementation, and many such papers have already been written. Furthermore, your shop has specific objectives and requirements that will be reflected in the process you implement, and we do not presume to know what those are. In our experience, however, some process concepts are key to any SCM implementation:<br />
· <em>Track change packages. </em>Even though each file in a codeline has its revision history, each revision in its history is only useful in the context of a set of related<br />
files. The question “What other source files were changed along with this particular change to foo.c?” can’t be answered unless you track change<br />
<em>packages</em>, or sets of files related by a logical change. Change packages, not individual file changes, are the visible manifestation of software development.<br />
Some SCM systems track change packages for you; if yours doesn’t, write an interface that does.<br />
· <em>Track change package propagations. </em>One clear benefit of tracking change packages is that it becomes very easy propagate logical changes (e.g., bug fixes)<br />
from one codeline branch to another. However, it’s not enough to simply propagate change packages across branches; you must keep track of which<br />
change packages have been propagated, which propagations are pending, and which codeline branches are likely donors or recipients of propagations.<br />
Otherwise you’ll never be able to answer the question “Is the fix for bug X in the release Y codeline?” Again, some SCM systems track change package<br />
propagations for you, whereas with others you’ll have to write your own interface to do it. Ultimately, you should never have to resort to “diffing” files to<br />
figure out if a change package has been propagated between codelines.</p>
<p>· <em>Distinguish change requests from change packages. </em>“What to do” and “what was done” are different data entities. For example, a bug report is a “what to do”<br />
entity and a bug fix is a “what was done” entity. Your SCM process should distinguish between the two, because in fact there can be a one-to-many<br />
relationship between change requests and change packages.<br />
· <em>Give everything an owner. </em>Every process, policy, document, product, component, codeline, branch, and task in your SCM system should have an<br />
owner. Owners give life to these entities by representing them; an entity with an owner can grow and mature. Ownerless entities are like obstacles in an ant trail<br />
– the ants simply march around them as if they weren’t there.<br />
· <em>Use living documents. </em>The policies and procedures you implement should be described in living documents; that is, your process documentation should be as<br />
readily available and as subject to update as your managed source code. Documents that aren’t accessible are useless; documents that aren’t updateable<br />
are nearly so. Process documents should be accessible from all of your development environments: at your own workstation, at someone else’s<br />
workstation, and from your machine at home. And process documents should be easily updateable, and updates should be immediately available.</p>
<p><strong>8. Conclusion</strong><br />
Best practices in SCM, like best practices anywhere, always seem obvious once you’ve used them. The practices discussed in this paper have worked well for us, but<br />
we recognize that no single, short document can contain them all. So we have presented the practices that offer the greatest return and yet seem to be violated more<br />
often than not. We welcome the opportunity to improve this document, and solicit both challenges to the above practices as well as the additions of new ones.</p>
<p><strong>10. References</strong><br />
Berczuk, Steve. &#8220;Configuration Management Patterns&#8221;, 1997. Available at<br />
http://www.bell-labs.com/cgi-user/OrgPatterns/OrgPatterns?ConfigurationManagementPatterns.<br />
Compton, Stephen B, <em>Configuration Management for Software</em>, VNR Computer<br />
Library, Van Nostrand Reinhold, 1993.<br />
Continuus Software Corp., “Work Area Management”, <em>Continuus/CM: Change</em><br />
<em>Management for Software Development. </em>Available at<br />
http://www.continuus.com/developers/developersACE.html.<br />
Dart, Susan, &#8220;Spectrum of Functionality in Configuration Management Systems&#8221;,<br />
Software Engineering Institute, 1990. Available at<br />
<a href="http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html">http://www.sei.cmu.edu/technology/case/scm/tech_rep/TR11_90/TOC_TR11_90.html</a></p>
<p>Jameson, Kevin, <em>Multi Platform Code Management</em>, O&#8217;Reilly &amp; Associates, 1994<br />
Linenbach, Terris, &#8220;Programmers&#8217; Canvas: A pattern for source code management&#8221;<br />
1996. Available at http://www.rahul.net/terris/ProgrammersCanvas.htm.<br />
Lyon, David D, <em>Practical CM</em>, Raven Publishing, 1997<br />
McConnell, Steve, &#8220;Best Practices: Daily Build and Smoke Test&#8221;,<br />
<em>IEEE Software</em>, Vol. 13, No. 4, July 1996<br />
van der Hoek, Andre, Hall, Richard S., Heimbigner, Dennis, and Wolf, Alexander L.,<br />
&#8220;Software Release Management&#8221;, <em>Proceedings of the 6th European Software</em><br />
<em>Engineering Conference</em>, Zurich, Switzerland, 1997.</p>
<p><strong>10. Author</strong></p>
<p>Laura Wingerd<br />
Perforce Software, Inc.<br />
wingerd@perforce.com<br />
Christopher Seiwald<br />
Perforce Software, Inc.<br />
seiwald@perforce.com</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/">Best Practices in Software Configuration Management &#8211; SCM Best Practices Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/best-practices-in-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>What Is Software Configuration Management, its importance &#038; how to implement it?</title>
		<link>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/</link>
					<comments>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:35:07 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[How to Implement scm]]></category>
		<category><![CDATA[Importance of SCM]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Introduction]]></category>
		<category><![CDATA[Software Configuration Management Process]]></category>
		<category><![CDATA[Software Configuration Management Tutorial]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[What is SCM]]></category>
		<category><![CDATA[What Is Software Configuration Management]]></category>
		<category><![CDATA[Why Is SCM Important]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/what-is-software-configuration-management/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to "play" with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can't achieve star status, like the latest "killer app," but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3958 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png" alt="software-configuration-management" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/what-is-software-configurat-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software engineers usually find coding to be the most satisfying aspect of their job. This is easy to understand because programming is a challenging, creative activity requiring extensive technical skills. It can mean getting to &#8220;play&#8221; with state-of-the-art tools, and it provides almost instant gratification in the form of immediate feedback. Programming is the development task that most readily comes to mind when the profession of software engineering is mentioned.<br />
That said, seasoned engineers and project managers realize that programmers are part of a larger team. All of the integral tasks, such as quality assurance and verification and validation, are behind-the-scenes activities necessary to turn standalone software into a useful and usable commodity. Software configuration management (SCM) falls into this category—it can&#8217;t achieve star status, like the latest &#8220;killer app,&#8221; but it is essential to project success. The smart software project manager highly values the individuals and tools that provide this service.<br />
This chapter will answer the following questions about software configuration management.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> <b>What Is Software Configuration Management?</b><br />
Software configuration management (SCM) is the organization of the components of a software system so that they fit together in a working order, never out of synch with each other. Those who have studied the best way to manage the configuration of software parts have more elegant responses.<br />
Roger Pressman says that SCM is a &#8220;set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.&#8221;&gt;<br />
We think that Pressman&#8217;s description is a better description because we often view SCM as meaning software <i>change</i> management.<br />
Wayne Babich describes SCM as &#8220;the art of identifying, organizing, and controlling modifications to the software being built by a programming team. It maximizes productivity by minimizing mistakes.&#8221;&gt;<br />
The Software Engineering Institute says that it is necessary to establish and maintain the integrity of the products of the software project throughout the software life cycle. Activities necessary to accomplish this include identifying configuration items/units, systematically controlling changes, and maintaining the integrity and the traceability of the configuration throughout the software life cycle.<br />
Military standards view <i>configuration</i> as the functional and/or physical characteristics of hardware/software as set forth in technical documentation and archives in a product. In identifying the items that need to be configured, we must remember that all project artifacts are candidates—documents, graphical models, prototypes, code, and any internal or external deliverable that can undergo change. In SW PM terminology, a configuration item might be a proposal/estimate or bid, project plan, risk management plan, quality assurance plan, CM plan itself, test plan, system requirements specification, system design document, review metric, code, test result, tool (editors, compilers, CASE), and so on. There are basic objects and aggregate objects to be configured. The number of relationships among them reflects the complexity of the configuration task.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Why Is SCM Important?</b><br />
Software project managers pay attention to the planning and execution of configuration management, an integral task, because it facilitates the ability to communicate status of documents and code as well as changes that have been made to them. High-quality released software has been tested and used, making it a reusable asset and saving development costs. Reused components aren&#8217;t free, though—they require integration into new products, a difficult task without knowing exactly what they are and where they are.<br />
CM enhances the ability to provide maintenance support necessary once the software is deployed. If software didn&#8217;t change, maintenance wouldn&#8217;t exist. Of course, changes do occur. The National Institute of Standards and Technology (NIST) says that software will be changed to adapt, perfect, or correct it. Pressman points out that new business, new customer needs, reorganizations, and budgetary or scheduling constraints may lead to software revision.<br />
CM works for the project and the organization in other ways as well. It helps to eliminate confusion, chaos, double maintenance, the shared data problem, and the simultaneous update problem, to name but a few issues to be discussed in this chapter.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Who Is Involved in SCM?</b><br />
Virtually everyone on a software project is affected by SCM. From the framers of the project plan to the final tester, we rely on it to tell us how to find the object with the latest changes. During development, when iterations are informal and frequent, little needs to be known about a change except what it is, who did it, and where it is. In deployment and baselining, changes must be prioritized, and the impact of a change upon all customers must be considered. A change control board (CCB) is the governing body for modifications after implementation.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>How Can Software Configuration Be Implemented in Your Organization?</b><br />
We used to say, &#8220;Make a plan and stick with it—never waffle,&#8221; and &#8220;Requirements must be frozen—how else will we know what to code?&#8221; Now, we say, &#8220;Plans are living documents—they will be in a continual state of change as project knowledge increases.&#8221; We now know that requirements are never frozen—they merge, morph, and evolve and become expanded, enhanced, and extended. As long as artifacts of software development can undergo change, we will need some method of managing the change.<br />
Because SCM is such a key tool in improving the quality of delivered products, understanding it and how to implement it in your organization and on your projects is a critical success factor. This chapter will review SCM plan templates and provide you with a composite SCM plan template for use in any of your projects. We will cover the issues and basics for a sound software project CM system, including these:</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM principles </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">The four basic requirements for an SCM system </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Planning and organizing for SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM tools </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Benefits of SCM </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Path to SCM implementation </span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"> </span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/">What Is Software Configuration Management, its importance &#038; how to implement it?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/what-is-software-configuration-management/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>The Four Basic Requirements for SCM Process &#8211; SCM Guide</title>
		<link>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:32:06 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Basic]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Prerequisite]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Guide]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[SCM Process Basic Requirements]]></category>
		<category><![CDATA[SCM Process Prerequisite]]></category>
		<category><![CDATA[SCM Process Requirements]]></category>
		<category><![CDATA[SCM Tutorial]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software configuration management system requirements]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/the-four-basic-requirements-for-an-scm/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Identification, control, audit, and status accounting are the four basic requirements for a software configuration management system. These requirements must be satisfied regardless of the amount of automation within the SCM process. All four may be satisfied by an SCM tool, a tool set, or a combination of automated and manual procedures.</span></span></p>
<ol style="text-align: justify;">
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><b>Identification</b>—Each software part is labeled so that it can be identified. Furthermore, there will be different versions of the software parts as they evolve over time, so a version or revision number will be associated with the part. The key is to be able to identify any and all artifacts that compose a released configuration item. Think of this as a bill of materials for all the components in your automobile. When the manufacturer realizes that there has been a problem with parking brakes purchased from a subcontractor, it needs to know all the automobile models using that version of the parking brake. It is the same with software. If we are building a multimedia system that has audio MPEG3 drivers for Windows 98, Windows 2000, Windows CE, Linux, and FreeBSD operating systems, how do we find out which releases are impacted when we find an error in the Linux product? You must go back to your SCM system to identify all the common components in all operating system releases that are impacted.<br />
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm/">The Four Basic Requirements for SCM Process &#8211; SCM Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="wp-image-3960 size-full aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/requirements-for-an-scm.png" alt="scm-basic-requirements" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/requirements-for-an-scm.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/requirements-for-an-scm-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Identification, control, audit, and status accounting are the four basic requirements for a software configuration management system. These requirements must be satisfied regardless of the amount of automation within the SCM process. All four may be satisfied by an SCM tool, a tool set, or a combination of automated and manual procedures.</span></span></p>
<ol style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Identification</b>—Each software part is labeled so that it can be identified. Furthermore, there will be different versions of the software parts as they evolve over time, so a version or revision number will be associated with the part. The key is to be able to identify any and all artifacts that compose a released configuration item. Think of this as a bill of materials for all the components in your automobile. When the manufacturer realizes that there has been a problem with parking brakes purchased from a subcontractor, it needs to know all the automobile models using that version of the parking brake. It is the same with software. If we are building a multimedia system that has audio MPEG3 drivers for Windows 98, Windows 2000, Windows CE, Linux, and FreeBSD operating systems, how do we find out which releases are impacted when we find an error in the Linux product? You must go back to your SCM system to identify all the common components in all operating system releases that are impacted. </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Control</b>—In the context of configuration management, &#8220;control&#8221; means that proposed changes to a CI are reviewed and, if approved, incorporated into the software configuration. The goal is to make informed decisions and to acknowledge the repercussions associated with a change to the system. These changes may impact budgets, schedules, and associated changes to other components. If a problem is reported in a released product, software engineers must act quickly to evaluate repercussions—a &#8220;fix&#8221; for one client&#8217;s version of the product may be dangerous to another. The control inherent in an SCM system shows each version in which the flawed component appears.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Auditing</b>—Auditing an SCM system means that approved requested changes have indeed been implemented. The audits allow managers to determine whether software evolution is proceeding both logically and in conformance with requirements for the software. The SCM system should document changes, versions, and release information for all components of each configuration item. When such documentation is in place, auditing becomes a straightforward analysis task. </span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Status accounting</b>—Reports and documentation produced by the status accounting function are the auditable entries. All approved parts of a software configuration must be accounted for, and the software parts list must reflect the transition from part CIn to CIn+1. This accounting provides the historic information to determine both what happened and when on the software project. Status accounting enables the auditing requirement of the SCM. As a project manager, the status accounting holds a wealth of information on the amount of effort required throughout the life cycle of the product in its development and maintenance. This is critical to the software project manager in making estimates for new systems based on historic information. The SCM can be used as one of the key components of the project managers&#8217; metrics system. </span></span></li>
</ol>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm/">The Four Basic Requirements for SCM Process &#8211; SCM Guide</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-four-basic-requirements-for-an-scm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The symptoms of our software development malaise</title>
		<link>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:29:44 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Control]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Indications]]></category>
		<category><![CDATA[Lacking]]></category>
		<category><![CDATA[malaise]]></category>
		<category><![CDATA[Missing]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[SCM Auditing Benefits]]></category>
		<category><![CDATA[SCM Identification Benefits]]></category>
		<category><![CDATA[SCM Process]]></category>
		<category><![CDATA[SCM Status Accounting Benefits]]></category>
		<category><![CDATA[signs]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[software development malaise]]></category>
		<category><![CDATA[symptoms]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/the-symptoms-of-our-software-development-malaise/</guid>

					<description><![CDATA[<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software development has traditionally suffered from producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:</span></span></p>
<ul style="text-align: justify;" mce_style="text-align: justify;">
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software development projects are often delivered late and over budget.</span></span></li>
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Often the delivered product does not meet customer requirements and is never used.</span></span></li>
<li><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">Software products simply do not work right.</span></span></li>
</ul>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">As we look into the symptoms of our software development malaise, five principal issues related to software development arise.<br /></span></span></p>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><b>Lack of Visibility </b><br />Software is conceptual in nature. Unlike a bridge, a building, or another physical structure, it is not easy to look at software and assess how close it is to completion. Without strong project management, "software is 90% complete 90% of the time." Through the adoption of SCM policy and the definition of the configuration management model of the software under development, all CIs, components, and subcomponents are immediately visible for versions, releases, and product families.</span></span></p>
<p style="text-align: justify;" mce_style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/">The symptoms of our software development malaise</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3967 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de.png" alt="software-development-malaise" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/symptoms-of-our-software-de-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software development has traditionally suffered from producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:</span></span></p>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software development projects are often delivered late and over budget.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Often the delivered product does not meet customer requirements and is never used.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Software products simply do not work right.</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">As we look into the symptoms of our software development malaise, five principal issues related to software development arise.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Visibility </b><br />
Software is conceptual in nature. Unlike a bridge, a building, or another physical structure, it is not easy to look at software and assess how close it is to completion. Without strong project management, &#8220;software is 90% complete 90% of the time.&#8221; Through the adoption of SCM policy and the definition of the configuration management model of the software under development, all CIs, components, and subcomponents are immediately visible for versions, releases, and product families.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Control </b><br />
Because software is inherently intangible, it is also more difficult to control. Without an accurate assessment of progress, schedules slip and budgets are overrun. It is hard to assess what has been accomplished and what remains to be done. SCM provides the mechanism for controlling the project through measuring the amount of effort compared to the project management plan and estimating the future effort based on past work.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Traceability </b><br />
A lack of linkage between project events contributes to project failures. The main benefit of SCM is providing the traceability among versions, releases, and product families. The value of this traceability is enormous when a problem arises in one release or product family that impacts other client releases and products. Making one change and promoting that through the entire product software base is an incredible cost savings in time, money, and client good will. A lack of linkage between project events contributes to project failures where solving one problem either exacerbates a problem in another area or fails to fix the same problem elsewhere. A traceability thread allows management to examine the chain of events that caused a project to encounter difficulty as an integral process within the auditing capability of SCM. A project becomes a year late one day at a time unless the effort reported on the schedule maps to the actual work being done and traced within the software configuration management system.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Lack of Monitoring </b><br />
Without traceability and visibility, monitoring of software development projects becomes extremely difficult. Management cannot make informed decisions, and thus schedules slip further and costs continue to exceed budget.<br />
There is no way to monitor a project when the project manager has no tools to look into the actual product development within the project. SCM provides the tools that open up the process to external monitoring. With SCM in place and a policy of traceability and visibility accepted, monitoring of software development projects becomes a simple part of the overall project management task. Management makes informed decisions avoiding schedule slips and budget excesses through the monitoring available with SCM tools and the integral workings of the CCB.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>Uncontrolled Change </b><br />
Software is very malleable; it is idea-stuff, and customers constantly have new ideas for it. People would rarely ask a bridge constructor to make the kinds of changes midproject that software customers tend to request. The impact of such changes can be just as great. All SCM tools, along with the CCB, support a mechanism for appropriate change control.<br />
</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><b>SCM Interacts with Verification and Validation</b><br />
SCM is most important, and most often neglected, during V&amp;V activities, which include software testing. It is employed in tracking which module versions are included in a particular system build, as well as which tests have been run. The results of the tests are tied directly to the modules or subcomponents being tested. Many times there are &#8220;action items&#8221; resulting from the tests. SCM tracks the action item status, so overall system status can be assessed well before final builds and releases are done.<br />
Verification and validation testing are supported through the four basic SCM processes: identification, control, auditing, and status accounting. Let&#8217;s look at examples of V&amp;V testing in the context of each of these components. </span></span></p>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Identification Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Automatic preparation of release notes</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">List of changed software modules</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Definition of development baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Generation of incident reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Definition of operational baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Control of the configuration item identification</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Management of CCB meetings</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Prioritization of test and incident issues</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Establishment of turnover dates</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Approval of audit and test reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Approval of incident report resolutions</span></span></li>
</ul>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Auditing Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Comparison of new baseline to previous baseline</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Assurance that standards have been met</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Audit trail of the testing process (verification, validation, and acceptance) of the software system</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Documentation of experience with technical aspects of system engineering or software engineering</span></span></li>
</ul>
<h4 style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM Status Accounting Benefits to V&amp;V</span></span></h4>
<ul style="text-align: justify;">
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Logging and tracking of incident reports</span></span></li>
<li><span style="font-size: small;"><span style="font-family: verdana,geneva;">Publication of CCB minutes</span></span></li>
</ul>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">With all of these potential benefits of SCM, project managers must address real-world considerations. Management commitment is the real key to implementing SCM on a specific project in a given organization. By treating the implementation of SCM as a project, the project plan must start at the top to secure commitment to checks and balances. Now is the time to bring out the organization&#8217;s list of project disasters to draw on management experience with their previous software project difficulties. If there are no historic disasters in the organization, or if it is inappropriate to discuss them, refer to literature articles that provide accounts of project disasters (refer to the Web resources at the end of this chapter). Finally, after putting a notional return-on-investment financial argument in place, explain the intangible benefits of SCM.<br />
One of the major sources intangible benefits is auditing. Auditing can be a heavy consumer of configuration management resources, and management may question the benefit of this kind of expenditure. Auditing pays for itself through the avoidance of larger, unnecessary expenses. Savings of 100:1 (large projects) or 4–6:1 (small projects) are obtained by finding and fixing problems early in the life cycle. The auditing process in SCM uncovers the areas where a little more effort or control will result in higher-quality software products and lower overall project costs.<br />
There can be audit compromises to reduce costs. As a project manager, plan audits based on both the phases of the life cycle and the frequency of builds, versions, releases, and product families. Auditing each baseline in a project while reducing the depth of each audit maintains some traceability with loss of visibility.<br />
Eliminating one or more audits (installation baseline, for example) maintains visibility but slightly impacts traceability.</span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/">The symptoms of our software development malaise</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-symptoms-of-our-software-development-malaise/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</title>
		<link>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/</link>
					<comments>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 13 Jan 2009 12:23:22 +0000</pubDate>
				<category><![CDATA[Practice of Software Configuration Management]]></category>
		<category><![CDATA[Advantages of SCM Process]]></category>
		<category><![CDATA[Benefits]]></category>
		<category><![CDATA[Benefits of SCM Process]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[Enterprises]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[How SCM benefits Organizations]]></category>
		<category><![CDATA[organization]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Advantages]]></category>
		<category><![CDATA[SCM Benefits]]></category>
		<category><![CDATA[SCM Process Benefits]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Configuration Management Benefits]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Why SCM]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2009/01/13/scm-benefits-the-organization-in-four-major-ways/</guid>

					<description><![CDATA[<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;">SCM benefits an organization in four areas: control, management, cost savings, and quality. These four benefits are mapped to an organization's overall goals and objectives when the decisions are made to bring a SCM tool in-house. The features of a SCM tool further support these benefits.<br /><b>SCM Benefits the Organization in Four Major Ways</b></span></span> </p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"><br /><b>Control</b><br />Control in SCM provides the ability to review, approve, and incorporate changes into a configuration item. There must be one controlling SCM tool so that there is only one set of training, license management, installation, and user procedures. All project personnel use the tool. Inherent in the tool is a standardized, measurable process for change. Integrity maintenance of CIs is enforced throughout the product life cycle. The tool permits only controlled change to the baseline CIs, and all changes are tracked.</span></span></p>
<p style="text-align: justify;"><span mce_style="font-size: small;" style="font-size: small;"><span mce_style="font-family: verdana,geneva;" style="font-family: verdana,geneva;"></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/">SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-3963 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati.png" alt="scm-benefits-organization" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2009/01/scm-benefits-the-organizati-300x200.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;">SCM benefits an organization in four areas: control, management, cost savings, and quality. These four benefits are mapped to an organization&#8217;s overall goals and objectives when the decisions are made to bring a SCM tool in-house. The features of a SCM tool further support these benefits.<br />
<b>SCM Benefits the Organization in Four Major Ways</b></span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Control</b><br />
Control in SCM provides the ability to review, approve, and incorporate changes into a configuration item. There must be one controlling SCM tool so that there is only one set of training, license management, installation, and user procedures. All project personnel use the tool. Inherent in the tool is a standardized, measurable process for change. Integrity maintenance of CIs is enforced throughout the product life cycle. The tool permits only controlled change to the baseline CIs, and all changes are tracked.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Management</b><br />
Management in SCM is concerned with the automation of identifying and guiding configuration items through their life cycle to final assembly as part of product and delivery. Identification of CIs through a unique naming convention allows version, release, update, and full change tracking. Baselining of CIs with the ability to produce product deltas from the baseline satisfies requirement and schedule changes along with product family support. Rapid reviews and audits of CIs are accomplished through the analysis of historic information collected. Project status reporting is accomplished in a clear and consistent format based on SCM collected information on all CIs under configuration management.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Cost Savings</b><br />
Cost savings are realized across the entire product development life cycle with SCM. Maintaining product integrity through defined, tracked, and audited CIs provides a managed bill of materials for the product released to customers. Cost savings scale with SCM use and application across applications. This scaling is dependent on the depth of control needed for each application product release tree. Deep combinations for product families can be analyzed for risk exposure and cost savings directly impacted by the amount of configuration management applied. Side effects are reduced through controlled change by understanding the impact on all versions and releases. Accurate and repeatable release control is produced in a repeatable fashion over entire product families for all customers and users.</span></span></p>
<p style="text-align: justify;"><span style="font-size: small;"><span style="font-family: verdana,geneva;"><br />
<b>Quality</b><br />
Software development is a people-intensive activity, and quality must be considered at every person-to-tool interface. Ensuring a high-quality work environment must address the process of building software products in an automated fashion. This must include tracking CIs to the tools that produced them and the clients that ultimately receive the product. Measuring the end product to ensure high quality is done through tracking the changes made to a product throughout its life cycle. Repeatable management and change control in a documented and measured fashion allows accurate estimation of future efforts. Quality is an ongoing process. The lessons learned in one product must be transferred to new, related products and entire product families.</span></span></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/">SCM Benefits the Organization in Four Major Ways &#8211; SCM Process Benefits</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/scm-benefits-the-organization-in-four-major-ways/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
