<?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; source control</title>
	<atom:link href="http://accurev.com/blog/tag/source-control/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>Source Control System: What is Behind Software Configuration Management</title>
		<link>http://accurev.com/blog/2011/09/14/source-control-system/</link>
		<comments>http://accurev.com/blog/2011/09/14/source-control-system/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 16:30:23 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[version control]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[software change and configuration management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[source control system]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2752</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/14/source-control-system/' addthis:title='Source Control System: What is Behind Software Configuration Management ' ><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>If you scratch any software configuration management (SCM) system hard enough, what you’ll really find is a source control system. In reality, SCM and source control are basically one and the same. Having truly effective SCM is all about having good source control. The challenge today for any software developer is the rapid pace and [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/14/source-control-system/' addthis:title='Source Control System: What is Behind Software Configuration Management '  ><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/14/source-control-system/' addthis:title='Source Control System: What is Behind Software Configuration Management ' ><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>If you scratch any <strong>software configuration management (SCM) system</strong> hard enough, what you’ll really find is a source control system. In reality, SCM and source control are basically one and the same. Having truly effective SCM is all about having good source control.</p>
<p>The challenge today for any software developer is the rapid pace and simultaneous development that has dramatically changed the development landscape over the past few years. Throw in the latest Agile development processes, mix in some more traditional methodologies, including XP and waterfall, and now you’ve got a real witches’ brew of development activity that can put a strain on source control.</p>
<p>One of the reasons we’ve developed AccuRev SCM is to provide a sound <a href="http://www.accurev.com/accurev.html ">source control system</a>. Something that enables distributed teams to communicate, collaborate, and integrate code as seamlessly and effortlessly as possible while providing full transparency to all source file changes.</p>
<p>So what exactly are the <strong>benefits of a source control system</strong>? Here are some main ones:</p>
<ul>
<li>Source control enables multiple      development teams to access and share code simultaneously, enabling      effective parallel development</li>
<li>It enables code to be managed and      protected to help ensure file integrity</li>
<li>It provides a way to label, or      version, a chunk of code &#8212; even whole sets of code &#8212; so that a complete      file history can be maintained for faster, more effective development and      revision</li>
<li>It helps with change management      so that new software versions or added functionality can be tracked and      approved</li>
</ul>
<p>As a source control system, <strong>AccuRev SCM</strong> really helps developers by providing process visualization, drag-and-drop SCM automation and issue-based workflow using something we call “streams” – a type of architecture that’s a sort of “intelligent” branching. This type of architecture provides outstanding source control because each stream contains every file for a specific source code configuration. This, in turn, makes branching and merging easier, even in a distributed, parallel development environment. This streamlined architecture enables teams to store their work and test it before sharing it so that merging code becomes a lot easier and safer.</p>
<p>With a good source control system, you’re able to accomplish some pretty amazing stuff. We’ve found that AccuRev SCM can:</p>
<ul>
<li>Improve Agile/hybrid process      project collaboration</li>
<li>Improve software asset reuse</li>
<li>Accelerate time to market</li>
<li>Lower total cost of ownership</li>
<li><strong>Accelerate      the software development process by 30%</strong></li>
</ul>
<p>Efficient, optimized software development starts with solid SCM, and that means a good source control system.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/14/source-control-system/' addthis:title='Source Control System: What is Behind Software Configuration Management '  ><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/14/source-control-system/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn</title>
		<link>http://accurev.com/blog/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/</link>
		<comments>http://accurev.com/blog/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 17:24:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[best of breed tools]]></category>
		<category><![CDATA[defect tracking]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse Mylyn]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[JIRA]]></category>
		<category><![CDATA[Mylyn Project]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tools]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=150</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/' addthis:title='Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn ' ><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>Related Recipes: AccuRev + Eclipse + Ruby. In this developer-centric recipe I am going to setup a power-tool trifecta consisting of Eclipse, JIRA, and AccuRev. I&#8217;m not talking about installing each independently. No, no, no. This recipe is going to take things one step further and configure full bidirectional integrations for a wickedly powerful, fully [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/' addthis:title='Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn '  ><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/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/' addthis:title='Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn ' ><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><em>Related Recipes:</em> <a href="http://blog.accurev.com/2007/09/18/accurev-eclipse-ruby/">AccuRev + Eclipse + Ruby</a>.</p>
<p>In this developer-centric recipe I am going to setup a power-tool trifecta consisting of <a title="Eclipse IDE" href="http://www.eclipse.org/" target="_blank">Eclipse</a>, <a title="Atlassian Jira" href="http://www.atlassian.com/software/jira/" target="_blank">JIRA</a>, and <a title="AccuRev Process-Centric SCM" href="http://www.accurev.com" target="_blank">AccuRev</a>. I&#8217;m not talking about installing each independently. No, no, no. <a title="AccuRev + JIRA + Eclipse Screenshot" href="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_eclipse_screenshot.png" target="_blank"><img style="border: 1px solid #acacac; float: right; margin: 5px 0 5px 10px;" src="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_eclipse_screenshot.png" alt="AccuRev + JIRA + Eclipse Screenshot" width="156" height="84" title="Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn" /></a>This recipe is going to take things <em>one step further</em> and configure full bidirectional integrations for a <strong><span style="color: #000080;">wickedly powerful</span><span style="color: #000080;">, </span></strong><strong><span style="color: #000080;">fully integrated development environment</span></strong><a title="AccuRev + JIRA + Eclipse Chart" href="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_chart.png" target="_blank"><img style="border: 1px solid #acacac; float: left; margin: 5px 10pt 5px 0;" src="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_chart.png" alt="AccuRev + JIRA + Eclipse Chart" title="Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn" /></a><em> </em>where the majority of common day-to-day development tasks can be done right within Eclipse <em>(right picture)</em>. Integrations are the crux of setting up a best-of-breed tool strategy and if you use these three tools you definitely want them talking together <em>(left picture)</em>. Enough chop, let&#8217;s rock.</p>
<h3><span style="color: #ff0000;"><strong>Install Applications</strong></span></h3>
<p>Let&#8217;s start by covering the basics and installing the latest versions of all three tools.</p>
<ol>
<li><strong>Install AccuRev 4.6.x</strong>. <a title="Download AccuRev" href="http://www.accurev.com/downloads.html" target="_blank">download</a>. Follow the install wizard. See the <a title="AccuRev Quick Setup" href="http://www.accurev.com/download/docs/4.6.0_books/AccuRev_Notes.pdf" target="_blank">quick setup guide</a> to import code and setup streams <em>[Windows page 1 / Linux-page 13]</em>.</li>
<li><strong>Install Eclipse 3.3.x</strong>. <a title="Download Eclipse" href="http://www.eclipse.org/downloads/" target="_blank">download</a>. Follow the install wizard. See <a title="Eclipse Documentation" href="http://www.eclipse.org/documentation/" target="_blank">documentation</a> if needed.</li>
<li><strong>Install JIRA 3.12.x</strong>. <a title="Download JIRA" href="http://www.atlassian.com/software/jira/download" target="_blank">download</a>. Follow these <a title="Install JIRA" href="http://www.atlassian.com/software/jira/docs/latest/" target="_blank">instructions</a>.</li>
</ol>
<p>At this point, you have three independent tools installed. Developers can checkin/checkout code from AccuRev, use Eclipse to modify the source code, and track bug/feature development with JIRA. In all, not a bad setup. But toggling between all these tools just takes valuable time away from coding and there is no mashing of logically related meta-data to generate useful reports&#8230; such as:</p>
<ul>
<li><span style="color: #000000;">&#8220;W</span><span style="color: #000000;">hich files/lines fixed issue #1234?&#8221;</span></li>
<li><span style="color: #000000;">&#8220;W</span><span style="color: #000000;">as bug #5678 fixed in mainline, 2.x, and 1.x codelines?&#8221;</span></li>
<li><span style="color: #000000;">&#8220;</span><span style="color: #000000;">Release is this Friday. How many issues are unresolved in the QA area and who are we waiting on?&#8221;</span></li>
<li><span style="color: #000000;">&#8220;W</span><span style="color: #000000;">hich fixes went into Release 4.5.101?&#8221;</span></li>
<li><span style="color: #000000;">&#8220;If I start working on the 4.x codeline, which known fixes will I be compiling against?&#8221; </span></li>
</ul>
<h3><span style="color: #ff0000;"><strong>Integrate Eclipse + AccuRev </strong></span></h3>
<p>Let&#8217;s eliminate jumping between Eclipse and the AccuRev CLI or StreamBrowser GUI. Rather, why not just keep/promote/update/merge directly within Eclipse. You can install our native Eclipse plugin via the Eclipse software updater.</p>
<ol>
<li>Help &#8211;&gt; Software Updates &#8211;&gt; Find/Install</li>
<li>Select &#8216;Seach for new features to install&#8217;</li>
<li>Create &#8216;New Remote Site&#8217; named &#8216;<em>AccuRev&#8217; </em>with URL <em>http://www.accurev.com/download/eclipseupdate/32</em></li>
<li>Checkbox &#8216;AccuRev&#8217; and select Finish</li>
</ol>
<p>When you create a new Project, choose to &#8220;Checkout from AccuRev.&#8221; Now the Eclipse &#8216;Team&#8217; menu has a sleu of AccuRev commands available for inline use and your file navigator has icons for <a href="http://www.accurev.com/accurev-version-control.html" target="_blank">version control</a> status. Sweet. <em>Note: there is an AccuRev quickstart PDF located in your Eclipse plugin directory (e.g. /opt/eclipse/plugins/com.accurev.eclipse_4.6.1.32/UsingAB4Eclipse.pdf).</em></p>
<h3><span style="color: #ff0000;"><strong>Integrate Eclipse + JIRA</strong></span></h3>
<p>Have you heard of the <a title="Eclipse Mylyn Project" href="http://www.eclipse.org/mylyn/" target="_blank">Eclipse Mylyn</a> project? Seriously, it&#8217;ll bring a tear to your eye. In short, Mylyn is a generic framework for &#8216;task management&#8217; within Eclipse and has a number of connectors to tools like JIRA, Bugzilla, and Trac. Guess what? You can interact with JIRA directly within Eclipse. It&#8217;s sick! seriously. Once again, you can install directly from the Eclipse software updater. First install the Mylyn framework and then the JIRA connector.</p>
<ol>
<li><strong>Install Mylyn 2.0</strong>. Follow this <a title="Eclipse Mylyn Setup Guide" href="http://www.eclipse.org/mylyn/downloads/" target="_blank">setup guide</a>. Basically, just like the AccuRev plugin above, create a remote updater site with this URL: <em>http://download.eclipse.org/tools/mylyn/update/e3.3</em></li>
<li><strong>Install JIRA Connector</strong>. Follow the short <a title="JIRA Connector for Mylyn 2.0" href="http://confluence.atlassian.com/display/JIRAEXT/Mylyn" target="_blank">setup guide</a> provided by Atlassian.</li>
</ol>
<p>As a developer, your world just got a whole lot better. Not only can you commit/update file changes directly within AccuRev, now you can open/close/update JIRA issues all without leaving Eclipse. Nuts!</p>
<h3><span style="color: #ff0000;"><strong>Integrate AccuRev + JIRA</strong></span></h3>
<p>The final piece to the puzzle. Wait? What does hooking AccuRev to JIRA actually mean?!</p>
<p><em>Lets take a step back.</em> Back in the day, using one of those other traditional <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">branch-based SCM tools</a>, you probably entered your bug #id into the commit comment. Commit 10 files. Enter bug #1234. Commit another 7 files. Enter same bug #1234. Very loose. And you probably had some validation and reporting scripts all stacked on top to keep things (hobbled) together. At the end of the day, this was far from a &#8216;tight&#8217; integration and a struggle to maintain and enforce. Answering the simple question &#8220;which files -and- lines were fixed for bug #1234&#8243; was not easy (probably impossible!).</p>
<p><em>AccuRev Change Packages.</em> AccuRev has an out-of-the-box feature called Change Packages that natively tracks a set of files (as patches) regardless of the number of commits. Change packages are first class citizens in AccuRev. You can promote multiple times to the same change package and even remove files. <strong><span style="color: #ff6600;">The trick is to understand that a change package has a 1-to-1 relationship with&#8230; an issue! </span></strong>And those issues can come from JIRA. So as you work in your AccuRev workspace coding day-to-day you can promote your changes and assign them to a JIRA issue. Then make more changes and promote to the same issue. <strong><span style="color: #000080;">Think of it like this:</span></strong> creating a feature or fix may take 1 day or 100 days; 1 commit or 50 commits; Change packages don&#8217;t care. They just track the current set of files that you claim are &#8216;logically&#8217; related as part of a fix or feature. That&#8217;s it! I&#8217;ll keep this short, but basically, you can now use the change package / issue as a <em>new, first-class currency</em> for promoting further up and/or patching those changes to other codelines! It&#8217;s very powerful. See pg 33 of our <a title="AccuRev Change Package Concepts" href="http://www.accurev.com/download/docs/4.6.0_books/AccuRev_Concepts.pdf" target="_blank">Concepts Guide</a> for details. But I digress.</p>
<p><em>Back to the recipe.</em> Hooking up AccuRev and JIRA means that AccuRev receives issues from JIRA and JIRA receives meta-data such as fixed files and versions for each issue. The setup requires our own connector technology called <a title="AccuBridge for JIRA" href="http://www.accurev.com/accubridge-jira.html" target="_blank">AccuBridge for JIRA</a>. It&#8217;s pretty easy to setup and simply requires mapping JIRA fields to AccuRev fields and setting up the data synchronization. There is a well written &#8216;quick start&#8217; guide to walk you through the entire setup process.</p>
<ol>
<li><strong>Install AccuBridge for JIRA</strong>. <a title="AccuBridge for JIRA Download" href="http://www.accurev.com/download_ab_2008_1.htm" target="_blank">download</a> (link half-way down). Follow the setup guide located in the download package: <em>doc/ais4jira_quick.pdf. <span style="color: #ff0000;">[Note: Additional licensing may be required] </span></em></li>
<li><strong>Enable Change Packages. </strong>See pg 75 of the<a title="AccuRev Admin Guide" href="http://www.accurev.com/download/docs/4.6.1_books/AccuRev_Admin.pdf" target="_blank"> Admin Guide</a>. Basically, you need to tell AccuRev &#8216;when&#8217; to prompt users for issues, &#8216;which&#8217; issues to query for, and which data columns to display in the lists.<em> <span style="color: #ff0000;">[Note: AccuRev Enterprise Edition is required]</span></em></li>
</ol>
<p>At this point, developers are promoting file changes to JIRA issues and JIRA can report on &#8216;who&#8217; fixed &#8216;which&#8217; files for any given bug/feature/task. Now that&#8217;s what I call traceability!</p>
<h3><span style="color: #ff0000;"><strong>All Together Now!</strong></span></h3>
<p>With everything hooked up, what do we have? Simple. <a title="AccuRev + JIRA + Eclipse Screenshot" href="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_eclipse_screenshot.png" target="_blank"><img style="border: 1px solid #acacac; float: right; margin: 5px 0 5px 10px;" src="http://www.accurev.com/blog/wp-content/uploads/2008/04/accurev_eclipse_jira_eclipse_screenshot.png" alt="AccuRev + JIRA + Eclipse Screenshot" width="156" height="84" title="Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn" /></a>As a developer you can do just about everything directly within Eclipse. Edit files. Commit and update changes from AccuRev. Create issues and update comments/status/fields in JIRA. And behind the scenes, the JIRA records are being annotated by AccuRev as files are promoted out of Eclipse. Eclipse is your one-stop-shop workbench for developing, tracking changes, and managing task workflow <em>(see picture)</em>.</p>
<p>Next we&#8217;ll add a build tool to the mix that integrates with AccuRev, JIRA, and Eclipse&#8230; But that&#8217;s for another day. Sounds great though, doesn&#8217;t it!</p>
<p>/happy coding/ &#8211; dave</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/' addthis:title='Developer Recipes: AccuRev + JIRA + Eclipse using Mylyn '  ><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/2008/04/09/developer-recipes-accurev-jira-eclipse-using-mylyn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>GNU Bash plugin for AccuRev 4.6</title>
		<link>http://accurev.com/blog/2008/02/08/gnu-bash-plugin-for-accurev-46/</link>
		<comments>http://accurev.com/blog/2008/02/08/gnu-bash-plugin-for-accurev-46/#comments</comments>
		<pubDate>Fri, 08 Feb 2008 22:00:13 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[GNU Bash]]></category>
		<category><![CDATA[GNU bash plugin]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=122</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/02/08/gnu-bash-plugin-for-accurev-46/' addthis:title='GNU Bash plugin for AccuRev 4.6 ' ><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&#8217;m happy to announce the latest release of the GNU Bash programmable completion for AccuRev 4.6! For those AccuRev users out there that know the true power of the GNU Bash shell, life just got even better. This GNU Bash plugin has its own site at http://bash4accurev.wordpress.com for downloads, announcements, documentation and user feedback (ala [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/02/08/gnu-bash-plugin-for-accurev-46/' addthis:title='GNU Bash plugin for AccuRev 4.6 '  ><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/2008/02/08/gnu-bash-plugin-for-accurev-46/' addthis:title='GNU Bash plugin for AccuRev 4.6 ' ><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&#8217;m happy to announce the latest release of the GNU Bash programmable completion for AccuRev 4.6!</p>
<p>For those <a href="http://www.accurev.com/customers.html" target="_blank">AccuRev users </a>out there that know the true power of the <a title="GNU Bash Website" href="http://www.gnu.org/software/bash/">GNU Bash</a> shell, life just got even better.</p>
<p>This GNU Bash plugin has its own site at <a title="Bash for AccuRev" href="http://bash4accurev.wordpress.com/">http://bash4accurev.wordpress.com</a> for downloads, announcements, documentation and user feedback (ala blog style). You can download the plugin from the <a title="Download GNU Bash for AccuRev" href="http://bash4accurev.wordpress.com/download">download page</a>.</p>
<p>The plugin requires <strong>GNU Bash 2.05+</strong> and supports <strong>AccuRev 4.6.x.</strong> It was developed and tested using linux (Ubuntu 7.10) and GNU Bash 3.2.25.</p>
<p><em><span style="color: #ff0000;"><strong>Important note</strong>:</span> While the plugin was developed by an AccuRev employee (me) and GNU Bash user for 10+ years, it is considered a third-party open-source plugin and is not officially supported by the folks @ AccuRev support. That being said, I&#8217;m proud of the plugin and welcome feedback and enhancement requests for the next release. You&#8217;ll find my contact information on the plugin website.</em></p>
<p>/happy tabbing/ &#8211; dave</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/02/08/gnu-bash-plugin-for-accurev-46/' addthis:title='GNU Bash plugin for AccuRev 4.6 '  ><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/2008/02/08/gnu-bash-plugin-for-accurev-46/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evil Twins in SCM, Not Hollywood</title>
		<link>http://accurev.com/blog/2008/01/24/evil-twins-in-scm-not-hollywood/</link>
		<comments>http://accurev.com/blog/2008/01/24/evil-twins-in-scm-not-hollywood/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 20:00:19 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[AccuRev support]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[Evil Twins]]></category>
		<category><![CDATA[name already exists in backing stream]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2008/01/24/evil-twins-in-scm-not-hollywood/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/24/evil-twins-in-scm-not-hollywood/' addthis:title='Evil Twins in SCM, Not Hollywood ' ><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 keep expecting customers to ask me “Is it contagious Doc?” Or state, “but I am an only child!!!!!” What am I referring to? Evil Twins!!! Sounds menacing right? It really is not, but to a first-time user or someone who has never encountered the warning, “Name already exists in backing stream,” it can be [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/24/evil-twins-in-scm-not-hollywood/' addthis:title='Evil Twins in SCM, Not Hollywood '  ><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/2008/01/24/evil-twins-in-scm-not-hollywood/' addthis:title='Evil Twins in SCM, Not Hollywood ' ><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 class="MsoNormal">I keep expecting customers to ask me “Is it contagious Doc?” Or state, “but I am an only child!!!!!” What am I referring to? Evil Twins!!! Sounds menacing right? It really is not, but to a first-time user or someone who has never encountered the warning, “Name already exists in backing stream,” it can be rather perplexing.</p>
<p class="MsoNormal">So what exactly is an Evil Twin you ask? It is a situation where two completely separate file elements in the same directory structure have the same name. It is actually a common problem across many <a target="_blank" href="http://www.accurev.com/scm_comparisons.html">software configuration management</a> (SCM) systems. So how does this happen exactly? All it takes are two well intended individuals with their own workspaces. Lets use the following scenario, User A and User B both have their own workspaces attached to the same development stream. Currently we have the following directory structure;</p>
<p class="MsoNormal">\.\dir1\child_dir\</p>
<p class="MsoNormal">with the following files already under <a target="_blank" href="http://www.accurev.com/product-overview.html">source control</a>:</p>
<p class="MsoNormal">file_a.txt</p>
<p class="MsoNormal">file_b.txt</p>
<p class="MsoNormal">As part of our software project, we also need to create one additional file:</p>
<p class="MsoNormal">file_c.txt.</p>
<p class="MsoNormal">User_A creates and adds file_c.txt to source control in the child_dir directory and promotes this newly added file into the development stream.</p>
<p class="MsoNormal">At the same time, User_A was creating and adding file_c.txt, User_B did the exact same steps. However, A was first to promote so in effect User_A won the race. When User_B attempts to promote his/her file_c.txt the “Name already exists” error pops up front and center and does not allow the promote to continue. Evil Twin prevention at it’s best.</p>
<p class="MsoNormal">AccuRev tracks an element by its eid (element identification number) and not its name. This is how an Evil Twin is detected. When User_B attempts to promote File_c.txt AccuRev knows that there is already a File_c.txt in the development stream but notices that the eid’s do not match. They are truly separate files since they were independently created and added by different users. They are Evil Twins because they look identical but are different. Really only one of the two is Evil and that is typically the file that ends up getting removed/renamed. But that is another story for another day.</p>
<p class="MsoNormal">So what should an AccuRev customer do when encountering this problem? Give support@accurev.com a shout and title your email “Need Evil Twin resolution help” or “Name Already exists in backing stream error.” Or you may also take a look at the AccuRev Online FAQ&#8217;s in the Customer Support Forum.</p>
<p class="MsoNormal">Please feel free to let me know if this helps you out!</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/24/evil-twins-in-scm-not-hollywood/' addthis:title='Evil Twins in SCM, Not Hollywood '  ><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/2008/01/24/evil-twins-in-scm-not-hollywood/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AccuRev is a Jolt Award 2008 Finalist</title>
		<link>http://accurev.com/blog/2007/12/21/accurev-is-a-jolt-award-2008-finalist/</link>
		<comments>http://accurev.com/blog/2007/12/21/accurev-is-a-jolt-award-2008-finalist/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 19:40:04 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[AccuRev 4.6 for ClearCase]]></category>
		<category><![CDATA[Agile SCM]]></category>
		<category><![CDATA[ClearCase Coexistence]]></category>
		<category><![CDATA[Jolt Award]]></category>
		<category><![CDATA[Product Excellence]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tool]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/12/21/accurev-is-a-jolt-award-2008-finalist/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/21/accurev-is-a-jolt-award-2008-finalist/' addthis:title='AccuRev is a Jolt Award 2008 Finalist ' ><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>AccuRev 4.6 for ClearCase, which includes our new ClearCase Coexistence Adapter, has been selected as a Finalist in the 2008 Jolt Product Excellence Awards! James has been sharing with you some of the core new features in AccuRev 4.6 in his previous posts, such as the VersionSlider and viewing work-in-progress at the Issue level, but [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/21/accurev-is-a-jolt-award-2008-finalist/' addthis:title='AccuRev is a Jolt Award 2008 Finalist '  ><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/2007/12/21/accurev-is-a-jolt-award-2008-finalist/' addthis:title='AccuRev is a Jolt Award 2008 Finalist ' ><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><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;">AccuRev 4.6 for ClearCase, which includes our new <a href="http://www.accurev.com/clearcase-adapter.html" target="_blank"><span style="color: #800080;">ClearCase Coexistence</span></a> Adapter, has been selected as a Finalist in the 2008 Jolt Product Excellence Awards! James has been sharing with you some of the core new features in AccuRev 4.6 in his previous posts, such as the <a href="http://blog.accurev.com/2007/11/28/accurev-46-preview-nuggets-redux/" target="_blank">VersionSlider</a> and viewing work-in-progress at the <a href="http://blog.accurev.com/2007/11/21/accurev-46-preview-nuggets/" target="_blank">Issue level</a>, but for a more detailed look, check out the What’s <a href="http://www.accurev.com/whatsnew.htm" target="_blank"><span style="color: #800080;">New in 4.6</span></a> Web page.</span></span></p>
<p><span style="font-family: Arial; font-size: x-small;"></span><span style="font-family: Arial; font-size: x-small;"></span><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;">2007 was truly the year of both SCCM conversion, and co-existence (a relatively new concept). While AccuRev added significant new features to its core offering this year, enabling co-existence with leading SCCM solutions is jolting in a number of significant ways.</span></span></p>
<p><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;">AccuRev is the glue that allows teams to continue using their existing SCCM infrastructure, while integrating AccuRev into new or existing projects.  This eliminates risk and potential disruption associated with a comprehensive one-time conversion, and provides freedom of choice.</span></span><span style="font-family: Arial; font-size: x-small;"></span></p>
<p class="MsoNormal"><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;">AccuRev 4.6 for ClearCase enables adoption of AccuRev in previously homogenous ClearCase environments, through real-time bi-directional synchronization without rework or porting. Ultimately, these organizations will save time, money, and deliver higher quality software.</span></span></p>
<p class="MsoNormal"><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;"><a href="http://www.accurev.com/jolt_award.html" target="_blank">Jolt Product Excellence</a> Winners for 2008 will be announced at the SD West conference in March.</span></span></p>
<p class="MsoNormal"><span style="font-family: Arial; font-size: x-small;"><span style="font-size: 10pt; font-family: Arial;">Happy Holidays!</span></span></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/21/accurev-is-a-jolt-award-2008-finalist/' addthis:title='AccuRev is a Jolt Award 2008 Finalist '  ><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/2007/12/21/accurev-is-a-jolt-award-2008-finalist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Accessible is Your Source Code?</title>
		<link>http://accurev.com/blog/2007/12/19/how-accessible-is-your-source-code/</link>
		<comments>http://accurev.com/blog/2007/12/19/how-accessible-is-your-source-code/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 20:00:39 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[buildable code]]></category>
		<category><![CDATA[inaccessible source]]></category>
		<category><![CDATA[network outages]]></category>
		<category><![CDATA[reference tree]]></category>
		<category><![CDATA[reproducibility]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/12/19/how-accessible-is-your-source-code/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/19/how-accessible-is-your-source-code/' addthis:title='How Accessible is Your Source Code? ' ><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 of the things that frightens anyone who develops code the most, or more accurately the people who are responsible for releasing or deploying that code, is the possibility that you might not have access to it within your software configuration management tool or version control system when you need it. Computers are fickle things; [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/19/how-accessible-is-your-source-code/' addthis:title='How Accessible is Your Source Code? '  ><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/2007/12/19/how-accessible-is-your-source-code/' addthis:title='How Accessible is Your Source Code? ' ><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 of the things that frightens anyone who develops code the most, or more accurately the people who are responsible for releasing or deploying that code, is the possibility that you might not have access to it within your <a href="http://www.accurev.com" target="_blank">software configuration management</a> tool or version control system when you need it. Computers are fickle things; unless you are prepared to spend fantastic amounts of money for a truly redundant hardware/software infrastructure, there is always the chance that your system could be inaccessible when you need it most. And this doesn&#8217;t even begin to address potential network outages.</p>
<p>AccuRev, because of the ease of backup and restore for one thing, and the always accessible locally resident Workspaces for another, is a great insurance policy against data loss and brings developer down-time to zero. But let&#8217;s say that one of those dreaded network outages or hard disk failures occurs exactly at the time when you need to pull the latest source over to your build system for a critical release. Or imagine any kind of similar roadblock you&#8217;ve run up against in your own environment. This is yet another area where AccuRev, with just a tiny bit of prep and foresight, can save you hours, if not days, of aggravation by ensuring that you always have access to your latest &#8220;buildable&#8221; code.</p>
<p>How does this happen? Well, consider first the AccuRev stream paradigm where &#8211; unlike branches &#8211; there is a well defined progression of code, from the high instability of a developer&#8217;s Workspace to the &#8220;always buildable&#8221; top-level release stream. You simply have to choose the stream that you would consider as your ideal location to retrieve &#8220;offline&#8221; code from. In the following StreamBrowser, I&#8217;ve chosen the top-level &#8220;Claims_Client&#8221; stream.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2007/12/offline_access_to_code.jpg" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/12/offline_access_to_code.jpg" alt="offline_code" width="400" height="200" title="How Accessible is Your Source Code?" /></a></p>
<p>Create an AccuRev reference tree based on your chosen stream. Define the location on disk where that reference tree should populate the code to. Then, use a trigger (we provide examples with exactly this functionality) to Update that reference tree anytime a Promotion happens into this stream. The end result is that you have a specific file-system location that is *guaranteed* to have the latest and greatest code from any given stream that you want. Also, this approach is optimized because it only has to transfer changes, not the entire source tree, and there is zero manual intervention required! So in the case where the network or SCM server goes down, no problem for you; your code is happily hanging out right where you need it to be.</p>
<p>Some organizations are much more tolerant of this kind of scenario than others. If so, can you think of other times or examples where this kind of functionality would be helpful to you?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/19/how-accessible-is-your-source-code/' addthis:title='How Accessible is Your Source Code? '  ><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/2007/12/19/how-accessible-is-your-source-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selecting and Adopting a New SCM Tool</title>
		<link>http://accurev.com/blog/2007/12/12/selecting-and-adopting-a-new-scm-tool/</link>
		<comments>http://accurev.com/blog/2007/12/12/selecting-and-adopting-a-new-scm-tool/#comments</comments>
		<pubDate>Wed, 12 Dec 2007 20:15:09 +0000</pubDate>
		<dc:creator>damonpoole</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM adoption]]></category>
		<category><![CDATA[SCM comparisons]]></category>
		<category><![CDATA[SCM system]]></category>
		<category><![CDATA[SCM tool]]></category>
		<category><![CDATA[selecting a SCM tool]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/12/12/selecting-and-adopting-a-new-scm-tool/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/12/selecting-and-adopting-a-new-scm-tool/' addthis:title='Selecting and Adopting a New SCM Tool ' ><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>by Damon Poole Comparing SCM Tools People often ask me &#8220;what is the best SCM tool&#8221; or &#8220;is there a comparison of SCM tools available.&#8221; I would say that generic comparisons of SCM tools are sort of like generic comparisons of cars. Somebody looking for something that is fast and doesn&#8217;t care about gas mileage [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/12/selecting-and-adopting-a-new-scm-tool/' addthis:title='Selecting and Adopting a New SCM Tool '  ><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/2007/12/12/selecting-and-adopting-a-new-scm-tool/' addthis:title='Selecting and Adopting a New SCM Tool ' ><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>by Damon Poole</p>
<h3>Comparing SCM Tools</h3>
<p class="MsoNormal">People often ask me &#8220;what is the best <a target="_blank" href="http://www.accurev.com/accurev.html">SCM tool</a>&#8221; or &#8220;is there a <a target="_blank" href="http://www.accurev.com/scm_comparisons.html">comparison of SCM tools</a> available.&#8221; I would say that generic comparisons of SCM tools are sort of like generic comparisons of cars. Somebody looking for something that is fast and doesn&#8217;t care about gas mileage probably wouldn&#8217;t think much of a Prius.</p>
<p>Currently, IMHO, the SCM market is not a commodity market where the products are generally about the same. There is a wide range in both pricing and functionality. So, you really have to know your requirements and the priority of those requirements. A good initial priority to figure out is: which is more important to the organization; price or return on investment? There&#8217;s no sense in looking at all of the tools on the market if there&#8217;s not enough budget.</p>
<h3>Determining Requirements and Building Consensus Among All Stakeholders</h3>
<p>Generally, a good way to acquire a new SCM tool is to start from a well defined set of requirements, create a shortlist of 3-5 candidates that seem close, take a closer look and narrow that down to 2, and then do a proof of concept on those 2 and pick the 1 that most closely meets your requirements.</p>
<p>Depending on the size of the development group and the size of the company, acquiring a new SCM tool can be an eye-opening experience. Finding a tool that meets your requirements is perhaps the easiest part of the process. Some of the harder parts are: figuring out who all of the stakeholders are, getting all stakeholders to consensus on the requirements, getting upper-management buy-in, and securing the budget for the purchase. Getting budget and requirements to match is generally the hardest part and typically involves writing some sort of business case to justify the purchase.</p>
<p>Here are some typical stakeholders: CEO, CFO, Purchasing Agent, Legal, VP of Engineering, Director of QA, key developers, and Release Engineering. Some of these may seem to have nothing to do with SCM, but they do get involved in large purchases that affect the whole company. It is better to make contact with all of these folks early to get the full scope of what is required to <a target="_blank" href="http://www.accurev.com/why-change-scm-systems.html">change SCM tools </a>so as not to get surprised later and potentially impact release schedules.</p>
<p>If you make a recommendation that fits the budget and best meets the other requirements, but there is still a big gap in the requirements, don&#8217;t despair! If you&#8217;ve involved all of the stakeholders and built consensus, you have a good chance of leveraging that gap to increase the budget.</p>
<h3>Start From High Level Use Cases</h3>
<p class="MsoNormal">When moving from one <a target="_blank" href="http://www.accurev.com/software-configuration-management-resources.htm">software configuration management</a> SCM system to another, it is often the case that people concentrate on “Which of the pains that I have in my current <a target="_blank" href="http://www.accurev.com/scm_comparisons.html">SCM system</a> will this new system alleviate?” This is certainly a valid question. However, it is also important to ask “What benefits will the new system bring that perhaps I haven’t considered?”</p>
<p class="MsoNormal">Another common question is: “Our old system is missing a certain feature to compensate for a certain problem that the system has. We’ve developed a work-around for the missing feature. Does your system have the feature that is missing in our current system?” If the new system doesn’t have the problem that the old system had, then the need for the feature is often eliminated.</p>
<p class="MsoNormal">A better way to compare SCM systems is to start from high level business use cases. There are many ways to implement business level use cases for software development. Some of the implementation choices include: components, streams, tasks, and branches. An example of a business level use case is: “There are different versions of software installed at different customer sites. A defect is reported by one of the customers. The defect needs to be fixed in the version that the customer has as well as all other versions which have that problem.” The implementation of this use case will be different in a component-based and a stream-based system for instance.</p>
<p class="MsoNormal">When changing from one SCM implementation to another, be sure to start from your business level requirements instead of mapping from your current implementation to a different implementation. The reason for this is that the high level use cases do not require a particular implementation; they can be implemented using a variety of methods. If you have currently implemented the use cases with components, it is unlikely that directly mapping this implementation into streams will be the same as starting from the uses cases and implementing with streams. For most use cases, it does not make sense to map the way they would be implemented in your current system into a your new SCM system. While it is possible to do it, the result can be difficult to set up, understand, maintain, and use. This sort of implementation will also generally make it more difficult to realize the potential of your new SCM system. In other words, you may end up with the drawbacks of both worlds and the benefits of neither. The most successful approach will be to implement the high level business requirements into your new SCM system.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/12/selecting-and-adopting-a-new-scm-tool/' addthis:title='Selecting and Adopting a New SCM Tool '  ><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/2007/12/12/selecting-and-adopting-a-new-scm-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse BIRT and AccuWork</title>
		<link>http://accurev.com/blog/2007/12/06/birt-and-accuwork/</link>
		<comments>http://accurev.com/blog/2007/12/06/birt-and-accuwork/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 21:00:42 +0000</pubDate>
		<dc:creator>jsherwood</dc:creator>
				<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[AccuWork]]></category>
		<category><![CDATA[BIRT]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse BIRT]]></category>
		<category><![CDATA[reporting tools]]></category>
		<category><![CDATA[reports]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/12/06/birt-and-accuwork/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/06/birt-and-accuwork/' addthis:title='Eclipse BIRT and AccuWork ' ><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 a developer I&#8217;ve found it necessary from time to time to generate reports, especially for internal consumption. Internal reports tend to be more adhoc than those presented to clients or non-technology managers, and therefore have less time devoted to their care and feeding (and cost). While I&#8217;ve used Crystal Reports and similar tools for [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/06/birt-and-accuwork/' addthis:title='Eclipse BIRT and AccuWork '  ><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/2007/12/06/birt-and-accuwork/' addthis:title='Eclipse BIRT and AccuWork ' ><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 a developer I&#8217;ve found it necessary from time to time to generate reports, especially for internal consumption. Internal reports tend to be more adhoc than those presented to clients or non-technology managers, and therefore have less time devoted to their care and feeding (and cost). While I&#8217;ve used Crystal Reports and similar tools for external reporting, most development reporting has consisted of spreadsheets and any charts that they generate in the ten minutes I have before a review meeting.</p>
<p>Always wanting to explore various technologies, I took the opportunity to try my hand at using the BIRT (Business Intelligence and Reporting Tools) implementation in Eclipse. If you&#8217;re interested in finding out specifics about this plugin, you can find it on the <a target="_blank" href="http://www.eclipse.org/birt/phoenix/">Eclipse web site</a>. While I find the tool to have a higher learning curve than I would have expected, it shows promise for the future.</p>
<p>There are a number of data points that we generate as part of our development, and capturing all of them in a report format proves to be a surprisingly complex task. It is a task that gets little time and investment, as development goals are not report oriented, they are product delivery oriented. I&#8217;ve attempted to capture some of the more mundane details, and set aside future report details that require a larger effort. I&#8217;ll be describing what I&#8217;ve done to create the reports, but not really discuss about why or how to interpret the data. A discussion of some other data and what you can do with it can also be found <a target="_blank" href="http://blog.accurev.com/2007/11/30/arming-software-development-project-managers-with-real-data/trackback/">here</a>.</p>
<p>Here at AccuRev our projects are issue oriented. We use <a target="_blank" href="http://www.accurev.com/issue-tracking.html">AccuWork</a>, which is our own tightly integrated <a target="_blank" href="http://www.accurev.com/accuworkflow.html">issue management </a>environment.</p>
<p>Given that, and the goals for the reporting that I defined, I had to find a way for AccuWork to communicate information that BIRT could interpret. In the past using Excel, I&#8217;d simply query issues in AccuWork and export the data into an HTML table that Excel could then read in and, with the help of pivot tables, generate the desired reports. The basic information reported included:</p>
<ol>
<li>Number of issues per developer</li>
<li>Count of issues by priority per developer</li>
<li>Distribution of issue resolution (Whether issues are duplicates, regressions, cancelled, deferred, etc)</li>
<li>Distribution of issue severity (Whether issues are crashes, major implementations, cosmetic, etc)</li>
<li>Weekday issue completed per developer</li>
<li>Weekly Find rate vs. Fix rate</li>
<li>Weekly average number of days to complete issues</li>
</ol>
<p>Using this information, it is easy to see projects taper off to closure, as well gather some ideas as to how the developer workload was being distributed. Some developers cringe at this information, but I believe as long as it is used positively and to evenly distribute work, then everyone gains from reviewing this information.</p>
<p>With these same charts in mind, I loaded up my version of Eclipse, installed BIRT and its associated plugins, and started to figure out how to get the data into the tool.<span id="more-86"></span></p>
<p>BIRT provides a number of different data sources, from file based to database, to XML. While I would like a little more flexibility in the XML source, like the ability to preprocess data before usage, it provided me with the means to bring in issues from AccuWork, with a little external help. The first thing I needed to do was get the information from AccuWork.</p>
<p>I used &#8216;accurev xml -l getActiveIssues.xml&#8217;. The getActiveIssues.xml file I used looks like this:</p>
<blockquote>
<blockquote></blockquote>
</blockquote>
<p>&lt;acRequest&gt;</p>
<blockquote><p>&lt;issuelist show_active = &#8220;true&#8221;&gt;</p>
<blockquote><p>&lt;user&gt;myUser&lt;/user&gt;<br />
&lt;depot&gt;myDepot&lt;/depot&gt;<br />
&lt;stream1&gt;myProjectStream&lt;/stream1&gt;<br />
&lt;issues&gt;&lt;/issues&gt;</p></blockquote>
<p>&lt;/issuelist&gt;</p></blockquote>
<p>&lt;/acRequest&gt;</p>
<p>This tells AccuWork to return the active issues in the depot for the given stream. This will return a full description of the issues, with all the fields populated. This is where I would have liked a preprocessor. Instead I massaged the data myself, removing fields like description. It wasn&#8217;t necessary, but given the number of issues fixed it can improve performance when you generate your report.</p>
<p>With this information I was able to generate charts to answer the first four questions. Now I was left scratching my head on the next set, so I went back to the spreadsheet to see how I had solved this problem. I realized after importing the data into Excel, I had a number of columns that were computed values. Here BIRT shows some flexiblity, with its own computed columns.</p>
<p>I added the &lt;dateClosed&gt; field that is part of the issue description in AccuWork to the column mappings in BIRT, and created a computed column and used the following as the formula:</p>
<p>( row["dateClosed"] &#8211; ( row["dateClosed"]%(60*60*24*7) ) ) / (60*60*24*7)</p>
<p>AccuRev communicates information in seconds, so using this calculation I can compute the number of weeks since Jan 1, 1970 when a particular issue was closed. I did the same for dateSubmitted and dateCompleted. Finally, I created a computed column to determine the weekday completed using this formula:</p>
<p>(new String(&#8220;SunMonTueWedThuFriSat&#8221;).substr( <strong>(new Date(row["dateCompleted"]*1000)).getDay()</strong> *3, 3 ) )</p>
<p>This one is a little messy, so let&#8217;s break it down. Using the bolded section I compute the day of the week as a numeric value (zero based, starting with zero as Sunday). I then used this value to determine the substring as an offset in a fixed length string. Not so bad, and avoided the dreaded mid-processor (something sitting between AccuWork and BIRT) that I was afraid I would have to write.</p>
<p>So, using a single query from AccuWork, and computed columns in BIRT, I now have the data I need to generate the 7 charts I described earlier. Next time I&#8217;ll talk about what I had to do to get the information to chart in BIRT, and show some of the output.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/12/06/birt-and-accuwork/' addthis:title='Eclipse BIRT and AccuWork '  ><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/2007/12/06/birt-and-accuwork/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Arming Software Development Project Managers with Real Data</title>
		<link>http://accurev.com/blog/2007/11/30/arming-software-development-project-managers-with-real-data/</link>
		<comments>http://accurev.com/blog/2007/11/30/arming-software-development-project-managers-with-real-data/#comments</comments>
		<pubDate>Fri, 30 Nov 2007 18:30:08 +0000</pubDate>
		<dc:creator>lorne cooper</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[project manager]]></category>
		<category><![CDATA[reports]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/11/30/arming-software-development-project-managers-with-real-data/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/30/arming-software-development-project-managers-with-real-data/' addthis:title='Arming Software Development Project Managers with Real Data ' ><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>Managing software development is tough enough as it is. Managers take responsibility for the results their teams deliver. They’re on the hook for hitting schedules, delivering quality, and meeting customer requirements. Worst of all, if they’re saddled with slacker engineers, they still have to get the work done, and done right. Tools are needed to [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/30/arming-software-development-project-managers-with-real-data/' addthis:title='Arming Software Development Project Managers with Real Data '  ><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/2007/11/30/arming-software-development-project-managers-with-real-data/' addthis:title='Arming Software Development Project Managers with Real Data ' ><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><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-1.gif" title="lorne-pic-1.gif"></a><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-1.gif" title="lorne-pic-1.gif"></a><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-2.gif" title="lorne-pic-2.gif"></a><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-2.gif" title="lorne-pic-2.gif"></a><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-2.gif" title="lorne-pic-2.gif"></a></p>
<p class="MsoNormal">Managing software development is tough enough as it is.<span> </span>Managers take responsibility for the results their teams deliver.<span> </span>They’re on the hook for hitting schedules, delivering quality, and meeting customer requirements.<span> </span>Worst of all, if they’re saddled with slacker engineers, they still have to get the work done, and done right.</p>
<p class="MsoNormal">Tools are needed to help managers stay on top of their projects and find problems when there’s still time to fix them, before the schedule pressures explode.<span> </span>Project management tools are valuable, but their schedules only reflect the quality of the information that went into making them.<span> </span>Garbage in, garbage out.</p>
<p class="MsoNormal">The SCM system is the source of the information that drives smart decisions. Here are four sources of real data that can come out of any quality <a href="http://www.accurev.com/quotes.html" target="_blank">SCM system</a>.<span> </span>I’ll illustrate with AccuRev because, well, because it’s the best.</p>
<ol>
<li class="MsoNormal">Bug Arrival Rate</li>
<li class="MsoNormal">Churn rate</li>
<li class="MsoNormal">Task Estimate accuracy</li>
<li class="MsoNormal">Complexity Creep</li>
</ol>
<p class="MsoNormal">1. Bug Arrival Rate</p>
<p class="MsoNormal">A key graph in any project manager’s arsenal compares bugs reported over time against bugs closed over time.<span> </span>Here we use AccuRev’s AccuWork <a href="http://www.accurev.com/issue-tracking.html" target="_blank">issue tracking </a>tool to store all issues, whether reported by QA, sent in from customer service’s CRM, or entered by the powers that be as customer requirements.<span> </span>Since our iterations are four weeks long, we use the week as a reporting time period.<span> </span>Some <a href="http://www.accurev.com/customers.html" target="_blank">AccuRev customers</a> use days.<span> </span></p>
<p class="MsoNormal">In AccuWork, queries are easy to create, and we get a report from AccuWork in XML covering all the issues opened or verified [foot note: In our terminology, developers “close” issues, and QA “verifies” them.<span> </span>Other companies have developers “submit” issues and QA “close” them] against a particular iteration.<span> </span></p>
<p class="MsoNormal">The XML slides right into Microsoft’s excellent Excel 2003.<span> </span>I use PivotTables and Excel graphs for all my reports.<span> </span>Others might leverage their superior Perl skills.</p>
<p class="MsoNormal">Here, we add a “week” field based on the AccuRev time field.<span> </span></p>
<p><span><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne_pic_final.gif" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne_pic_final.gif" alt="lorne pic final Arming Software Development Project Managers with Real Data" style="width:410px;height:351px" height="397" width="520" title="Arming Software Development Project Managers with Real Data" /></a></span></p>
<p>2.Churn Rate<span> </span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></p>
<p class="MsoNormal">A key metric for quality is how often different parts of the code base have to be modified to address issues.<span> </span>Here, the AccuRev code repository has all the information we need.<span> </span>I use the AccuRev Hist command</p>
<p style="text-indent:0.5in" class="MsoNormal">accurev hist –a –s “release candidate stream” –fx –t “2006/1/8 – 2006/1/1”</p>
<p class="MsoNormal">to get an XML file of all the “Promotes” (sort of like “check-ins”) to a release candidate stream within a time range.<span> </span>Some use a separate “hist” command for each release period.<span> </span>Personally, I take a big time range and then use Microsoft’s Excel 2003’s XML file support to slice and dice into tasty chucks.<span> </span>I tried it once with Excel 2007.<span> </span>Once.</p>
<p class="MsoNormal">Since we component-ize our code base based on directories, the “path” field is particularly interesting, as directories can be as significant as individual files.</p>
<p class="MsoNormal">Loading the XML file into Excel, my macro deletes some unneeded columns and creates a Pivot Table like the following:</p>
<p class="MsoNormal"><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-2.gif" title="lorne-pic-2.gif"></a></p>
<p class="MsoNormal"><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne_pic_2_final.gif" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne_pic_2_final.gif" alt="lorne pic 2 final Arming Software Development Project Managers with Real Data"  title="Arming Software Development Project Managers with Real Data" /></a></p>
<p class="MsoNormal">Here I’ve filtered the data to not include the binary files, and used the Excel Pivot table’s advanced feature to show the top ten in descending order.<span> </span>AccuRev.c takes a beating every release but it isn’t significant.<span> </span>Server/diff.c and Client/stat.c seem to be at the center of a lot of changes that release, and are probably candidates for some <a href="http://www.accurev.com/whitepaper/accurev_advantage.htm" target="_blank">code reviews</a>.</p>
<p class="MsoNormal">3. Task Estimate Accuracy</p>
<p class="MsoNormal">Along with dates of issue opens and issue closes, we have chosen to include a user field for the original estimate of the length of time it will take to complete the issue.<span> </span>That gives us something to compare to when we “close” an issue and send it to QA, and an opportunity to correlate against the length of time before an issue gets verified.</p>
<p class="MsoNormal">As a best-practice, we try to normalize issues to a couple of days in length.<span> </span>Longer and you haven’t really figured out what needs to be done.<span> </span>Shorter and you’re liable to strangle in your own spit, a management practice I can’t recommend having seen the results.</p>
<p class="MsoNormal">We get this data out of AccuWork again, and can slice it by group, release, or even individual developer.<span> </span>This is a quick way to quantify the subjective feel we all have for who is slow, who’s fast, and who’s clueless.<span> </span>Here’s a scatter plot for a group.<span> </span>Note that they are generally on the high side of their estimates, and that they haven’t done a very good job normalizing tasks to 2-3 days:</p>
<p class="MsoNormal"><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-3-final.gif" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/11/lorne-pic-3-final.gif" alt="lorne pic 3 final Arming Software Development Project Managers with Real Data" height="290" width="430" title="Arming Software Development Project Managers with Real Data" /></a></p>
<p class="MsoNormal">4. Complexity Creep</p>
<p class="MsoNormal">As software gets modified, and especially when managers become conscious of the amount of time taken to fix a bug or implement a feature, there is a tendency for developers to make the code base less maintainable.<span> </span>There are some metrics for code complexity that can benefit the manager when trying to assess when it is time to refactor.<span> </span>A frequently used metric is <a href="http://en.wikipedia.org/wiki/Cyclomatic_complexity" target="_blank">cyclomatic code complexity</a>.<span> </span></p>
<p class="MsoNormal">While we don’t do any code complexity measurements here, some of our larger customers do.<span> </span>This is easy to collect using a trigger on changes being sent to a release candidate (or QA candidate) stream, where the trigger calls the analysis tool and puts the results into a tab-separated file for later plotting from Excel.</p>
<p class="MsoNormal">A simple (Perl) implementation of the server side “server_post_promote” trigger creating a file “complexity.txt” looks like:</p>
<p class="MsoNormal">open COMPOUT, &#8220;&gt;&gt;complexity.txt&#8221; or die &#8220;Can&#8217;t open complexity.txt&#8221;;<br />
if ($stream eq &#8220;acmeProj_QA&#8221;) {<br />
$complexity = complexity($stream, $version, $workspaceDir, $filePath);<br />
print COMPOUT “$user\t $date\t $transaction\t $stream\t $version\t $filePath\t $complexity\t $issueNum\n&#8221;;<br />
}<br />
close COMPOUT;
</p>
<p class="MsoNormal">Together, these reports provide a good mix of data around schedule, estimation and code quality, giving our beleaguered project manager a pretty nice set of armor.</p>
<p class="MsoNormal">Please post your favorite management reports, even if you don’t (yet!) use AccuRev.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/30/arming-software-development-project-managers-with-real-data/' addthis:title='Arming Software Development Project Managers with Real Data '  ><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/2007/11/30/arming-software-development-project-managers-with-real-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AccuRev 4.6 preview nuggets &#8211; redux</title>
		<link>http://accurev.com/blog/2007/11/28/accurev-46-preview-nuggets-redux/</link>
		<comments>http://accurev.com/blog/2007/11/28/accurev-46-preview-nuggets-redux/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 21:00:34 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[AccuRev 4.6]]></category>
		<category><![CDATA[annotate]]></category>
		<category><![CDATA[history view]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[VersionSlider]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/11/28/accurev-46-preview-nuggets-redux/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/28/accurev-46-preview-nuggets-redux/' addthis:title='AccuRev 4.6 preview nuggets &#8211; redux ' ><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>AccuRev is tremendous when it comes to managing the Software Development Process; you have complete visual control over how code will flow and progress through the stages you feel necessary as an organization.  This kind of capability generally appeals to folks at the executive level, or release and build engineers, or project management. We haven&#8217;t [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/28/accurev-46-preview-nuggets-redux/' addthis:title='AccuRev 4.6 preview nuggets &#8211; redux '  ><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/2007/11/28/accurev-46-preview-nuggets-redux/' addthis:title='AccuRev 4.6 preview nuggets &#8211; redux ' ><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>AccuRev is tremendous when it comes to managing the Software Development Process; you have complete visual control over how code will flow and progress through the stages you feel necessary as an organization.  This kind of capability generally appeals to folks at the executive level, or release and build engineers, or project management.</p>
<p>We haven&#8217;t forgotten about the developer though!  In 4.6 we&#8217;ve introduced the &#8220;version slider,&#8221; which allows  for a complete visual history of any element under source control, along with complete groupable annotation.  Quickly drag the slider to any previous point in time and you&#8217;re able to see what changes encapsulated that version, who made them, and group by various fields. You may have seen a similar screen capture to the one below from AccuRev in the pages of SD Times recently? Here&#8217;s an article on <a href="http://www.sdtimes.com/article/special-20071101-01.html" target="_blank">change management</a> you may find of interest there as well.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/46_preview_slider.jpg" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/11/46_preview_slider.jpg" alt="4.6 preview slider" width="550" height="200" title="AccuRev 4.6 preview nuggets   redux" /></a></p>
<p>I&#8217;ve never been a fan of the expression &#8220;blame game,&#8221; but for the detectives out there, this puts the clues to the Who, What, When, Where, and maybe even Why (if comments are used appropriately) of code change at your literal fingertips&#8230;</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/28/accurev-46-preview-nuggets-redux/' addthis:title='AccuRev 4.6 preview nuggets &#8211; redux '  ><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/2007/11/28/accurev-46-preview-nuggets-redux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

