<?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>Software Configuration Management and Agile Software Development &#187; SCM Resources</title>
	<atom:link href="http://accurev.com/blog/category/scm-resources/feed/" rel="self" type="application/rss+xml" />
	<link>http://accurev.com/blog</link>
	<description>SCM and Agile Software Development Blog</description>
	<lastBuildDate>Thu, 17 May 2012 15:00:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Avoiding Merge Hell</title>
		<link>http://accurev.com/blog/2012/03/07/avoiding-merge-hell/</link>
		<comments>http://accurev.com/blog/2012/03/07/avoiding-merge-hell/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 14:15:34 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[Software Tools]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[baseline methodology]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[merging]]></category>
		<category><![CDATA[traditional SCM]]></category>

		<guid isPermaLink="false">http://accurev.com/blog/?p=3035</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/03/07/avoiding-merge-hell/' addthis:title='Avoiding Merge Hell ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>As you start to scale a software development process it becomes apparent that code and user stories have to be merged more frequently. Sometimes changes may flow from one organization to another. This means that you will need to take code from one team, merge, integrate and test those changes with everyone. Each team needs [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/03/07/avoiding-merge-hell/' addthis:title='Avoiding Merge Hell '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/03/07/avoiding-merge-hell/' addthis:title='Avoiding Merge Hell ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>As you start to scale a software development process it becomes apparent that code and user stories have to be merged more frequently. Sometimes changes may flow from one organization to another. This means that you will need to take code from one team, merge, integrate and test those changes with everyone. Each team needs to be able to work on its own schedule, this means that if multiple teams want to work on different sized iterations they can. It also means they can deliver changes as needed and on a regular basis, independent of other teams.</p>
<p>To do this in a traditional Software Configuration Management system, you&#8217;ll face two major problems.</p>
<ol>
<li>You have to merge these code changes daily for them to be of any use.</li>
<li>You also still need to keep visibility into what stories are shared between teams, because delivering changes from user stories that are not completed in a sprint would be disastrous.</li>
</ol>
<p>Typically, configuration teams use a single baseline or “trunk” methodology for situations like this, where all changes from each team are delivered to trunk and pulled from trunk as their iterations complete.</p>
<p>In terms of traditional Software Configuration Management, your teams will have to deal with these branching and merging issues. But there are STILL other problems that can happen when you use this trunk methodology:</p>
<ol start="1">
<li>Delivering 2 weeks worth of changes only causes isolation among teams, because teams are working in such a rapidly paced environment.</li>
<li>It’s too difficult to pick out each user story from the codebase as it is completed because no tracking is in place.</li>
<li>Figuring out the dependencies of those above mentioned user stories is complex.</li>
<li>Identifying what changes came from what branch is impossible.</li>
</ol>
<p>This “baseline pollution” is<strong> not</strong> scale-able. There are a few ways to alleviate these issues that break the baseline mold. I recommend using a development hierarchy, and manage the relationship of dependencies between branches. This could also include process steps such as integration, quality assurance and code reviews.  A separate code configuration can be used for each step and user stories could simply be drag and dropped between each team, state or branch instead of a merge.</p>
<p>Doing this will increase code stability. As a completed user story is pushed from one stage to the next, the particular change as well as the system as a whole reaches a higher level of maturity. Many traditional SCM tools do not easily support or surface a development hierarchy. <a href="http://www.accurev.com/">AccuRev</a> supports the creation of a hierarchy, gives visibility into the changes at each stage, and enables straightforward merging between stages.</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/03/07/avoiding-merge-hell/' addthis:title='Avoiding Merge Hell '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2012/03/07/avoiding-merge-hell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SCM Software: Optimizing the Software Development Process</title>
		<link>http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/</link>
		<comments>http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 17:10:07 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[scm software]]></category>
		<category><![CDATA[software release process]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2756</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/' addthis:title='SCM Software: Optimizing the Software Development Process ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>The enterprise software development arena can be a harsh and unrelenting environment – not a place for the faint-of-heart to work. Fortunately, software configuration management (SCM) software can make it not only more tolerable, but more efficient and, yes, even more successful. SCM software is not a luxury, nor just another layer of technology to [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/' addthis:title='SCM Software: Optimizing the Software Development Process '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/' addthis:title='SCM Software: Optimizing the Software Development Process ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>The enterprise software development arena can be a harsh and unrelenting environment – not a place for the faint-of-heart to work. Fortunately, <strong>software configuration management (SCM) software</strong> can make it not only more tolerable, but more efficient and, yes, even more successful.</p>
<p><a href="http://www.accurev.com/">SCM software</a> is not a luxury, nor just another layer of technology to be added to an already complex process. SCM software is a necessity for development teams working concurrently and in parallel on development projects, especially those employing agile processes to deliver higher quality software more rapidly.</p>
<p>Two of the biggest benefits of using<strong> SCM software</strong> are the ability to coordinate distributed teams and parallel development more effectively, no matter where your team members are located or even the language of the replicas being used – they can be in the next cubicle, the next state, or the next country.</p>
<p><strong>We, of course, recommend AccuRev SCM</strong></p>
<p>No surprise there. After all, we designed it to be fast, flexible, scalable, and effective. After all, we’ve taken process management and version control and made the ideal mash-up that provides the most comprehensive set of SCM tools available, including these<strong> <a href="http://www.accurev.com/scm-best-practices-wp">best practices</a></strong>:</p>
<ul>
<li><a href="http://www.accurev.com/accurev-change-management.html">Change management</a></li>
<li>Visualized SCM patterns</li>
<li><a href="http://www.accurev.com/accuworkflow.html">Automated workflows</a></li>
<li>Private developer history</li>
<li><a href="http://www.accurev.com/multistage-continuous-integration.html">Multi-stage continuous integration</a></li>
<li>Issue-based development</li>
</ul>
<p>With a single set of comprehensive, best-practices SCM tools to work with, life becomes much easier for your development teams – they can focus on software development instead of management and administration tasks. SCM software made nice and simple.</p>
<p>What makes it even easier is how AccuRev SCM easily handles virtually any combination of development processes, including Agile, XP, and waterfall – you name it. You’re free to mix-and-match because AccuRev SCM’s flexible model enables your teams to rip through development with continuous integration, code refactoring, and automated code sharing, to name a few.</p>
<p>Even parallel development is a cinch with fully-transparent code base relationship management that enables teams to store work safely and test it before sharing it with others. A stream-based architecture makes code branching and merging easier, too – it even allows changes to be automatically inherited from other teams.</p>
<p>If for some reason you’re not already using SCM software or if you’re unhappy with whatever software configuration management tool you’re using now and you want to know more about SCM software and AccuRev SCM in particular, check out our <a href="http://www.accurev.com/software-configuration-management-resources.htm">SCM Software Resource Center</a> and <a href="http://www.accurev.com/accurev.html">AccuRev SCM 5.3</a>.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/' addthis:title='SCM Software: Optimizing the Software Development Process '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2012/01/20/scm-software-optimizing-the-software-development-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Configuration Management and Version Control Are Not the Same… Trust Me!</title>
		<link>http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/</link>
		<comments>http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:52:13 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[release management]]></category>
		<category><![CDATA[SCM]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2846</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/' addthis:title='Software Configuration Management and Version Control Are Not the Same… Trust Me! ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>Did you know that CM systems back in the day were basically people? This is where the term &#8220;check-in&#8221; &#38; &#8220;check-out&#8221; comes from- it refers to the days when there where actual software librarians would record peoples changes and check them in and out like books on disk or punch cards. It’s mind boggling to [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/' addthis:title='Software Configuration Management and Version Control Are Not the Same… Trust Me! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/' addthis:title='Software Configuration Management and Version Control Are Not the Same… Trust Me! ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>Did you know that CM systems back in the day were basically people? This is where the term &#8220;check-in&#8221; &amp; &#8220;check-out&#8221; comes from- it refers to the days when there where actual software librarians would record peoples changes and check them in and out like books on disk or punch cards. It’s mind boggling to think of software this way.</p>
<p>If I was to ask software developers today what “software configuration management” was, they would probably say “SCM? Like Subversion?” Incorrect! You need to trust me on this one,<strong> SCM is <em>not </em>the same as a version control system</strong>. Yes, your version control system <em>is</em> an SCM tool (confusing?) but SCM is a broader discipline and technique that encompasses the management of change in software.</p>
<p>The introduction to the IEEE &#8220;Standard for Software Configuration begins with:</p>
<p>SCM constitutes good engineering practice for all software projects, whether phased development, rapid prototyping, or ongoing maintenance. It enhances the reliability and quality of software by:</p>
<ul>
<li>Providing a structure for identifying and controlling documentation, code, interfaces, and databases to support all life cycle phases</li>
<li>Supporting a chosen development/maintenance methodology that fits the requirements, standards, policies, organization, and management philosophy</li>
<li>Producing management and product information concerning the status of baselines, change control, tests, releases, audits, etc.</li>
</ul>
<p>Let&#8217;s be clear- all of the things on this list do <strong>not </strong>fit under the heading of your version control system. Many of them will require practices and policies to maximize your development efforts and methodologies. With version control, release engineers will still have to perform some of these SCM related functions:</p>
<ul>
<li>Merge early and often</li>
<li>Enforce a workflow for development teams to follow</li>
<li>Record and have full visibility into all of the changes that were made</li>
<li>Write build and compiler scripts</li>
<li>Automate builds, deploys and tests</li>
<li>Understand the dependencies between projects and code</li>
<li>Maintain the development environment for a team</li>
<li>Be responsible for the final product going out the door</li>
</ul>
<p>That&#8217;s just the tip of the iceberg. A talented release engineer or SCM expert <em>can</em> do all of those things independently, but his or her job would be a lot easier with SCM tools that can automate and facilitate the necessary practices and processes. (This includes version control, compilers, debuggers, editors, continuous integration machines, automated deploy, and the ITS system.)</p>
<p>At it’s core, SCM answers the question “Somebody did something, how can one reproduce it?” In addition it’s about understanding and establishing relationships among items that are likely to change. It’s a tricky job, not one that’s easily understood. We have to understand the relationships between versioned artifacts, like code, hardware, documents, design models and even directory structures. In addition we have to do all of the necessary things to make those versions valuable to our organization. We have to design process, workflow, automation, build automation, reports and security.</p>
<p>With all of this, don’t tell me that SCM is the same as version control. Trust me on this one!</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/' addthis:title='Software Configuration Management and Version Control Are Not the Same… Trust Me! '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Release Management: Ensuring Reliable, Reproducible Software Products</title>
		<link>http://accurev.com/blog/2011/10/25/software-release-management/</link>
		<comments>http://accurev.com/blog/2011/10/25/software-release-management/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 15:23:45 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[software release management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2730</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/25/software-release-management/' addthis:title='Software Release Management: Ensuring Reliable, Reproducible Software Products ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>As the software development process has evolved over the past couple of years – particularly enterprise software development – one aspect  of software configuration management has drawn increasing attention as a means for controlling risk and maximizing success rates. Of course, I’m talking about software release management. What is software release management? It’s the practice [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/25/software-release-management/' addthis:title='Software Release Management: Ensuring Reliable, Reproducible Software Products '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/25/software-release-management/' addthis:title='Software Release Management: Ensuring Reliable, Reproducible Software Products ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>As the software development process has evolved over the past couple of years – particularly enterprise software development – one aspect  of software configuration management has drawn increasing attention as a means for controlling risk and maximizing success rates. Of course, I’m talking about software release management.</p>
<p><em><strong>What is software release management?</strong></em></p>
<p>It’s the practice of doing all the builds for the various aspects of a project and then moving all those builds to its particular process – development to QA to user acceptance to production to deployment.</p>
<p>What’s made software release management crucial to efficient and timely software development is the use of parallel and geographically dispersed development teams. What was once a pretty straightforward, linear process has now become a major, multi-tasking effort as engineering teams work concurrently on various aspects and features of a product that then need to be merged into a single main trunkline for QA, production, and eventual release to the marketplace.</p>
<p>Compounding this release management challenge are additional issues such as:</p>
<ul>
<li>error correction</li>
<li>additional customer feature      requests</li>
<li>risk management</li>
<li>product revisions</li>
<li>manufacturing issues</li>
<li>general software entropy over      time</li>
</ul>
<p>As a result, the release manager function was developed to deal with all these challenges – a sort of <strong>software release management superhero</strong>. Part overseer, architect, coordinator and support engineer, the release manager is expected to have a general, transparent view of the entire project development process along with a granular view of every aspect of it. Never mind real-time issue and code change tracking, along with  the ability to head off error propagation and broken builds. How can any one person manage to accomplish all this?</p>
<p>The best answer? With a <a href="http://www.accurev.com/release-management.html">software release management tool</a> that provides a stream architecture, or something that can be described as “intelligent branching.” Streams are ideal configuration objects because they contain absolutely everything associated with any particular release, making it easy to track the history of the release and merge any changes with minimal (if any) errors. In fact, streams make it easy to dial back the clock and return to virtually any version of a release to quickly and effectively handle any errors that might pop up.</p>
<p>What makes this type of tool particularly useful is the way it helps release managers handle all the important aspects of software production, including build stabilization, QA testing hand-offs, product assessments, and archiving activities, to name a few. In short, software release management makes it really easy to move new builds to any one of the configurations needed in the software development and release process.</p>
<p>Some of the <strong>major features of our software release management tool</strong> include:</p>
<ul>
<li>Use of streams to store and make      available complete code files for all release versions</li>
<li>AccuRev <a href="http://www.accurev.com/timesafe.html">TimeSafe      architecture</a> for atomic application      of all code changes to minimize errors</li>
<li>Integrated issue tracking</li>
<li>Improved developer productivity</li>
</ul>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/25/software-release-management/' addthis:title='Software Release Management: Ensuring Reliable, Reproducible Software Products '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/10/25/software-release-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Holiday Season is Already Here for Software Development Teams in the Travel Industry</title>
		<link>http://accurev.com/blog/2011/09/30/holiday-software-development/</link>
		<comments>http://accurev.com/blog/2011/09/30/holiday-software-development/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 15:52:11 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[complex]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software development teams]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2800</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/30/holiday-software-development/' addthis:title='The Holiday Season is Already Here for Software Development Teams in the Travel Industry ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>The holidays are still several months away, but for software development teams in the travel industry, the “hustle and bustle” of the season is already here. If you think about the ways you make your business or personal travel plans today, you’ll begin to appreciate the increasingly complex software development challenges travel websites present – [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/30/holiday-software-development/' addthis:title='The Holiday Season is Already Here for Software Development Teams in the Travel Industry '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/30/holiday-software-development/' addthis:title='The Holiday Season is Already Here for Software Development Teams in the Travel Industry ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>The holidays are still several months away, but for software development teams in the travel industry, <a href="http://www.accurev.com/blog/wp-content/uploads/2011/09/Snowflake.jpg"><img class="alignright size-full wp-image-2801" title="Snowflake" src="http://www.accurev.com/blog/wp-content/uploads/2011/09/Snowflake.jpg" alt="Snowflake The Holiday Season is Already Here for Software Development Teams in the Travel Industry" width="270" height="378" /></a>the “hustle and bustle” of the season is already here.</p>
<p>If you think about the ways you make your business or personal travel plans today, you’ll begin to appreciate the increasingly complex software development challenges travel websites present – and the importance of advanced SCM tools.</p>
<p>Just 10 or 15 years ago, many of us were still making travel arrangements through an agent – on the phone or in-person.  We may have gone online to check out a hotel and moved to another site to check on flights – and yet another to rent a car.</p>
<p>Today, travel websites like <a href="http://www.kayak.com/" target="_blank">Kayak</a> and <a href="http://www.orbitz.com/" target="_blank">Orbitz</a> bring together all these consumer options and more – and others include frequent flyer miles, preferred guest points and other information related to our travel plans, often involving outside partners.  All of these variables are changing rapidly and are updated dynamically and in real time on travel websites.  This places greater demands on software development teams – teams that are increasingly distributed across multiple time zones and locations.</p>
<p>Also important to note is that the changes and updates these teams are called on to make are increasingly “business-critical.” A software glitch or a site crash can result in major revenue losses, not to mention the residual consumer frustration and damage to the brand.</p>
<p>More variables, more frequent updates and a more business-critical focus &#8212; now magnify all this during the many times of peak travel or weather-related interruptions and one begins to understand why more advanced SCM tools are required in the travel industry today.</p>
<p>Basic software development tools may have been fine for some organizations in travel &#8212; smaller airlines or hotels with more basic informational web sites that aren’t designed to process high volume reservations and transactions.  But such basic sites are becoming a rarity in the travel industry, leading more and more travel and hospitality businesses to turn to more advanced software development solutions.</p>
<p>AccuRev’s SCM solutions are designed to handle today’s most complex software development challenges, which explains the growth we’re seeing in <a href="http://www.accurev.com/travel" target="_blank">travel and hospitality</a> business customers.</p>
<p>So when the holidays draw near and you go online to book a hotel, schedule a flight or rent a car, you can thank all of those software developers that have been working hard behind the scenes to make sure the site is up and running 24/7.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/30/holiday-software-development/' addthis:title='The Holiday Season is Already Here for Software Development Teams in the Travel Industry '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/09/30/holiday-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning From eCommerce Failures – and Successes</title>
		<link>http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/</link>
		<comments>http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 17:48:02 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[software development environment]]></category>
		<category><![CDATA[website crash]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2795</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/' addthis:title='Learning From eCommerce Failures – and Successes ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>Mammoth retailer Target must have had very high hopes for big sales when a new designer collection went on sale last week. Unfortunately it ended up being a bust. (The site quickly became overwhelmed and crashed several times throughout the day.) Online retail experts say losses for the retailer could run into the millions as [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/' addthis:title='Learning From eCommerce Failures – and Successes '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/' addthis:title='Learning From eCommerce Failures – and Successes ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>Mammoth retailer Target must have had very high hopes for big sales when a new designer collection went on sale last week. Unfortunately it ended up <a href="http://www.boston.com/yourtown/cambridge/articles/2011/09/15/massachusetts_providers_not_to_blame_for_target_site_crash/">being a bust</a>. (The site quickly became overwhelmed and crashed several times throughout the day.) Online retail experts say losses for the retailer could run into the millions as a result.</p>
<p>Scenarios like this are not new, though with a large retailer like Target, it was somewhat surprising. The painful reality of eCommerce is when transactional websites experience dramatically increased traffic, there is always a chance that, without well maintained software development measures in place, crash scenarios like Target&#8217;s will occur.</p>
<p>When an eCommerce crisis like this occurs, developers go into fire drill mode to make rapid changes so the site is back up and running as quickly as possible. Software change and configuration management tools play a crucial role in both ongoing updates and crisis management updates, like the Target example.</p>
<p>It’s also important to note that traditional SCM tools won’t cut it when it comes to high volume transaction web sites like Target, Amazon or any major retailer. Most retail and eCommerce sites need enterprise SCM tools that can scale to accommodate large, geographically distributed teams of developers working in parallel. More advanced SCM tools are integral to the success of transactional web sites, both from a day-to-day aspect, and when there are spikes in traffic and transactions for special sales events, promotions, and holiday shopping.</p>
<p>While last week’s incident demonstrated what can go wrong when an eCommerce site experiences significant problems, there are some great stories out there as well.</p>
<p>One such example is that of a very large and well known travel eCommerce site that receives an average of ten million visitors a month.</p>
<p>As with most of the top of travel eCommerce sites, this one is very dynamic. Users can make reservations for airlines, car rental, hotels, sign up for text message alerts about delayed flights, rate their own experiences and much more.</p>
<p>While these features are popular with consumers, these transactional environments are highly complex to manage. At this particular website, there are as many as 40 different development teams working on 40 different projects. One “project” might be car rentals, another hotel reservations, etc.</p>
<p>When development environments have this much complexity, when teams are working in parallel on a wide variety of projects, only the most powerful SCM tools can help minimize version control problems that lead to bugs slipping through. What may appear at first to be a minor issue can, in the worst case scenario, cause an array of site problems and crashes that have a direct impact on the consumer and revenue. This travel site, which uses AccuRev’s SCM solution, is able to do everything possible to ensure the site and the software behind it stay up and running smoothly, 24/7.</p>
<p>The web storefront is a business critical tool for any type of eCommerce business.  For these reasons, enterprise level SCM tools under the hood are essential to success.</p>
<p>What other similar success and web crisis/failure stories have you experienced directly or heard about?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/' addthis:title='Learning From eCommerce Failures – and Successes '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Source Code Control Made Easy With Streaming</title>
		<link>http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/</link>
		<comments>http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 18:00:41 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[version control system]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2744</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/' addthis:title='Source Code Control Made Easy With Streaming ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>Source code control is one of those topics that can cause some software developers to sweat profusely and make the veins to pop out of their necks, especially if the project includes working with third-party or vendor code – and these days, what project doesn’t include vendor code? I should probably start by defining source code [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/' addthis:title='Source Code Control Made Easy With Streaming '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/' addthis:title='Source Code Control Made Easy With Streaming ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>Source code control is one of those topics that can cause some software developers to sweat profusely and make the veins to pop out of their necks, especially if the project includes working with third-party or vendor code – and these days, what project doesn’t include vendor code?</p>
<p>I should probably start by defining <a href="http://www.accurev.com/accurev-source-code-control.html ">source code control</a> as that mechanism for checking source code in and out of a central repository, enabling several developers to work on the same project simultaneously without the risk (hopefully) of mucking up the source code in the process.</p>
<p>If that isn’t difficult enough already, add vendor code customization to the mix and even the sanest developer becomes a serious candidate for expensive therapy. After all, isn’t traditional branch-and-merge challenging enough without adding a entirely new layer of software configuration management for the vendor code and its corresponding upgrades?</p>
<p>Most of the headaches associated with source code control and management can be attributed to traditional, file-based branch and label source code control tools. The problem stems from traditional branch-based SCM models that require numerous branches to track both vendor source code and custom modifications to that code. Individual branches are needed to track just the vendor code, making merging really unwieldy, especially if you want to do a branch-to-branch merge. Throw in a vendor upgrade and then try to merge a subset of existing custom features and you can see how this can rapidly get ugly.</p>
<p><em>What’s the answer?</em> Real simple:<strong> streaming.</strong></p>
<p>Think of streaming as “intelligent” branching. What makes streaming so great for source code control is that each stream contains every single file needed for that specific source code configuration. They are complete entities unto themselves. Streams can be arranged in a simple “parent-child” hierarchy with a built-in feature that causes configurations to be automatically inherited by every new stream from the parent stream. Even better, the inheritance can also apply to any previous, older streams!</p>
<p>In fact, <strong>stream-based architecture provides a host of developer-friendly source code control benefits</strong>, including:</p>
<ul>
<li>a flexible release process that      includes integrated source code control and issue-tracking</li>
<li>private developer workspaces that      enable private versioning  with      continual server-backup</li>
<li>instant, authentic, single-step      renaming of any object in the source code control system with full history      preservation so no changes are lost</li>
</ul>
<p>If you’d like to know more about stream-based source code control, especially when using third-party code, we’ve got a free white paper you can download: <a href="http://www.accurev.com/whitepaper/vendor_code.htm"><em>Managing Vendor Code Customizations with AccuRev’s Stream-Based SCM</em>.</a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/' addthis:title='Source Code Control Made Easy With Streaming '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/08/26/source-code-control-made-easy-with-streaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Next Generation of SCM: AccuRev 5.2</title>
		<link>http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/</link>
		<comments>http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/#comments</comments>
		<pubDate>Tue, 26 Jul 2011 13:06:57 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Integrations]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Product Review]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[new release]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2691</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/' addthis:title='The Next Generation of SCM: AccuRev 5.2 ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>I mentioned on this blog last week that AccuRev had big news coming that would mark the next phase in the evolution of SCM – the first big leap since AccuRev introduced the stream-based approach. Well, the big news has arrived with this week’s launch of AccuRev SCM Version 5.2. AccuRev Version 5.2 arms developers [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/' addthis:title='The Next Generation of SCM: AccuRev 5.2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/' addthis:title='The Next Generation of SCM: AccuRev 5.2 ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>I mentioned on this blog last week that AccuRev had big news coming that would mark the next phase in the evolution of SCM – the first big leap since AccuRev introduced the stream-based approach. Well, the big news has arrived with this week’s launch of <a href="http://www.accurev.com/press-releases/20110726-accurev-advances-industry-leading-performance-security-and-enterprise-level-">AccuRev SCM Version 5.2.</a> AccuRev Version 5.2 arms developers with one of the few SCM solutions on the market today that offers streams <em>and</em> enhanced enterprise performance, reporting, security, and scalability through the postgreSQL relational database we’ve embedded into our system.</p>
<p>With this release, AccuRev has also introduced <a href="http://www.accurev.com/accuworkflow.html">AccuWorkflow 2.0</a>, a collaborative process-centric governance tool that enables automation and compliance with an issue-based lifecycle workflow directly within AccuRev. AccuWorkflow is especially valuable for developers of software solutions for highly regulated industries such as financial services with its stringent requirements for SOX compliance.</p>
<p>AccuRev 5.2 is available immediately.  Check out the press release here  for more details, or see us demo 5.2 at <a href="http://agile2011.agilealliance.org/">Agile 2011</a>.   You can also check out a brief podcast we put together that examines the major issues and challenges today’s enterprise developers face and how we’ve attempted to help solve those challenges with AccuRev 5.2.  Click <a href="http://www.accurev.com/virtualbooth/20110726-52-podcast/52-podcast.html">here</a> to listen in.</p>
<p>For more info, check out <strong><a href="http://www.accurev.com/whatsnew.htm">What&#8217;s New in 5.2</a>.</strong></p>
<p><strong><a href="http://www.accurev.com/images/screenshots/3screenshots.png"><img class="aligncenter size-full wp-image-2699" src="http://www.accurev.com/blog/wp-content/uploads/2011/07/Capture.jpg" alt="Capture The Next Generation of SCM: AccuRev 5.2" width="708" height="203" title="The Next Generation of SCM: AccuRev 5.2" /></a><br />
</strong></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/' addthis:title='The Next Generation of SCM: AccuRev 5.2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/07/26/scm-great-leap-forward-accurev-5-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change and Configuration Management: Is Your SCM Up to the Job?</title>
		<link>http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/</link>
		<comments>http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 16:00:12 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[configuration management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2650</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/' addthis:title='Change and Configuration Management: Is Your SCM Up to the Job? ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>One question I hear a lot is “what’s so important about change and configuration management systems? Isn’t that just another layer of software that can clog up the software development process?” The fact is, a majority of software projects fail because of poor change and configuration management and improper use of SCM systems. So what [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/' addthis:title='Change and Configuration Management: Is Your SCM Up to the Job? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/' addthis:title='Change and Configuration Management: Is Your SCM Up to the Job? ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>One question I hear a lot is “what’s so important about change and configuration management systems? Isn’t that just another layer of software that can clog up the software development process?” The fact is, a majority of software projects fail because of poor change and configuration management and improper use of SCM systems.</p>
<p>So what seems to be the problem? Well, efficient software development is often muddied by the increased use of outsourced development teams spread out over a variety of geographic locations, using a mix of Agile and waterfall modeling processes, and working on parallel projects. Choosing the wrong SCM system can reduce development efficiency, lock engineers into inappropriate processes, and cause defects to ship that can cost a boatload to fix and adversely affect overall product quality and, ultimately, customer satisfaction.</p>
<p><strong>The right SCM tool, however,</strong></p>
<ul>
<li> enables flexible processes for easier <a href="http://www.accurev.com/software-configuration-management.html">change and configuration management</a></li>
<li> stands up to demanding frequent build, test, and release cycles</li>
<li> helps improve quality while reducing the cost of the shipped product</li>
</ul>
<p>In other words, the right SCM system, properly implemented and used, will make the entire software build, test, and release process faster, easier, and more successful. And isn’t that the whole idea?</p>
<p>Any good, comprehensive SCM system consists of four basic elements:</p>
<ol>
<li><strong>Version control</strong>, which tracks changes to a file over time</li>
<li><strong>Build management</strong>, which enables developers to track a build’s progress and what goes into it</li>
<li><strong>Release management</strong>, which handles the transition from initial build to shipped product</li>
<li><strong>Process control</strong>, which ties it all together</li>
</ol>
<p>The right mix of these four components will depend on the project size – more complex projects might require more build management, frequently-updated products might need more release management.</p>
<p><strong>Size matters.</strong><br />
One of the most important aspects of efficient and effective SCM is right-sizing – making sure your SCM system is scalable to meet the size and scope of your development projects. Too often, organizations struggle with a one-size-fits-all SCM system that is simply inappropriate for the project at hand. Likewise, use scalable best practices; for example, don’t waste precious time and resources collective extensive project metrics for one-off projects – save the thorough data collecting for more complex builds, potential version updates, and product line extensions.</p>
<p><strong>Managing change and configuration</strong><br />
All development processes, waterfall or Agile, need to handle branching, merging, and refactoring as efficiently as possible. Code often needs to be modified or revised for maintenance purposes or to facilitate emergency releases associated with defect repairs. Your SCM system needs to be able to handle branching, merging, and refactoring effectively to ensure that any fixes carry forward from maintenance releases to major future releases so that any errors or bugs don’t perpetually pop up as ongoing problems after their initial fix.</p>
<p><strong>SCM Best Practices to improve your software development processes</strong><br />
To help you implement the ideal SCM system or improve your current one, here are <strong>eleven SCM Best Practices</strong> to aid process improvement and make your SCM as efficient and effective as possible:</p>
<ul>
<li> Forget one-size-fits-all SCM</li>
<li> Design scalable Best Practices</li>
<li> Plan your SCM environment carefully</li>
<li> Ensure absolute reproducibility for all artifacts</li>
<li> Require change requests and change packages</li>
<li> Maintain private developer workspaces</li>
<li> Create and work from appropriate baselines</li>
<li> Leverage metrics for process improvement</li>
<li> Create reusable components</li>
<li> Merge and integrate as often as possible</li>
<li> Structure for distributed development</li>
</ul>
<p>The proper SCM system, implemented well and thoroughly embraced by your development teams, can make the difference between having a wildly successful product or an error-prone disaster that sucks up time, money, and resources in ever-increasing amounts.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/' addthis:title='Change and Configuration Management: Is Your SCM Up to the Job? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/07/14/change-and-configuration-management-is-your-scm-up-to-the-job/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Branching and Merging, or How to Learn to Love Change</title>
		<link>http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/</link>
		<comments>http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 18:55:08 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[branching and merging]]></category>
		<category><![CDATA[merging]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2643</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/' addthis:title='Branching and Merging, or How to Learn to Love Change ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>Branching and merging is one of those things in software development that tends to drive most developers right around the bend. It’s understandable why so many fear branching and merging – after all, so many things can go wrong once you veer off the baseline and wander into uncharted territory and try to get back. [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/' addthis:title='Branching and Merging, or How to Learn to Love Change '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/' addthis:title='Branching and Merging, or How to Learn to Love Change ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>Branching and merging is one of those things in software development that tends to drive most developers right around the bend. It’s understandable why so many fear branching and merging – after all, so many things can go wrong once you veer off the baseline and wander into uncharted territory and try to get back. But instead of fearing the beast, here are <strong>two tips</strong> to help you drag it up out of the basement, smack it around, and show it who’s boss.</p>
<p>Just so we’re all on the same page, <a href="http://www.accurev.com/accurev-branching-merging.html ">branching and merging</a> is defined as the process of duplicating part of a software development project baseline so that some parallel development can take place, say, to fulfill a customer’s change request, then once completed it’s merged back into the baseline.</p>
<p>The fat can hit the fire in two places: first, determining when and why a branch should be started, and then when and how it’s merged back into the main development baseline. Done poorly, both of these actions can result in confusion, errors, and delays. No wonder branching and merging gives developers night-sweats.</p>
<p>Because branching and merging has the potential to be problematic, some developers unintentionally make it worse by either branching too often or merging too late. The result can be increased risk in errors and/or a decrease in productivity.</p>
<p><em>So what’s a developer to do?</em></p>
<p>Start by determining what should rightfully constitute a branch – does a branch get triggered by a change request? How about a specific integration effort? Perhaps it’s based on system architecture? These are just a few of the common branching strategies, so you need to decide which one provides you with an acceptable balance of risk versus productivity. Do you want to branch and merge early and often, reducing risk but also slowing productivity? Or are you willing to roll the dice that things go smoothly during development so you’ll hold off on merging to potentially increase productivity and value?</p>
<p><em>Where things can get really sticky is in the merging process. </em></p>
<p>So my <strong>second tip</strong> is to make sure you can fully track all your file changes, especially across code lines, or you run the risk of some seriously broken builds and test failures. At AccuRev we have a branching model that we call streams which provides some great code flexibility to make branching and merging as fast and efficient as possible. Stream branching easily accepts parent code while allowing you to then push code out to other streams. All file versions are stream-based, making merging easier because the entire file change history is available and automatically tracked. Pretty cool.</p>
<p>Here’s the big pay-off – because branching and merging is made a lot easier with streams, development teams can branch more often and more confidently, reducing risk without seriously impacting productivity. Perhaps best of all, it helps you avoid a potentially-disastrous end-of-release merge dump that could result in costly and time-consuming fixes and release delays.</p>
<p><strong>So let’s recap: </strong>avoid a branching and merging nightmare by carefully considering the branching model that best suits your needs and your level of risk versus productivity. Make sure that your methodology provides maximum visibility into the process and enables you to fully track your file change history, enabling better decision-making and ensuring more effective merging that’s less prone to errors. <strong>The result? </strong>Better product,faster, and with less errors. <em>How sweet is that?</em></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/' addthis:title='Branching and Merging, or How to Learn to Love Change '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

