<?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; parallel development</title>
	<atom:link href="http://accurev.com/blog/tag/parallel-development/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>AccuRev is a 2009 Jolt Award Finalist</title>
		<link>http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/</link>
		<comments>http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 19:53:20 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Jolt Award]]></category>
		<category><![CDATA[parallel development]]></category>
		<category><![CDATA[release management]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software development process]]></category>
		<category><![CDATA[software release process]]></category>
		<category><![CDATA[source code control]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/?p=567</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/' addthis:title='AccuRev is a 2009 Jolt Award Finalist ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>AccuRev is once again pleased to inform everyone that its flagship product, AccuRev, has been selected as a Jolt Award Finalist for Dr. Dobb&#8217;s 19th Annual Jolt Product Excellence Awards in the Change and Configuration Management category.  For the past 18 years, the Jolt Product Excellence Awards have been presented annually to showcase products that [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/' addthis:title='AccuRev is a 2009 Jolt Award Finalist '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/' addthis:title='AccuRev is a 2009 Jolt Award Finalist ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>AccuRev is once again pleased to inform everyone that its flagship product, AccuRev, has been selected as a <a href="http://www.accurev.com/jolt_award.html" target="_blank">Jolt Award </a>Finalist for Dr. Dobb&#8217;s<em> </em>19th Annual Jolt Product Excellence Awards in the Change and Configuration Management category. </p>
<p>For the past 18 years, the Jolt Product Excellence Awards have been presented annually to showcase products that have &#8220;jolted&#8221; the industry with their significance and made the task of creating software faster, easier, and more efficient. The awards presentation is sponsored by JOLT, the fabled soft drink quaffed by software developers for sustenance during project development marathons.</p>
<p>&#8220;The Jolt judges have selected these finalists from the nearly 300 qualified nominations that were submitted online. The submissions represent the many innovative tools available for every phase of the software development lifecycle,&#8221; said Amber Ankerholz, Jolt Award Project Manager. &#8220;This year’s finalist round was extremely competitive and we appreciate the effort all of the participants put into showcasing their products’ features for the judges.”</p>
<p>In the next round of the Jolt Award process, the judges will examine the finalists according to the standard criteria of audience suitability, productivity, innovation, quality, ROI, risk, and flexibility. They focus on products that are ahead of the curve, universally useful, rich in functionality or that were solutions to problems in their product space.</p>
<p>Winners are announced during the Jolt Awards ceremony that takes place on March 11 at <a href="http://www.sdexpo.com/" target="_blank">SD West 2009</a> Conference &amp; Expo at the Santa Clara Convention Center.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/' addthis:title='AccuRev is a 2009 Jolt Award Finalist '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2009/01/22/accurev-is-a-2009-jolt-award-finalist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pattern for Private Prototype Development</title>
		<link>http://accurev.com/blog/2008/11/13/pattern-for-private-prototype-development/</link>
		<comments>http://accurev.com/blog/2008/11/13/pattern-for-private-prototype-development/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 17:10:03 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Patterns]]></category>
		<category><![CDATA[3rd party library]]></category>
		<category><![CDATA[automated build]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Empower developers]]></category>
		<category><![CDATA[parallel development]]></category>
		<category><![CDATA[private versioning]]></category>
		<category><![CDATA[private workspace]]></category>
		<category><![CDATA[prototype development]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM patterns]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software release process]]></category>
		<category><![CDATA[stream inheritance]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=435</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/13/pattern-for-private-prototype-development/' addthis:title='Pattern for Private Prototype Development ' ><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 Dave Thomas Your team has been coding a feature for a few days, across dozens of files, and everyone is excited with progress.  Deep into development, you find an interesting 3rd party library that may simplify your work and possibly take the team&#8217;s feature to the next level.  But it will require adding new [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/13/pattern-for-private-prototype-development/' addthis:title='Pattern for Private Prototype Development '  ><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/13/pattern-for-private-prototype-development/' addthis:title='Pattern for Private Prototype Development ' ><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 Dave Thomas</strong></p>
<p>Your team has been coding a feature for a few days, across dozens of files, and everyone is excited with progress.  Deep into development, <em>you </em>find an interesting 3rd party library that may simplify your work and possibly take the team&#8217;s feature to the next level.  But it will require adding new files, moving some directories, and refactoring some critical code.  However, you&#8217;re not ready to commit your <em>current </em>changes because they are unfinished and will surely break everyone else.  Your changes need to be saved before prototyping in case of a rollback but also be integrated with prototype development.  And what if the new library is a bust?  If you start co-mingling the library integration with unfinished code, the potential revert process will be a complete nightmare and waste of time.</p>
<p><strong>Private Versioning</strong>. With AccuRev&#8217;s private workspace, you can <em>always </em>commit your changes early, often, and safely without sharing amongst your peers.  But in this case you have two logical development efforts, the 2nd effort depends on the first and both need commits to preserve evolving changes.   How do you keep them cleanly separated and continue to work on both in parallel?</p>
<p><strong>Stream Inheritance</strong>.  AccuRev streams have an intriguing and very powerful feature called inheritance.   Similar to how an OO subclass implicitly inherits methods from parent and grandparent classes, a child <em>stream </em>implicitly inherits versions of files &amp; directories from parent and grandparent streams.   Taking advantage of inheritance, we can use streams to independently manage logical changes and cleanly maintain change dependencies without physically co-mingling files.</p>
<p><strong>The Pattern</strong>.  Prototyping changes without co-mingling files can be done by simply creating a series of &#8216;personal&#8217; or &#8216;private&#8217; development streams (though, they are just regular dynamic streams). This pattern will create a &#8220;Feature&#8221;, &#8220;MyDevelopment&#8221;, and &#8220;MyPrototype&#8221; stream sub-hierarchy.  <em>See Picture.</em></p>
<div id="attachment_495" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.accurev.com/blog/wp-content/uploads/2008/11/prototype.jpg" target="_blank"><img class="size-medium wp-image-495" title="Prototype Development with AccuRev" src="http://www.accurev.com/blog/wp-content/uploads/2008/11/prototype.jpg?w=300" alt="click to enlarge" width="300" height="168" /></a><p class="wp-caption-text">click to enlarge</p></div>
<p>From your Integration stream (or equivalent), start by creating a &#8220;Feature&#8221; stream that will collect all changes from your entire team.  [See related blog, <a title="Stream-per-Task Pattern in AccuRev SCM" href="http://blog.accurev.com/2007/10/11/stream-per-task-paradigm-with-accurev-software-configuration-management/" target="_blank">Stream-per-Task Pattern</a>].  The majority of team members may have their workspaces directly from here.  Next, create a child stream called &#8220;MyDevelopment&#8221; that will track your <em>personal </em>ongoing development activity.  Finally, create a grandchild stream called &#8220;MyPrototype&#8221; to track changes that will be discarded or retained depending on the level of success.</p>
<blockquote><p><span style="color:#000080"><strong>The prototype development activity is committed, shareable, integrated, and yet cleanly segregated from both active feature and private development. </strong></span></p></blockquote>
<p>The &#8220;Feature&#8221; stream is the collection point of all in-progress development activities for the given feature <em>from the entire team</em>.  Developers will promote here frequently possibly kicking off an automated build with success/fail notification.   The &#8220;MyDevelopment&#8221; stream provides a collection point for all of your personal development changes.  This stream may be considered a &#8220;private&#8221; development stream simply because no other developers will likely use it &#8211; set a stream lock to be sure.  A lightweight <a href="http://www.accurev.com/continuous-integration.html" target="_blank">Continuous Integration</a> build (i.e. compilation only) may be performed on &#8220;MyDevelopment&#8221; for sanity sake or just compile and promote as a practice.  The &#8220;MyPrototype&#8221; stream is a collection point for all prototype changes. Even as new changes are promoted to &#8220;Feature&#8221; and &#8220;MyDevelopment&#8221;, the &#8220;MyPrototype&#8221; stream will automatically incorporate those changes (via inheritance) and the prototype developers will merge changes as necessary. The prototype development activity is committed, shareable, integrated, and yet cleanly segregated from both active feature and personal development. Also, by using a stream for prototype work, multiple developers can contribute and collaborate. If the prototyping work is deemed successful, the files can be promoted to &#8220;MyDevelopment&#8221;. If the prototyping efforts don&#8217;t work out &#8211; no problem &#8211; just remove the &#8220;MyPrototype&#8221; stream and re-purpose the workspaces.</p>
<p>The beauty of this pattern is that it isolates development activity <em>by purpose</em> without co-mingling physical file changes.   It lets the prototype developers go nuts and shoot from the hip while the regular feature developers (with the deadline!) work unimpeded and without fear of rampant changes &#8212; and everyone stays up-to-date.   And with no limit to stream depth, teams can perform prototyping efforts in parallel and/or perform prototyping based on existing prototypes by adding another child stream!  Furthermore, the pattern works for any size development activity or team, even for us <a title="Team of One Pattern in AccuRev" href="http://blog.accurev.com/2008/02/22/team-of-one/" target="_blank">Team-of-One</a> developers with tons of ideas, fast fingers, and a few green screen x-terms (2 space, 80-char wrapping of course &#8211; &lt;chuckle&gt;).</p>
<p>This is a perfect example of how AccuRev empowers the developer to take control of their own development.  Creating streams is extremely easy and the stream browser provides unprecedented visibility into the entire development process.  With the right amount of security in place (Locks, ACLs, Triggers), the critical release streams (left side of the stream structure) can be locked down by the CM Admins, but the development related streams (right side) can be fair game for developers to create an environment that suits their purpose, such as prototyping.</p>
<p>Does anyone have a good story to tell about how this pattern (or equivalent) helped with a <a href="http://blog.accurev.com/2007/09/20/stream-refactoring-with-pass-throughs/" target="_blank">major refactoring effort</a> or library upgrade?</p>
<p>/happy prototyping/ &#8211; dave</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/11/13/pattern-for-private-prototype-development/' addthis:title='Pattern for Private Prototype Development '  ><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/13/pattern-for-private-prototype-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Quest for Successful Parallel Development</title>
		<link>http://accurev.com/blog/2008/05/01/the-quest-for-successful-parallel-development/</link>
		<comments>http://accurev.com/blog/2008/05/01/the-quest-for-successful-parallel-development/#comments</comments>
		<pubDate>Thu, 01 May 2008 14:59:42 +0000</pubDate>
		<dc:creator>cboran</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Customer Guest Blogs]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[parallel development]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tools]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software development process]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=173</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/01/the-quest-for-successful-parallel-development/' addthis:title='The Quest for Successful Parallel Development ' ><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>Parallel development can be a nightmare that can seriously strain your organization if done wrong. Doing it right however can lead to higher customer satisfaction and more predictable release cycles. Accurev is one of the tools that you can employ to help your team become good at parallel development.<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/01/the-quest-for-successful-parallel-development/' addthis:title='The Quest for Successful Parallel Development '  ><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/01/the-quest-for-successful-parallel-development/' addthis:title='The Quest for Successful Parallel Development ' ><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>Read my earlier post: <a title="Fortune 500 Software Company Answers Your Questions on Using AccuRev" rel="bookmark" href="http://blog.accurev.com/2008/03/26/your-burning-accurev-questions-revealed-by-one-of-the-world%e2%80%99s-largest-software-companies/" target="_blank">Fortune 500 Software Company Answers Your Questions on Using AccuRev</a></p>
<p>Up until fairly recently I had never worked anywhere that was able to do <a href="http://www.accurev.com/accurev-parallel-development.html" target="_blank">parallel development</a> without it becoming a nightmare. Individual contributor or manager, we just seemed unable to find that secret magical incantation that would lead to a truly successful parallel development cycle.</p>
<p>Every time the team had a different plan, and the project&#8217;s champion would trumpet why this time <em>&#8216;things would be different&#8217;</em>. But in the end, we always failed in one of two areas (sometimes both):</p>
<ul>
<li>The quality of the software suffered dramatically</li>
</ul>
<ul>
<li>We lost control of the schedule and we were forced to ship late</li>
</ul>
<p>I actually worked on one project where the resulting release was so bad that a few weeks after release we had to pull the product off the shelves and work frantically to repair the damage.</p>
<p>Then a few years ago my team was looking for a new <a href="http://www.accurev.com/software-configuration-management-resources.htm" target="_blank">software configuration management</a> tool to use. We started out wanting ClearCase, but after much deliberation, decided on Accurev. At first, we didn&#8217;t realize the power of the tool now in our control. But after a release or two, we started to realize what we had and adjusted our process accordingly and began to achieve very successful, high quality, and on time releases done in parallel with one another. We had found the holy grail of project management!</p>
<p>We started to understand not just what the best practices were with Accurev, but to understand <strong><em>what we were getting</em></strong> by following them. We made other changes to our processes that helped as well, but I give a lot of the credit to the tool-set for helping us in the right direction.</p>
<p>We started out performing a round-table series on our past projects, looking for common themes, and then choosing the top themes and seeing how we could use Accurev to solve them, and here are some of the things we found:</p>
<p><strong>Problem: </strong>Often parallel projects require extensive code changes to the same files, leading to a need for developers to communicate what is being done to which files and when. Often this communication is not handled well.</p>
<p><strong>Solution: </strong>Accurev&#8217;s <strong>work in progress </strong>and <strong>annotate </strong>commands, as well as the <strong>version browser</strong> allow developers to quickly view who else is making changes to the files that they care about, and what is being done to them. Now developers can pro-actively gather the information they need instead of depending on someone else remembering to tell them.</p>
<p><strong>Problem: </strong>Often projects have late phase merge points which are both complicated and error prone. In addition since merging is generally done in the mainline, the entire release can be held when any two projects try to merge together.</p>
<p><strong>Solution: </strong>By allowing stream definitions to be dynamic, Accurev allows developers to create common merge streams ad hoc at no cost, and to join the projects without effecting any other users. It also provides excellent <strong>trivial merge</strong> capabilities that save the users much of the error prone work, calling out only the non-obvious decision points which greatly simplifies the merge task.</p>
<p><strong>Problem: </strong>Often bug fixes get made to one ongoing project, but developers forget to make the same fixes to other active lines of development.</p>
<p><strong>Solution: </strong>Using <strong>change packages</strong> users can quickly make changes, move them to all appropriate locations, and quickly verify that the tasks were completed successfully. Using the <strong>stream inheritance</strong> feature minimizes the number of lines where a developer must make a fix for his coworkers to take advantage of it. This greatly lightens the load on developers and cuts down on the chance that something will be forgotten.</p>
<p><strong>Problem: </strong>Ensuring 100% reproducibility of a build from pristine sources is a huge challenge. Changes to the build system environment, tools and code changes can all effect your ability to make a minor fix to released software.</p>
<p><strong>Solution: </strong>By keeping your complete build system (environment, tools, sources) all in Accurev, and by using a <strong>snapshot</strong> you are able to guarantee 100% that what you try to build today is the same as what your built the day the snapshot was taken. Unlike a label, a snapshot is forever! This enables you to reduce the regression test matrix and focus on only the changes that developers make to the released software.</p>
<p>While I am sure that other <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">SCM tools</a> can offer similar results if you know where you are starting and know where you want to go. But what I marvel at is that using Accurev really lead us to the cup so that we could drink from it and enjoy the benefits of successful parallel development.</p>
<p>Have you seen the <a href="http://www.accurev.com/demonstration.html" target="_blank">AccuRev 2-minute demo</a>?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/01/the-quest-for-successful-parallel-development/' addthis:title='The Quest for Successful Parallel Development '  ><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/01/the-quest-for-successful-parallel-development/feed/</wfw:commentRss>
		<slash:comments>1</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>
	</channel>
</rss>

