<?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; issue tracking</title>
	<atom:link href="http://accurev.com/blog/tag/issue-tracking/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>Something&#8217;s A-Twitter in My Backing Stream</title>
		<link>http://accurev.com/blog/2010/06/22/twitter-backing-stream/</link>
		<comments>http://accurev.com/blog/2010/06/22/twitter-backing-stream/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 13:49:02 +0000</pubDate>
		<dc:creator>amonty</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[agile team]]></category>
		<category><![CDATA[backing stream]]></category>
		<category><![CDATA[change packages]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[promote]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[trigger]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=1917</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/06/22/twitter-backing-stream/' addthis:title='Something&#8217;s A-Twitter in My Backing Stream ' ><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 cornerstones of any successful organization is communication. On Agile teams, we often meet to share information, update one another on progress, to reflect on that progress and discuss how the process can be improved. These interactions, be they stand-up or retrospective meetings, provide this information at regular intervals. But what if you [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/06/22/twitter-backing-stream/' addthis:title='Something&#8217;s A-Twitter in My Backing Stream '  ><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/2010/06/22/twitter-backing-stream/' addthis:title='Something&#8217;s A-Twitter in My Backing Stream ' ><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 cornerstones of any successful organization is communication. On Agile teams, we often meet to share information, update one another on progress, to reflect on that progress and discuss how the process can be improved. These interactions, be they stand-up or retrospective meetings, provide this information at regular intervals. But what if you need &#8220;real-time&#8221;  information sharing?</p>
<p>Consider the concept of &#8220;one piece flow&#8221;, often treated as the holy grail of engineering process purists. Lean/Kanban fan boys live to talk about this at conferences, and in the isle outside my cube. The idea is that a single &#8220;workpiece&#8221; at a time moves through the workflow. In the software development process, this is rarely limited to a single item, but instead is throttled by WIP limits to minimize the bottlenecks in the process. For example, the number of items worked on by developers is limited so that the count of items designated &#8220;ready for test&#8221; is kept at a manageable level. As a tester on an agile team, I&#8217;d like to know as soon as an item is moved from the &#8220;wip/development&#8221; phase to the &#8220;test/validation&#8221; phase.</p>
<p>Consider the following basic stream structure -</p>
<p style="text-align: center;"><img class="size-medium wp-image-1931 aligncenter" title="Simple stream structure" src="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-300x171.png" alt="Simple Stream Structure" width="300" height="171" /></p>
<p>In an ideal model, testers would be notified as soon as an issue is promoted from the <em>WIP</em> stream to the <em>Validation</em> stream. This model assumes that the project is utilizing <a href="http://www.accurev.com/" target="_blank">AccuRev</a> <em>change packages</em> to track work items as issues. Having a distinct stream for validation purposes simplifies the job of the tester. All issues that exist in this stream have been unit tested by developers, passed basic regression tests, and are ready to be explored, validated, and promoted to the next stage in the workflow.</p>
<p>So, how can this level of communication be achieved? <strong>AccuRev triggers!</strong> The rest of this post will demonstrate how the <em>server post-promote</em> trigger could be used to provide updates using arguably the king of &#8220;What&#8217;s Happening?&#8221; &#8211; <a href="http://twitter.com">Twitter</a>.</p>
<h2>Why use Twitter in your Backing Stream?</h2>
<p>Why not? Sure, you could use e-mail. But who wants more e-mail? Tweet it, and let them aggregate the information for you. Team members can follow the account, or not. Pointy-haired managers that dream of pie charts and love visibility can subscribe to an RSS feed, that you don&#8217;t have to manage. Lastly, if you&#8217;re an agilista, you&#8217;re already hip and trendy, (and let&#8217;s face it, you probably  already tweeted about the awesome presentation on Lean that you saw at the latest Agile conference).</p>
<h2>The Server Post-Promote Trigger</h2>
<p>I am not going to go into the gory details of the <a href="http://www.accurev.com/developer-training-advanced.html" target="_blank">AccuRev trigger system</a>. Here&#8217;s what you need to know.</p>
<ol>
<li>The trigger can be written in whatever language you like. In this example, I use Ruby.</li>
<li>The trigger needs to be registered with the AccuRev server, and associated with the depot for your software project.</li>
</ol>
<p>For this exercise, I wrote a quick script called <em>tweet_post_promote.rb</em>. The first step is to register this script with AccuRev.</p>
<p><em>&gt;accurev mktrig -p SoftwareProject server-post-promote-trig ~/dev/ruby/tweet_post_promote.rb</em></p>
<p>Once registered, the trigger will now fire for all promotes in the SoftwareProject depot. Let&#8217;s take a look at the contents of the script.</p>
<p><em>#!/usr/bin/env ruby</em></p>
<p><em>require &#8216;rubygems&#8217;</em></p>
<p><em>require &#8216;crack&#8217;</em></p>
<p><em>require &#8216;twitter&#8217;</em></p>
<p><em>ACCUREV_DIR = &#8220;/sandbox/amonty/accurev/&#8221;</em></p>
<p><em>ACCUREV_STORAGE = &#8220;#{ACCUREV_DIR}storage/&#8221;</em></p>
<p><em>ACCUREV_SITE_SLICE = &#8220;#{ACCUREV_STORAGE}site_slice/&#8221;</em></p>
<p><em>USER = &#8216;ValidationBot&#8217;</em></p>
<p><em>PASS = &#8216;password&#8217;</em></p>
<p><em><br />
</em></p>
<p><em>def load_trigger_data(file)</em></p>
<p style="padding-left: 30px;"><em>xml = &#8221;</em></p>
<p style="padding-left: 30px;"><em>File.open(&#8220;#{ACCUREV_SITE_SLICE}#{file}&#8221;) do |f|</em></p>
<p style="padding-left: 60px;"><em>xml = f.read</em></p>
<p style="padding-left: 30px;"><em>end</em></p>
<p style="padding-left: 30px;"><em>Crack::XML.parse(xml)</em></p>
<p><em>end</em></p>
<p><em><br />
</em></p>
<p><em>def twitter_get_auth(user, pass)</em></p>
<p style="padding-left: 30px;"><em>httpauth = Twitter::HTTPAuth.new(user, pass)</em></p>
<p style="padding-left: 30px;"><em>Twitter::Base.new(httpauth)</em></p>
<p><em>end</em></p>
<p><em><br />
</em></p>
<p><em>def main()</em></p>
<p style="padding-left: 30px;"><em>hash = load_trigger_data ARGV[1]</em></p>
<p style="padding-left: 30px;"><em>if hash["triggerInput"]["stream1"] == &#8220;Validation&#8221; then</em></p>
<p style="padding-left: 60px;"><em>changePackageIssue = hash["triggerInput"]["changePackages"]["changePackageID"]</em></p>
<p style="padding-left: 60px;"><em>update_string = &#8220;Issue #{changePackageIssue} just promoted to stream #{hash["triggerInput"]["stream1"]}&#8221;</em></p>
<p style="padding-left: 60px;"><em>twitter = twitter_get_auth(USER, PASS)</em></p>
<p style="padding-left: 60px;"><em>twitter.update update_string</em></p>
<p style="padding-left: 30px;"><em>end</em></p>
<p><em>end</em></p>
<p><em>main if __FILE__ == $0</em></p>
<p>This script is very simple. It makes use of the Ruby gems crack and Twitter. Essentially, the script takes the XML trigger file (provided as <em>ARGV[1]</em>) and loads it into a hash. Then the script checks to see if the stream being promoted to is our <em>Validation</em> stream. If so, it uses the twitter gem to update the status on our <em>ValidationBot</em> account.</p>
<p style="text-align: center;"><img class="size-medium wp-image-1945  aligncenter" title="Something's a-Twitter in my Backing Stream" src="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-2-300x43.png" alt="Something's a-Twitter in my backing stream" width="300" height="43" /></p>
<p>A more useful example is to provide a link to the AccuRev Web UI Issue screen.</p>
<p style="text-align: center;"><a href="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-3.png"><img class="size-medium wp-image-1949  aligncenter" title="Something's a-Twitter in my Backing Stream" src="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-3-300x80.png" alt="Something's a-Twitter in My Backing Stream" width="300" height="80" /></a></p>
<p>This way, anyone subscribing to the feed can click on the link and open the issue in the AccuRev Web UI.</p>
<p style="text-align: center;"><a href="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-4.png"><img class="size-medium wp-image-1950  aligncenter" title="Something's a-Twitter in my Backing Stream- anyone subscribing to the feed can click on the link and open the issue in the AccuRev Web UI." src="http://www.accurev.com/blog/wp-content/uploads/2010/06/Screenshot-4-300x249.png" alt="Something's A-Twitter in My Backing Stream" width="300" height="249" /></a></p>
<p>This is a small example of how AccuRev triggers can be used to increase communication on your team. Testers can follow the <em>ValidationBot</em> account and be notified via their favorite Twitter client whenever an issue is promoted to the validation stream and they need to begin work on it. This could obviously be extended to include additional information (actual file changes, for example). That is, of course, if you can fit it into 140 characters. <img src='http://accurev.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="Somethings A Twitter in My Backing Stream" /> </p>
<p>For more information on AccuRev triggers, please see the <a href="http://www.accurev.com/download/docs/4.7.4b_books/AccuRev_4_7_Admin.pdf">Administrator&#8217;s Guide</a>.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/06/22/twitter-backing-stream/' addthis:title='Something&#8217;s A-Twitter in My Backing Stream '  ><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/2010/06/22/twitter-backing-stream/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Case: Fixing the Broken Build</title>
		<link>http://accurev.com/blog/2008/11/04/use-case-fixing-the-broken-build/</link>
		<comments>http://accurev.com/blog/2008/11/04/use-case-fixing-the-broken-build/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 13:39:37 +0000</pubDate>
		<dc:creator>rmohr</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[broken builds]]></category>
		<category><![CDATA[change packages]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[private workspaces]]></category>
		<category><![CDATA[software development process]]></category>
		<category><![CDATA[time-based stream]]></category>
		<category><![CDATA[unit test]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=414</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/04/use-case-fixing-the-broken-build/' addthis:title='Use Case: Fixing the Broken Build ' ><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 Rob Mohr, AccuRev In one of many travels and customer visits, I came across a very cool way that AccuRev was helping to improve the way development teams do their work. To be more specific, this group was using Change Packages integrated with the JIRA Issue Tracking system to manage changes across their various product [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/04/use-case-fixing-the-broken-build/' addthis:title='Use Case: Fixing the Broken Build '  ><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/11/04/use-case-fixing-the-broken-build/' addthis:title='Use Case: Fixing the Broken Build ' ><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><strong>by Rob Mohr, AccuRev</strong></p>
<p>In one of many travels and customer visits, I came across a very cool way that AccuRev was helping to improve the way development teams do their work. To be more specific, this group was using <a href="http://www.accurev.com/change-packages.html" target="_blank">Change Packages</a> integrated with the <a href="http://www.accurev.com/accubridge-jira.html" target="_blank">JIRA</a> Issue Tracking system to manage changes across their various product releases. They also used CruiseControl for <a href="http://www.accurev.com/continuous-integration.html" target="_blank">continuous integration</a> that would kick off nightly builds and notify the team with the results of the build.</p>
<p>From what they told me, the success of builds has significantly improved since they started using AccuRev because of the ability for the developers to work in their own <a href="http://www.accurev.com/private-versioning.html" target="_blank">private workspaces</a> where they can integrate and unit test before promoting their changes for the rest of the team. Although broken builds are, for the most part, a thing of the past, they will still occur once in a while and need to be fixed ASAP.</p>
<p><strong>Here is how they do it with AccuRev</strong></p>
<p>The <a href="http://www.accurev.com/streambrowser.html" target="_blank">stream structure</a> below is a simpler view of their overall <a href="http://www.accurev.com/product-overview.html" target="_blank">software development process</a>, but will be sufficient to show the use case.</p>
<p><strong>Promoting to the Integration Stream</strong></p>
<p>To start, the 4 developers below have made changes in their workspaces that will be promoted and associated to 4 different issues.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/b1.jpg" target="_blank"><img class="alignnone size-full wp-image-415" title="b1" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/b1.jpg" alt="b1 Use Case: Fixing the Broken Build" width="449" height="156" /></a></p>
<p>As you can see below, the integration stream (EntSoft_Client_Int) is “aware” of which issues are active in the stream. These are the new “change packages” introduced in the stream to be included in the next nightly build.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/2-show-issues.jpg" target="_blank"><img class="alignnone size-full wp-image-416" title="2-show-issues" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/2-show-issues.jpg" alt="2 show issues Use Case: Fixing the Broken Build" width="450" height="108" /></a></p>
<p><strong>Build Fails in the Integration Stream</strong></p>
<p>The next morning, the team is notified that last nights build failed via an email notification from CruiseControl. They have also scripted CruiseControl to automatically enable a time based stream called the “Temp_Fix_Build” stream and assign the appropriate transaction number to rollback the change packages from last night.</p>
<p><strong><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/b31.jpg" target="_blank"><img class="alignnone size-full wp-image-420" title="b31" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/b31.jpg" alt="b31 Use Case: Fixing the Broken Build" width="450" height="182" /></a></strong></p>
<p><strong>Assign the Developer to Fix the Build</strong></p>
<p>One of the developers creates a workspace on the Temp_Fix_Build and “change palettes” over each change package one at a time.<span>  </span>This gives them the ability to mix and match change packages together to determine which one of them is the problem.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/b4.jpg" target="_blank"><img class="alignnone size-full wp-image-418" title="b4" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/b4.jpg" alt="b4 Use Case: Fixing the Broken Build" width="450" height="184" /></a></p>
<p><strong>Problem Solved</strong></p>
<p>After the culprit is fixed, the repaired change package(s) are promoted back into the integration stream for all to share.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/b5.jpg" target="_blank"><img class="alignnone size-full wp-image-419" title="b5" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/b5.jpg" alt="b5 Use Case: Fixing the Broken Build" width="450" height="184" /></a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/04/use-case-fixing-the-broken-build/' addthis:title='Use Case: Fixing the Broken Build '  ><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/11/04/use-case-fixing-the-broken-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Requirements Traceability with AccuRev and Rally</title>
		<link>http://accurev.com/blog/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/</link>
		<comments>http://accurev.com/blog/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 17:35:24 +0000</pubDate>
		<dc:creator>matthew d. laudato</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[agile project management]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[Rally]]></category>
		<category><![CDATA[requirements traceability]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=208</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/' addthis:title='Agile Requirements Traceability with AccuRev and Rally ' ><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>Today, AccuRev and Rally announced our technology partnership. You can read the press release here. Since I was part of the engineering team that did the initial proof-of-concept integration between AccuRev and Rally, I thought I&#8217;d spend few moments writing about the integration and how it helps customers connect requirements managed in Rally with code [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/' addthis:title='Agile Requirements Traceability with AccuRev and Rally '  ><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/06/11/agile-requirements-traceability-with-accurev-and-rally/' addthis:title='Agile Requirements Traceability with AccuRev and Rally ' ><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>Today, <a title="AccuRev Home Page" href="http://www.accurev.com" target="_blank">AccuRev</a> and <a title="Rally Home Page" href="http://www.rallydev.com/" target="_blank">Rally</a> announced our technology partnership. You can read the press release <a title="AccuRev-Rally Press Release" href="http://www.accurev.com/press-releases/061108-accurev-rally-agile-partnership.html" target="_blank">here</a>. Since I was part of the engineering team that did the initial proof-of-concept integration between AccuRev and Rally, I thought I&#8217;d spend few moments writing about the integration and how it helps customers connect requirements managed in Rally with code changes managed in AccuRev.</p>
<p>First, for those of you who prefer the movie to the book, you can view a short video demonstration that I recorded <a title="AccuRev-Rally Video Demonstration" href="http://www.accurev.com/virtualbooth/Rally/AccuRev-Rally-Demo.html" target="_blank">here</a>. It highlights the main functionality of the integration.</p>
<p>Now to the details. Rally provides agile project management, including story and defect tracking, to assist customers in managing the rapidly changing flow of requirements and issues that are common in Agile development processes. AccuRev provides innovative stream-based SCM and integrated issue tracking to enable software process automation within the SCM tool. The integration ties AccuRev and Rally together to tighten the loop between requirements and defects, and the code changes that developers perform in order to satisfy those requirements or fix the defects.</p>
<p>The integration, written in Ruby and Perl, consists of three parts.</p>
<p>1. The integration queries AccuWork, the integrated issue tracking system that is available with AccuRev, for all &#8217;New&#8217; defects. It then transfers these defects into Rally, and makes an annotation in a custom Rally field called &#8216;AccuWork&#8217;. This field stores the AccuWork issue ID number.</p>
<p>2. When developers working in AccuRev make a code change, they will promote that code to an AccuWork issue, and place the ID of the Rally defect (created in the first part of the integration) in the promote comment. The AccuRev server_post_promote trigger (written in Perl) then fires and executes another piece of Ruby code that parses the promote transaction and sends relevant information about the code change to the Rally defect specified in the promote comment. This information is entered into Rally automaticaly and shows up as a &#8216;Discussion&#8217; entry on the defect. Currently the integration posts the names and version identifiers of the AccuRev files that changed, the user id of the developer who did the change, and the timestamp of the change.</p>
<p>3. Finally, when a developer or Product Owner using Rally sees the code change, they can set the status of the defect to &#8216;Fixed&#8217;. Ruby code can then be run automatically that looks for all &#8216;Fixed&#8217; issues in Rally, and changes their status to &#8216;Fixed&#8217; in AccuWork. It does this by looking for the custom field &#8216;AccuWork&#8217; created in the first part of the integration, extracting the issue ID number, and formulating an update XML message to AccuWork instructing AccuWork to update the specified issue.</p>
<p>That&#8217;s pretty much it. Working in Ruby and using Rally&#8217;s Ruby REST API was very straight-forward, as was working with the AccuRev XML API for querying and updating AccuWork. The end result is an early stage integration that provides basic requirements traceability between issues in AccuWork and Rally, and the coding activities of developers. I hope that if anyone is interested they&#8217;ll view the video and let us know what other features they&#8217;d like to see, so we can add them to our backlog and to future iterations of this integration in engineering.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/' addthis:title='Agile Requirements Traceability with AccuRev and Rally '  ><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/06/11/agile-requirements-traceability-with-accurev-and-rally/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Why Use AccuRev for Document Management?</title>
		<link>http://accurev.com/blog/2008/05/08/why-use-accurev-for-document-management/</link>
		<comments>http://accurev.com/blog/2008/05/08/why-use-accurev-for-document-management/#comments</comments>
		<pubDate>Thu, 08 May 2008 15:57:11 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[AccuRev document management]]></category>
		<category><![CDATA[Document Management]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[process-centric SCM]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=182</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/08/why-use-accurev-for-document-management/' addthis:title='Why Use AccuRev for Document 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>Let&#8217;s face it, process-centric SCM is not just about the process, code and issue tracking, it&#8217;s also about document management. Simply storing documents in a shared network space is no longer sufficient; documents related to a product release need to be versioned and tracked. We&#8217;re talking about a wide range of documents here &#8212; UML [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/08/why-use-accurev-for-document-management/' addthis:title='Why Use AccuRev for Document 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/2008/05/08/why-use-accurev-for-document-management/' addthis:title='Why Use AccuRev for Document 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><a href="http://www.accurev.com/blog/wp-content/uploads/2008/05/doc-management11.jpg"><img class="alignleft size-medium wp-image-197" src="http://www.accurev.com/blog/wp-content/uploads/2008/05/doc-management11.jpg?w=137" alt=" Why Use AccuRev for Document Management?" width="137" height="137" title="Why Use AccuRev for Document Management?" /></a>Let&#8217;s face it, <a href="http://www.accurev.com/accurev.html" target="_blank">process-centric SCM</a> is not just about the process, code and <a href="http://www.accurev.com/issue-tracking.html" target="_blank">issue tracking</a>, it&#8217;s also about document management. Simply storing documents in a shared network space is no longer sufficient; documents related to a product release need to be versioned and tracked. We&#8217;re talking about a wide range of documents here &#8212; UML diagrams, meeting notes, functional specifications, wireframe prototypes, product plans, slide decks, planning spreadsheets, and, of course, end-user documentation from release notes to complete online help systems.</p>
<p>AccuRev&#8217;s stream-based, process-centric approach makes it easy to manage your product-related documents right alongside your code and issues. Add a couple of folders to your workspace &#8212; call them <code>planning</code>, <code>doc</code>, or whatever you like. Add your planning documents to the folders, and promote everything. Now your product documents are part of the stream.</p>
<ul>
<li>When you create a child stream for the next release, those planning documents are included automatically because of AccuRev&#8217;s built-in inheritance. Just update the documents for the new release and promote. Product managers and others can create their own workspaces where they update those documents as needed.</li>
<li>Want to track general-purpose planning documents that aren&#8217;t related to a specific release? Create your child stream under the root, and store all those documents there. Create child streams and workspaces based on document evolution, not product releases.</li>
<li>Want to free your product managers and technical writers from using the AccuRev client interface? Now there&#8217;s the <a href="http://www.accurev.com/download_ab_2008_1_wse.htm" target="_blank"><strong>AccuBridge for Windows Explorer</strong></a> (for AccuRev V4.5.4 and newer), which provides AccuRev functionality from a right-click menu in Windows Explorer, and icon decorations to indicate AccuRev status.</li>
</ul>
<p>Documents represent knowledge; they are part of the company&#8217;s history. They provide records of decisions and the context in which those decisions were made. They show the reasons behind the implementation decisions, the backtracking, the roads not taken, and the plans for the path ahead. When these important documents are not versioned and tracked, information is lost.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/08/why-use-accurev-for-document-management/' addthis:title='Why Use AccuRev for Document 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/2008/05/08/why-use-accurev-for-document-management/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Globally Distributed Developers, Under a Single Roof</title>
		<link>http://accurev.com/blog/2008/05/07/globally-distributed-developers-under-a-single-roof/</link>
		<comments>http://accurev.com/blog/2008/05/07/globally-distributed-developers-under-a-single-roof/#comments</comments>
		<pubDate>Wed, 07 May 2008 15:16:43 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[GDD]]></category>
		<category><![CDATA[geographically distributed development]]></category>
		<category><![CDATA[globally distributed development]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[mastership issues]]></category>
		<category><![CDATA[replication issues]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software release process]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=183</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/07/globally-distributed-developers-under-a-single-roof/' addthis:title='Globally Distributed Developers, Under a Single Roof ' ><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 most common and problematic challenges that exists in today&#8217;s software development environments is how best to support a Globally Distributed Development organization. In ye olden days, you had the entire team co-located in the proverbial cube farm under a single monolithic roof. If Brad wanted you to review the code he just [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/07/globally-distributed-developers-under-a-single-roof/' addthis:title='Globally Distributed Developers, Under a Single Roof '  ><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/05/07/globally-distributed-developers-under-a-single-roof/' addthis:title='Globally Distributed Developers, Under a Single Roof ' ><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 most common and problematic challenges that exists in today&#8217;s software development environments is how best to support a <a href="http://www.accurev.com/distributed-scenario.htm" target="_blank">Globally Distributed Development</a> organization. In ye olden days, you had the entire team co-located in the proverbial cube farm under a single monolithic roof. If Brad wanted you to review the code he just wrote, he would literally turn around in his chair, ask you to come in and look over his shoulder.</p>
<p>Times have definitely changed. Now, your team might be headquartered in Boston, separate R&amp;D sites in California and London, with some specialized groups in Bangalore and Shanghai. But that&#8217;s not necessarily the hard part. Where it gets complicated is when all these developers are trying to work on the <strong>same source code</strong> at the <strong>same time</strong>. <a href="http://www.accurev.com/scm-comparisons/accurev-clearcase.html" target="_blank">Mastership issues</a> questions, latency, mismatched process across sites; communication problems, lack of <a href="http://www.accurev.com/accurev_tyler_scm_solution.htm" target="_blank">project visibility</a>; these things all lead to significant decrease in productivity, not to mention the chaos for those trying to manage the effort.</p>
<p>Enter AccuRev. Uniquely architected to support remote and <a href="http://www.accurev.com/accureplica.html" target="_blank">geographically distributed development</a> (GDD), there are several key built-in capabilities that make the challenges of the past disappear. Consider the following graphic:</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/05/gdd4.jpg" target="_blank"><img class="alignnone size-medium wp-image-195" src="http://www.accurev.com/blog/wp-content/uploads/2008/05/gdd4.jpg?w=300" alt=" Globally Distributed Developers, Under a Single Roof" width="300" height="167" title="Globally Distributed Developers, Under a Single Roof" /></a></p>
<ul>
<li>AccuRev&#8217;s Stream Browser presents a dynamic visual representation of the <a href="http://www.accurev.com/index.html" target="_blank">software development process</a> that is both fundamentally tied to the source code itself as well as being flexible and enforceable. At a single glance, *anyone* working on the project anywhere knows exactly what the process in place is. (See example <a href="http://dotnet.sys-con.com/read/526698_2.htm" target="_blank">AccuRev annotated screen shot</a> here from the Alaska Airlines success story).</li>
<li>Geography has zero impact on your position in the process; a developer in the UK can happily use a Workspace on the same parent stream as a developer in the United States. For low bandwidth locations, AccuReplica can provide LAN-quality access without introducing the traditional mastership and latency problems of <a href="http://www.accurev.com/clearcase-adapter.html" target="_blank">other replication solutions</a>.</li>
<li>The private nature of the Workspace means that these remote developers can &#8220;share&#8221; code while still determining when to deliver their changes publicly.</li>
</ul>
<p>Here&#8217;s the scenario: Developer ibergman works out of London, while jtalbott works in Boston. However, they are both part of a virtual team working on ComponentC. With AccuRev, the normal boundaries and limitations of time and space &#8211; not to mention being constrained by an inadequate <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">SCM tool</a> &#8211; no longer apply. Okay, I took some verbal liberties with the &#8220;time and space&#8221; bit, but it&#8217;s actually not too far from the truth.</p>
<p>In London at noon, ibergman wraps up a section of code she&#8217;s been working on and performs a Keep, which in AccuRev is a private check-in. The change is versioned yet stays within the confines of the Workspace, not yet ready for public consumption. But ibergman wants some validation, and asks jtalbott to review her code. Using instant messaging (IM), she pings him and catches him as he&#8217;s having his first sip of coffee, probably a colombian supremo. In other tools, how would someone review a private change that was just committed on the other side of the ocean? Would they even have private commits in the first place? In AccuRev, the moment ibergman performed that Keep in London, a visual identifier is available to anyone viewing the StreamBrowser, such as to jtalbott in Boston. So jtalbott clicks on the icon, and now has immediate access to operations like View, to see the file, and Diff, to compare against any previous revision of this file:</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2008/05/gdd3.jpg" target="_blank"><img class="alignnone size-medium wp-image-194" src="http://www.accurev.com/blog/wp-content/uploads/2008/05/gdd3.jpg?w=300" alt=" Globally Distributed Developers, Under a Single Roof" width="300" height="201" title="Globally Distributed Developers, Under a Single Roof" /></a></p>
<p>Did I mention that jtalbott&#8217;s access to these operations is instantaneous, as soon as ibergman performs the Keep? He can even take her version and send it into his own workspace if he finds it interesting enough to want to do additional development on.</p>
<p>So the previously mentioned problems of mastership, latency, visibility, communication, and most importantly Process, have all gone away. No more waiting on a 24-hour turnaround to get that Shanghai code copied into the branch. No more working in the dark not knowing exactly where your piece of code fits into the puzzle. Each team can regain the responsibility of merging in their efforts into common integration points, using a well-defined process implemented with streams.</p>
<p>It&#8217;s a remarkably simple and elegant solution to a complex and challenging problem. Of course, it&#8217;s still not going to solve the amusing problem of both the London and Boston developers feeling like they are superior to each other, but at least now they can actually review each other&#8217;s code real-time to help figure that one out <img src='http://accurev.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' title="Globally Distributed Developers, Under a Single Roof" /> </p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/07/globally-distributed-developers-under-a-single-roof/' addthis:title='Globally Distributed Developers, Under a Single Roof '  ><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/05/07/globally-distributed-developers-under-a-single-roof/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile &#8211; The Soft Hum of Many Well-Intentioned Voices</title>
		<link>http://accurev.com/blog/2008/04/23/agile-the-soft-hum-of-many-well-intentioned-voices/</link>
		<comments>http://accurev.com/blog/2008/04/23/agile-the-soft-hum-of-many-well-intentioned-voices/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 15:49:14 +0000</pubDate>
		<dc:creator>fran0414</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Customer Guest Blogs]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[CM]]></category>
		<category><![CDATA[CM tool]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[configuration manager]]></category>
		<category><![CDATA[distributed development team]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tool]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=163</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/23/agile-the-soft-hum-of-many-well-intentioned-voices/' addthis:title='Agile &#8211; The Soft Hum of Many Well-Intentioned Voices ' ><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 listen closely, you can almost hear the soft hum of thousands of well-intended voices all intoning the mystical phrase “Agile Development” like a magical mantra that will make everything faster, better and appear more attractive.  This buzz word is coming from managers and their bosses, from PMs and VPs and CMs (Configuration Managers) [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/23/agile-the-soft-hum-of-many-well-intentioned-voices/' addthis:title='Agile &#8211; The Soft Hum of Many Well-Intentioned Voices '  ><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/23/agile-the-soft-hum-of-many-well-intentioned-voices/' addthis:title='Agile &#8211; The Soft Hum of Many Well-Intentioned Voices ' ><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" style="margin:0"><span style="font-size:small;font-family:Times New Roman">If you listen closely, you can almost hear the soft hum of thousands of well-intended voices all intoning the mystical phrase “Agile Development” like a magical mantra that will make everything faster, better and appear more attractive.<span>  </span>This buzz word is coming from managers and their bosses, from PMs and VPs and CMs (Configuration Managers) and other folks with 2-letter title abbreviations, from developers and testers and even the customers.<span>   </span>“We must be Agile!”– so they say.</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small"><span style="font-family:Times New Roman">As you may have noticed, if you repeat any word or phrase long enough, it tends to lose all meaning.<span>  </span>Unfortunately this seems to be the case with concept of Agile Development.<span>  </span></span></span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small"><span style="font-family:Times New Roman">I once attended a meeting wherein a VP announced that we were going to do agile development “as of today.” There was a lot of cheering and a lot of smiling and a few hands were shaken.<span>  </span>And at the very back of the room, there were a few of us that sat there quietly trying mightily to conceal our shock/disbelief/cynicism and sheer apprehension at the thought of what was about to happen to us.<span>  </span></span></span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">You see – <a href="http://damonpoole.blogspot.com/search/label/Agile" target="_blank">Agile development </a>is more than just throwing smaller chunks of code into Production faster.<span>  </span>It takes planning, involvement, a solid architecture, good supporting tools – in short, A WHOLE LOT OF WORK – to make agile processes really work for you.<span>  </span>You can’t reap the reward without doing the work first– and if you try, all you’re going to wind up with is a great, big mess. (Not to mention a staff with their updated resumes out on DICE)</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">While this post is written a bit tongue-in-cheek, the message is serious.<span>  </span>If you want to be agile, make an investment in the process:</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">1)</span><span style="font:7pt">      </span></span><span style="font-size:small">Know your code architecture:<span>  </span>Having all 73,000 files in version control is not the same as KNOWING the architecture of your code. You can’t be truly agile if you don’t know the inter-dependencies of your own code.<span>  </span></span></span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">2)</span><span style="font:7pt">      </span></span><span style="font-size:small">Know your end-users wants vs. needs: Actively involve the end-users in the release scope.<span>  </span>This is A LOT harder than it sounds.<span>  </span>It takes a good relationship with the end users to separate out their desires from their actual needs, and balance the content of the releases across the two.<span>  </span>Building this relationship is a fundamental component of agility.</span></span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">3)</span><span style="font:7pt">      </span></span><span style="font-size:small">Implement Tools that support Agile methods:<span>  </span>There is nothing agile about <a href="http://www.daveonscm.com/" target="_blank">merging branches of code </a>all over kingdom-come.<span>  </span>There is nothing agile about having to manually determine what files changed since last Friday at noon, or depending on checksum to figure it out.<span>  </span>Choose your tools wisely, implement them appropriately for your individual situation, and enforce the process globally across all groups, management levels and situations…and do so knowing that everything is subject to change without notice.</span></span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">I highly recommend AccuRev to support <a href="http://www.accurev.com/webinars/reg/20070719_agile_reg.shtml" target="_blank">agile development</a> methodologies.<span>  </span>It provides a level of flexibility that I’ve never encountered in any other tool, while still enforcing process through an indelible history of every event, and user defined process criteria. </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">AccuRev is the ideal tool for distributed development teams, with fast remote updates, the option of full or partial updates to the development workspace, and flexible, developer-defined and controlled sharing of in-process work.</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">I’ve setup a lot of projects using a lot of different software <a href="http://www.accurev.com/accurev-sccm.html" target="_blank">configuration management</a> tools, and AccuRev is by far and away, my favorite choice for a <a href="http://www.accurev.com/product-overview.html" target="_blank">SCM tool</a> – particularly when supporting agile processes.</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman">In closing, here are some words of wisdom from an old-hat Configuration Manager:</span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">1)</span><span style="font:7pt">      </span></span><span style="font-size:small">If they tell you, “Just load the CM tool on the development server for now.<span>  </span>We’ll find you a permanent server later” – DON’T fall for it.</span></span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">2)</span><span style="font:7pt">      </span></span><span style="font-size:small">When a prospective employee describes their environment as “dynamic” just know in advance that’s a euphemism for “chaos.”</span></span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">3)</span><span style="font:7pt">      </span></span><span style="font-size:small">There is no such thing as a “Planned Emergency.”</span></span></p>
<p class="MsoNormal" style="text-indent:-0.25in;margin:0 0 0 0.5in"><span style="font-family:Times New Roman"><span><span style="font-size:small">4)</span><span style="font:7pt">      </span></span><span style="font-size:small">If your manager says, “We’re implementing agile methodologies, and we’re buying <a href="http://www.accurev.com/clearcase-adapter.html" target="_blank">ClearCase</a>, because it’s the best,”….well, in that case, I’ll be seeing your updated resume on DICE…</span></span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small;font-family:Times New Roman"> </span></p>
<p class="MsoNormal" style="margin:0"><em><span style="font-size:small"><span style="font-family:Times New Roman">Fran Schmidt is a veteran CM, who’s survived over a decade in the Software Configuration Management field through a combination of good humor, constant education on the newest technologies, and sheer stubbornness.</span></span></em></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/23/agile-the-soft-hum-of-many-well-intentioned-voices/' addthis:title='Agile &#8211; The Soft Hum of Many Well-Intentioned Voices '  ><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/23/agile-the-soft-hum-of-many-well-intentioned-voices/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>How Much Process is Enough? Just Enough</title>
		<link>http://accurev.com/blog/2008/04/02/how-much-process-is-enough-just-enough/</link>
		<comments>http://accurev.com/blog/2008/04/02/how-much-process-is-enough-just-enough/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 15:00:11 +0000</pubDate>
		<dc:creator>brad hart</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[customer one-offs]]></category>
		<category><![CDATA[distributed development]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[just enough process]]></category>
		<category><![CDATA[parallel development]]></category>
		<category><![CDATA[patching strategy]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[process requirements]]></category>
		<category><![CDATA[reproducing software]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[testing requirements]]></category>
		<category><![CDATA[too little process]]></category>
		<category><![CDATA[too much process]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/?p=147</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/02/how-much-process-is-enough-just-enough/' addthis:title='How Much Process is Enough? Just Enough ' ><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 Brad Hart Hi, my name is Brad Hart and I am the Director of Technology at AccuRev, Inc. I&#8217;ve been working in the software delevelopment / process space for 10+ years. I&#8217;ve designed and supported numerous ClearCase / ClearQuest implementations both while working at IBM/Rational and as a customer at various companies. At AccuRev, [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/02/how-much-process-is-enough-just-enough/' addthis:title='How Much Process is Enough? Just Enough '  ><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/02/how-much-process-is-enough-just-enough/' addthis:title='How Much Process is Enough? Just Enough ' ><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><strong>by Brad Hart<br />
</strong></p>
<p>Hi, my name is Brad Hart and I am the Director of Technology at AccuRev, Inc. I&#8217;ve been working in the software delevelopment / process space for 10+ years. I&#8217;ve designed and supported numerous ClearCase / ClearQuest implementations both while working at IBM/Rational and as a customer at various companies. At AccuRev, I&#8217;ve been involved with countless implementations of AccuRev with our customers, everything from small to large, ISVs, Internal IT, and Embedded systems companies.</p>
<p>Over the years, I have seen so many different approaches for software development in all kinds of companies. One area that every company seems to struggle with is defining their process. There are many stakeholders in the development process (Developers, QA, Release Engineers, Admins, Management, etc&#8230;), and it is a difficult task to get everyone on the same page to ensure that the defined process meets the needs of everyone. One area of particular contention is the amount of process to use. I&#8217;ve worked with small companies with a handful of &#8220;cowboy&#8221; developers which had absolutely no process, and I&#8217;ve also seen the opposite end of the spectrum with so much process at large companies that it gets the nickname &#8220;pebble moving.&#8221; Neither approach works.</p>
<p>In the no/little process environment, developers just do what they want, where they want, and how they want. This freedom certainly seems nice for the developers. I&#8217;ve never met one yet who was yearning for more process&#8230; However, this hurts the company (including the developers) in the long run. Release Engineers have a difficult time reliably building and reproducing software, parallel development is held to a minimum, Admins lose control of the assets, Managers cannot track progress and at the end, less software is produced and what is produced is lower quality. The positive side is developers spend 100% of the time coding and 0% on process overhead. The negatives are poor software, slow delivery and regressions.</p>
<p>The opposite end of the spectrum is equally inefficient. Have you ever seen an issue tracking schema with 10+ tabs, 100+ fields, and a state transition workflow that can only be described using 5+ visio diagrams? I have&#8230;many times. In an effort to control each step that everyone takes, these companies suffocate their developers with way too much process. So much so that they cannot work at even close to their full efficiency. They may spend as much as 30% &#8211; 40 % of their time working within the many steps of the process and not enough time coding. From my experience, developers react to this in 2 ways. (1) They just succumb to it. They simply accept the are not working at full capacity and move on. This of course means the organization is only 60% effective and can only produce 60% as much software as the next company&#8230; (2) They rebel. A motivated developer will find a way around the process so they can be more &#8220;efficient&#8221; and get more code written. Their intentions are good, but the results are bad. This approach almost always results in disaster: broken builds, regressions, lost work, etc&#8230;</p>
<p>So what is the answer? <a href="http://www.gartner.com/DisplayDocument?ref=g_search&amp;id=501745" target="_blank">Just enough process</a>. Just enough is going to be different for each company and even each group within a company. It also is a moving target based on changes in business requirements, company growth, etc&#8230; The right thing to do is to get representatives from each stakeholder group and work together to define what all the end goals and requirements are:</p>
<ul>
<li>How many releases do we need to ship per year?</li>
<li>How many releases at a time will we support?</li>
<li>What is our <a href="http://www.accurev.com/accurev_tyler_scm_solution.htm" target="_blank">patching strategy</a>?</li>
<li>Do we need to support <a href="http://www.accurev.com/distributed-scenario.htm" target="_blank">distributed development</a>?</li>
<li>Are we working with partners or 3rd party vendors?</li>
<li>Will we support <a href="http://www.accurev.com/whitepaper/vendor_code.htm" target="_blank">customer one-offs</a>?</li>
<li>What are our testing requirements and ship criteria?</li>
</ul>
<p>Once you have the answers to these questions, you can start working on the process. The goal behind any process design is not to have a beautiful and elegant process. The goal for the process is to facilitate all actors in the process in doing the right thing and putting up just enough guardrails to keep from accidentally doing the wrong thing. Keep each business goal in mind and think about what it will take to make sure every actor has just enough information to accurately complete their task and just enough protection in place to handle common mistakes. That&#8217;s it. Don&#8217;t go overboard. That is just as bad as not having enough process. Don&#8217;t overwhelm people with information or steps to complete a simple goal. Should someone really have to fill in 40 fields to submit a defect? I don&#8217;t think so, but I&#8217;ve seen it. Keep it simple and straightforward. Just enough process is the key.</p>
<p>Also, make sure the tools you are using support the processes you&#8217;ve outlined. They should be able to <a href="http://www.accurev.com/demonstration.html" target="_blank">implement your desired process</a> and be able to adapt to changes in your process requirements.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/02/how-much-process-is-enough-just-enough/' addthis:title='How Much Process is Enough? Just Enough '  ><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/02/how-much-process-is-enough-just-enough/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Adrift in a Sea of Conflicting Priorities and Assignments? Here&#039;s a Life Preserver!</title>
		<link>http://accurev.com/blog/2008/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/</link>
		<comments>http://accurev.com/blog/2008/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 19:00:38 +0000</pubDate>
		<dc:creator>damonpoole</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[defect tracking]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[reduce project management meetings]]></category>
		<category><![CDATA[reduce rework]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM reporting]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/?p=146</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/' addthis:title='Adrift in a Sea of Conflicting Priorities and Assignments? Here&#039;s a Life Preserver! ' ><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>Do you ever feel like things are out of control on your project, that you are adrift in a sea of conflicting priorities and requests? Do you suddenly find out at the last minute that you are the bottleneck and everybody is breathing down your neck asking you what is taking you so long to [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/' addthis:title='Adrift in a Sea of Conflicting Priorities and Assignments? Here&#039;s a Life Preserver! '  ><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/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/' addthis:title='Adrift in a Sea of Conflicting Priorities and Assignments? Here&#039;s a Life Preserver! ' ><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>Do you ever feel like things are out of control on your project, that you are adrift in a sea of conflicting priorities and requests? Do you suddenly find out at the last minute that you are the bottleneck and everybody is breathing down your neck asking you what is taking you so long to create the moveStuff() method but you had no idea that anybody even cared about moveStuff() or that you owned it? Do you ever find yourself in the exact opposite position, wondering why Sue and Bob didn’t get their stuff done that you need and then your boss walks by while you are surfing the net waiting for Sue and Bob? And who is Bob anyway?</p>
<p>The solution is simple! All you need to do is get everybody to move to Project. Well, if you have somebody you can spare full-time to keep Project up to date of course. Oh and I almost forgot, you’ll need to start using a requirements tool. But that’s it really, other than integrating them all together over the weekend and of course that’s assuming you’ve already gotten a CRM tool for workflow.</p>
<p>There is a simpler solution. It isn’t perfect, and it doesn’t solve all problems, but it can definitely provide the following benefits:</p>
<ul>
<li>reduce the chaos</li>
<li>increase your vision into where you are and what’s going on</li>
<li>reduce the number of status and/or project management meetings</li>
<li>reduce the need to provide the same information over and over again</li>
<li>simplify collaboration both locally and for distributed teams</li>
<li>provide a more Agile workflow</li>
</ul>
<p>The answer is to reduce the amount of rework that you are already doing. Right now you are probably storing defects in a defect tracking system, enhancements (aka RFEs, requirements, etc) in a requirements management tool (usually Excel or Word but sometimes an actual RM tool), and if you are using a project management tool it is probably MS-Project. All three of these product areas evolved to provide different aspects of project management for different groups of people and as a result they have lots of overlap. Considering how hard it is to coordinate three different systems, why not consider standardizing on one system for most of the work? The only question is, which system?</p>
<p>If we are going to try to do most of our project management work in a single tool, we should first decide what the interesting activities are. I believe they are: recording enhancement requests and defects as they are gathered by marketing or reported by users, load balancing, estimated completion calculation, critical path determination, work assignment, workflow, and reporting.</p>
<p>First let’s consider how well suited Project is for doing most or all of these tasks. Project is good at taking a small static collection of large tasks and doing load balancing, estimated completion, and critical path determination. Thus, it is mostly used for the very narrow task of project management of enhancements.</p>
<p>Next let’s consider requirements management. For whatever reason, most people use Excel or Word as their requirements management tool instead of a “real” requirements management tool. Excel and Word are just not appropriate for project management.</p>
<p>Lastly, there is defect tracking. A defect tracking system covers the assignment, tracking, workflow and reporting of defects. There is usually a higher volume of defects than enhancements, and they are usually smaller in scope and have a more complicated and often more time critical workflow. If it works well for defects, it should work equally well for enhancements.</p>
<p>Based on this analysis, it makes sense to extend the project management that you are already doing with a defect tracking system to include enhancements. A generic name for something that is either a requirement, enhancement, or defect is “work item.” By using work items to track all work, it is easy to see where you are and what remains to be done. Now you can use a similar workflow for enhancements as you do for defects, for instance from newly entered, to triaging, to assignment, to test development, to completion, to test, to integration, to delivery. You can easily run a query to see which work items have their code written but do not yet have any tests. Similarly, you can see which work items are done from a coding perspective and have tests but have not yet been verified as done by QA. This will give you a much more complete view of your overall project status and progress.</p>
<p>Whatever you are currently using for defect tracking it will be straightforward to start getting the benefits of managing defects and enhancements together. Just add a field that indicates if a work item is a defect or an enhancement. You may need to make a few more changes to accommodate a slightly different workflow for enhancements than you have for defects, but I think you&#8217;ll find it is worth the effort. For one example of how this can work, you can take a look at how AccuRev does it using <a target="_blank" href="http://www.accurev.com/accuworkflow.html">AccuWorkflow</a>.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/' addthis:title='Adrift in a Sea of Conflicting Priorities and Assignments? Here&#039;s a Life Preserver! '  ><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/03/28/adrift-in-a-sea-of-conflicting-priorities-and-assignments-heres-a-life-preserver/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Build your own custom interface to AccuRev issue tracking</title>
		<link>http://accurev.com/blog/2008/01/30/build-your-own-custom-interface-to-accurev-issue-tracking/</link>
		<comments>http://accurev.com/blog/2008/01/30/build-your-own-custom-interface-to-accurev-issue-tracking/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 21:00:25 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[AccuRev CLI]]></category>
		<category><![CDATA[AccuRev XML]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[create an AccuWork record]]></category>
		<category><![CDATA[custom interface]]></category>
		<category><![CDATA[defect tracking]]></category>
		<category><![CDATA[intranet web page]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[issue tracking usage]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=114</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/30/build-your-own-custom-interface-to-accurev-issue-tracking/' addthis:title='Build your own custom interface to AccuRev issue tracking ' ><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 I had to guess, I&#8217;d say that roughly one third of our customers are using AccuRev&#8217;s built-in issue tracking system, called AccuWork. Another third are using one of any number of 3rd party systems, and the last third aren&#8217;t linking to issue tracking at all. Those not using issue tracking I feel are missing [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/30/build-your-own-custom-interface-to-accurev-issue-tracking/' addthis:title='Build your own custom interface to AccuRev issue tracking '  ><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/30/build-your-own-custom-interface-to-accurev-issue-tracking/' addthis:title='Build your own custom interface to AccuRev issue tracking ' ><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 I had to guess, I&#8217;d say that roughly one third of our customers are using AccuRev&#8217;s built-in issue tracking system, called <a href="http://www.accurev.com/issue-tracking.html" target="_blank">AccuWork</a>. Another third are using one of any number of 3rd party systems, and the last third aren&#8217;t linking to issue tracking at all. Those not using issue tracking I feel are missing out on one of the key advantages of software development using an Enterprise class SCM system like AccuRev, but that&#8217;s a post for another day. And those using a third party system have that tool&#8217;s interface to work with if they want to set up any customizations. So I want to focus on the group using AccuWork.</p>
<p>What many people aren&#8217;t aware of is that not only does AccuRev have a full featured command-line interface for SCM operations, it also has CLI operations for the issue tracking as well. Additionally, it has the flexibility of using XML and all the inherent benefits of that language. So an example of what some organizations might want to do is set up an intranet web page where various, non-SCM users can submit issue records without having to go through a specific client application. This can be a very straightforward effort using the AccuWork CLI.</p>
<p>Step one would be to design your web page and forms. Simple for any experienced web developer. Any desired validations and logic would be built into this web page. Step two is to merely grab the form data, translate it into the appropriate XML format, and submit it to AccuRev. Here is a sample xml structure to create an AccuWork issue record (your schema may vary):</p>
<pre>
&lt;newIssue issueDB="Support"&gt;
  &lt;issue&gt;
    &lt;status fid="3"&gt;New&lt;/status&gt;
    &lt;shortDescription fid="4"&gt;We want to have another issue&lt;/shortDescription&gt;
    &lt;productType fid="6"&gt;Receiver&lt;/productType&gt;
    &lt;type fid="7"&gt;enhancement&lt;/type&gt;
    &lt;submittedBy fid="10"&gt;3&lt;/submittedBy&gt;
    &lt;assignedTo fid="14"&gt;1&lt;/assignedTo&gt;
    &lt;foundInRelease fid="20"&gt;TP_3.5&lt;/foundInRelease&gt;
    &lt;dateSubmitted fid="11"&gt;1083606275&lt;/dateSubmitted&gt;
  &lt;/issue&gt;
&lt;/newIssue&gt;</pre>
<p>Lastly, you would send this xml to AccuRev using the standard CLI:</p>
<p>&#8220;accurev xml -l issueFromWeb.xml&#8221;</p>
<p>Bingo, you now have an AccuWork record created! That&#8217;s a basic example, but since AccuRev also gives you the ability to query issues and modify existing issues via XML CLI, you can start to imagine the flexibility you have for customization and specialty access.</p>
<p>I&#8217;m interested in hearing from development organizations about their issue tracking usage. Do you typically have a wider audience for the issue tracking side than the actual coding side? Does the previous information sound like it&#8217;s something you could make use of?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/01/30/build-your-own-custom-interface-to-accurev-issue-tracking/' addthis:title='Build your own custom interface to AccuRev issue tracking '  ><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/30/build-your-own-custom-interface-to-accurev-issue-tracking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

