<?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; Tips and Tricks</title>
	<atom:link href="http://accurev.com/blog/category/tips-and-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://accurev.com/blog</link>
	<description>SCM and Agile Software Development Blog</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:28:17 +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>Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!?</title>
		<link>http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/</link>
		<comments>http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 21:56:02 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[waterfall]]></category>
		<category><![CDATA[winston royce]]></category>

		<guid isPermaLink="false">http://accurev.com/blog/?p=2947</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/' addthis:title='Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!? ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>I was browsing reddit.com the other day and ran into this post: Yup. It’s true. The tried and true development approach of Waterfall that we’ve been using for years was an example of what NOT to do for software development. From the Wikipedia article: The first formal description of the waterfall model is often cited [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/' addthis:title='Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/' addthis:title='Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!? ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>I was browsing <a href="http://www.reddit.com/">reddit.com</a> the other day and ran into <a href="http://it.reddit.com/r/programming/comments/nvatj/when_winston_royce_described_the_waterfall_design/">this post</a>:</p>
<p><a href="http://it.reddit.com/r/programming/comments/nvatj/when_winston_royce_described_the_waterfall_design/"><img class="aligncenter size-full wp-image-2948" title="When Winston Royce described the Waterfall Design model, he presented it as what NOT to do." src="http://accurev.com/blog/wp-content/uploads/2012/01/20120116_Lucca_Reddit.png" alt="20120116 Lucca Reddit Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!?" width="733" height="62" /></a>Yup. It’s true. The tried and true development approach of Waterfall that we’ve been using for years was an example of what NOT to do for software development.</p>
<p>From the <a href="http://en.wikipedia.org/wiki/Waterfall_model">Wikipedia article</a>: The first formal description of the waterfall model is often cited as a 1970 article by <a href="http://en.wikipedia.org/wiki/Winston_W._Royce">Winston W. Royce,[3]</a> though Royce did not use the term &#8220;waterfall&#8221; in this article. Royce presented this model as an example of a flawed, non-working model (<a href="http://en.wikipedia.org/wiki/Waterfall_development#CITEREFRoyce1970">Royce 1970</a>). This, in fact, is how the term is generally used in writing about software development—to describe a critical view of a commonly used software practice.</p>
<p>That’s what’s amazing about waterfall, and the agile transformations that seem to be taking the industry by storm. Maybe we all know deep down there is a better way to develop software.</p>
<p>I hope someday we don’t look back on <a href="http://www.accurev.com/agile-software-development.html">Agile</a> the same way we look back on Waterfall. I don’t think it will happen for the simple reason that Agile <a href="http://www.accurev.com/agile-scm.html">doesn’t have one methodology</a> tied to it. Agile can mean a simple set of practices to help with software development, but it’s more like a mission statement as opposed to a plan.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/' addthis:title='Agile vs. Waterfall: We’ve Been Doing it Wrong for How Long!? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2012/01/16/doing-it-wrong-for-how-long-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Kids Say the Darndest Things</title>
		<link>http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/</link>
		<comments>http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/#comments</comments>
		<pubDate>Mon, 28 Nov 2011 16:15:45 +0000</pubDate>
		<dc:creator>lorne cooper</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Enterprise Agile]]></category>
		<category><![CDATA[Humor]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2915</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/' addthis:title='Agile Kids Say the Darndest Things ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>I hope I don’t end up with a seized engine on the side of the road, but if I do, I’ll know I should have had that oil change. I hope I don’t end up on the Worst Dressed List, but if I do, at least I’ll know I should have given away those old [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/' addthis:title='Agile Kids Say the Darndest Things '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/' addthis:title='Agile Kids Say the Darndest Things ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>I hope I don’t end up with a seized engine on the side of the road, but if I do, I’ll know I should have had that oil change. I hope I don’t end up on the Worst Dressed List, but if I do, at least I’ll know I should have given away those old shirts.  I feel sorry for those on the “Worst Agile Implementation” list who don’t even know they’re there.</p>
<p>In the past few months I’ve had the privilege of talking to approximately fifty organizations about their Agile implementation.  Most of them are doing well, and many of them have great insights about how they customized Agile to fit their process requirements.  But some of them really Say the Darndest Things.</p>
<p><strong>&#8220;We do Scrum, it’s just the rest of the company doesn’t.&#8221;</strong></p>
<p>“So first we break the requirements specification into pieces and call each of the pieces a story.  Then we do our iterations and pass them off to the release team.  We’d sure like to get Product Management, QA, and the customer involved, but they don’t want to.”</p>
<p>There are a lot of places an Agile approach can add value, and I’d hate to adopt a “waterfall approach to going Agile”, but you’re really not doing Scrum.  The biggest chunks of value, the incremental use of customer feedback, and going from “completed state” to “completed state” in each iteration are lost if you can’t get more support.</p>
<p><strong>&#8220;We’re Agile until the development is done.&#8221;</strong></p>
<p>More than once I’ve been speaking with an earnest development leader who’s describing the Scrum process.  They’ll launch in, with obvious pride, and tell me how they’ve gone to two week iterations, do standup meetings, <em>and</em> work from a backlog.  “Terrific!  And how do you do QA?”</p>
<p>Oh, yes, of course they do QA, silly!  In fact, they demo the completed development to the QA team every sprint review and send it off to get tested.  Sometimes, unfortunately, QA actually finds some bugs that need fixing.  So that’s why they put the sprint on hold for a while to fix the bugs and loop them back into QA “’cause we don’t want to wait an entire sprint before they can restart the testing.”</p>
<p>The other side of this one is the guys that take the old “Release Tail” loophole for all it’s worth.  “Yes, Lorne, we’ve been agile for three years now.  We do Scrum, unit testing, standups, and play in the World Series of ‘Planning Poker’.  We do that for about six weeks, or until the release.  Then we have a three month release testing tail, which follows a ‘modified Scrum process’ … the project leader estimates the amount of work on each bug QA finds, and assigns it to a developer.  Sure, sometimes we have to work on new functionality during the “release testing tail” … you can’t expect the customer to stop needing improvements for three months!”</p>
<p>Folks, I don’t think I’m sharing any great trade secret when I tell you the QA process needs to be completed before the story is considered “done.”  I don’t want to be Klaus Fuchs of Scrum, but here’s the secret: <strong>you’re going to have to invest more in testing up front.</strong><strong></strong></p>
<p><strong>&#8220;We do continuous integration every night.&#8221;</strong></p>
<p>I blame the education system: how’s an engineer supposed to know what “Continuous” means when we have “social promotion!”  Now some people understand the idea of continuous integration, and made a conscious effort to make it more “Discrete”.  Some companies I talked to had broken builds that lasted for a week.  You’d rather have a child repeating “Mummy” every 30<sup>th</sup> of a second before you’d like to get an email every five minutes saying the “Build Failed.”  I get it.  And if the email was going to your boss too, well, you don’t have to be Dogbert to know that’s a bad idea.</p>
<p>Builds are going to fail.  Get used to it.  The problem is not that the build failed, but that you couldn’t fix it.  Good practices are to have the team drop what they’re doing when the build fails and hop on fixing it.  If they can’t fix it, it needs to get escalated *pronto*.  Better is to have the team do local builds and unit testing before they check in.  Best Practices are to divide up the build process by team and stage of development, so your team only pollutes itself, not the rest of the development org.</p>
<p><strong>&#8220;We don’t need training since we can use the internet.&#8221;</strong></p>
<p>Uh huh. So I guess the schools will be shutting down any day now.  Not that the Internet might not turn out to be a useful aid someday, but the software development process is a hands-on activity.  And similar to other hands on activities, like dancing or carpentry, you can’t learn to do it by reading a book.  You’re going to need to get some experience with the process before you understand how to run a sprint review or a stand up, how to estimate stories, and how to work with your QA partner.</p>
<p>Now if you’re a hobbyist and working for free, your time is cheap, and there’s no reason not to use trial and error as a learning method.  But if you’re getting paid, and your work is important, you really don’t want to waste four sprints figuring out what someone can help you get right in sprint two.</p>
<p>I’m hoping my surgeon, pilot, and barber got a few lessons before it was my turn.</p>
<p><strong>Finally…</strong></p>
<p>No one has to pass a test to call themselves “Agile,” nor should they. Agilistas don’t have a monopoly on the right way to develop software.  But when people believe they’ve made it to Agile without using critical Agile concepts like time boxing development or getting to “done”, they’re missing the real value.</p>
<p>&nbsp;</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/' addthis:title='Agile Kids Say the Darndest Things '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/11/28/agile-kids-say-the-darndest-things/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Configuration Management and Version Control Are Not the Same… Trust Me!</title>
		<link>http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/</link>
		<comments>http://accurev.com/blog/2011/11/18/software-configuration-management-and-version-control-are-not-the-same/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 15:52:13 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[release management]]></category>
		<category><![CDATA[SCM]]></category>

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

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2838</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/31/before-agile-we-never-called-it-waterfall%e2%80%a6/' addthis:title='Before Agile, We Never Called It Waterfall… ' ><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>A funny thing has happened over the last couple of years…. we started calling waterfall software development… er… &#8220;waterfall&#8221;. By this I mean, we never had a name for the process… waterfall was just called &#8220;software development&#8221;. There was no distinction or name for what we were doing- there was only one way. This is a [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/31/before-agile-we-never-called-it-waterfall%e2%80%a6/' addthis:title='Before Agile, We Never Called It Waterfall… '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/31/before-agile-we-never-called-it-waterfall%e2%80%a6/' addthis:title='Before Agile, We Never Called It Waterfall… ' ><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 funny thing has happened over the last couple of years…. we started calling waterfall software development… er… &#8220;waterfall&#8221;. By this I mean, we never had a <em>name</em> for the process… waterfall was just called &#8220;software development&#8221;. There was no distinction or name for what we were doing- there was only one way. This is a draw of agile, it&#8217;s something different.. and it&#8217;s the only new development methodology to actually get attention in the last 10 years.</p>
<p>So, what’s the deal?</p>
<p><strong>#1) Agile is an umbrella term for several methodologies.</strong><br />
Agile encompasses a lot of different things; it can mean different things to different people. This might be why people have such a hard time understanding it. So comparing &#8220;waterfall&#8221; to Agile isn&#8217;t entirely accurate, or possible, since it&#8217;s like comparing one NBA team to all of MLB. Agile encompasses several methodologies (such as XP, Scrum, Kanban), which are all iterative in nature… that brings us to…</p>
<p><strong>#2) Agile is iterative.</strong><br />
Yes, agile is an umbrella term, but all of the methods in agile share common core values: <em>The fundamentals are to incorporate iterative development and to have continuous feedback so that you can always improve.</em> This means you continuously plan, continuously test, and continuously integrate so you can adapt when needed.</p>
<p><strong>#3) Agile is adaptive, not predictive.</strong><br />
Do you remember what &#8220;waterfall&#8221; was like back in the day? We spent months gathering business requirements, writing specs, and designing, and then spent the next 10 months coding. Since we spent the first few months trying to predict what the next 10 months would entail, we could never accurately estimate how much work a task was supposed to be, and heaven forbid the requirement changed half way through! Agile is an attempt to shorten that cycle so we don&#8217;t have to waste 10 months before find out something was wrong.</p>
<p><strong>#4) You can pick and choose what methods you want to implement.</strong><br />
It’s funny. I ask people all the time, &#8220;How agile are you?&#8221; They typically say “Well, we&#8217;re somewhat agile, but not fully agile.” People tend to measure some sort of agile &#8220;zen&#8221; in their head, and that doesn&#8217;t exist! <strong>If you&#8217;re practicing some agile methodologies, you&#8217;ve won half the battle.</strong><strong><br />
</strong>You’ve won half the battle if you are practicing:<br />
·         Continuous Integration<br />
·         Agile Workflows<br />
·         Test Driven Development<br />
·         Short Iterations<br />
·         User Stories<br />
There&#8217;s no out of the box way to do this, but if these methods work for you… then you&#8217;re there.</p>
<p><strong>#5) The genius Of Agile is in the name.</strong><br />
Since the word &#8220;Agile&#8221; can&#8217;t be traced back to a specific methodology like &#8220;waterfall&#8221; we probably won&#8217;t ever think of it as &#8220;development&#8221;. In addition since it&#8217;s not a prescribed method of doing things (ex: Watefall.. requirements-&gt;design-&gt;implementation-&gt;verification-&gt;maintenance) it just can&#8217;t fail… whatever methods we use can always be improved and adapted to best suit our needs.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/10/31/before-agile-we-never-called-it-waterfall%e2%80%a6/' addthis:title='Before Agile, We Never Called It Waterfall… '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/10/31/before-agile-we-never-called-it-waterfall%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Learning From eCommerce Failures – and Successes</title>
		<link>http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/</link>
		<comments>http://accurev.com/blog/2011/09/20/learning-from-e-commerce-failures-%e2%80%93-and-successes/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 17:48:02 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[software development environment]]></category>
		<category><![CDATA[website crash]]></category>

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

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2783</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/08/increased-security-in-accurev-5-2/' addthis:title='Increased Security in AccuRev 5.2 ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>AccuRev&#8217;s security has advanced to the next level with the release of version 5.2. One of the great new features that I&#8217;m happy to introduce is Access Control Lists, or ACLs. AccuRev&#8217;s ACLs Have you ever wanted to fine tune your security for files or streams based on role, group or user? Now you can using [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/08/increased-security-in-accurev-5-2/' addthis:title='Increased Security in AccuRev 5.2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/08/increased-security-in-accurev-5-2/' addthis:title='Increased Security in AccuRev 5.2 ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>AccuRev&#8217;s security has advanced to the next level with the <a href="http://www.accurev.com/press-releases/20110726-accurev-52-advances-software-configuration-management-industry-leading-perfo">release of version 5.2.</a> One of the great new <a href="http://www.accurev.com/scm-features.html" target="_blank">features</a> that I&#8217;m happy to introduce is Access Control Lists, or <strong>ACLs.</strong></p>
<h2>AccuRev&#8217;s ACLs</h2>
<p>Have you ever wanted to fine tune your security for files or streams based on role, group or user? Now you can using our new built in security commands. Here&#8217;s how it works:</p>
<p>In addition to locks, each stream can have one or more permissions. This also applies to files and directories. This means that you can control who can modify/see certain streams, and who can modify/see specific elements.</p>
<p>Setting ACLs are easy, this can be done via the CLI:</p>
<p>C:\Users\clucca&gt;accurev setacl stream phoenix_Client chris all</p>
<p>The ACL has been set successfully.<a href="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls.jpg"><img class="aligncenter size-full wp-image-2784" title="ACLs" src="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls.jpg" alt="acls Increased Security in AccuRev 5.2" width="628" height="113" /></a></p>
<p>This will now lock me out of all the files under the phoenix_Client stream…</p>
<p>If I try to access that stream in the GUI, I will receive this message:<br />
<a href="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls2.jpg"><img class="aligncenter size-full wp-image-2785" title="ACLs" src="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls2.jpg" alt="acls2 Increased Security in AccuRev 5.2" width="358" height="139" /></a> This also works for files and directories, which is great for teams that want to have secure outsourcing and security conscious development initiatives.</p>
<p>In addition you can use the lsacl command to list permissions. You can see that for the stream phoenix_Client chris has no rights to access it, but the permission doesn&#8217;t inherit to the rest of the streams, so I can access everything underneath it.</p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls3.jpg"><img class="aligncenter size-full wp-image-2786" title="ACLs" src="http://www.accurev.com/blog/wp-content/uploads/2011/09/acls3.jpg" alt="acls3 Increased Security in AccuRev 5.2" width="628" height="49" /></a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/08/increased-security-in-accurev-5-2/' addthis:title='Increased Security in AccuRev 5.2 '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/09/08/increased-security-in-accurev-5-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Issue Based Development</title>
		<link>http://accurev.com/blog/2011/09/02/issue-based-development/</link>
		<comments>http://accurev.com/blog/2011/09/02/issue-based-development/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 14:37:37 +0000</pubDate>
		<dc:creator>damonpoole</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[issue-based development]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2779</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/02/issue-based-development/' addthis:title='Issue Based 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>At AccuRev, we’ve noticed a new practice emerging that we call “Issue Based Development.” You may have heard of this term or something like it such as Work Item Based Development or even “requirements traceability.” Whatever you call it, more and more teams are gravitating towards it, perhaps as a result of adopting some of [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/02/issue-based-development/' addthis:title='Issue Based 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/2011/09/02/issue-based-development/' addthis:title='Issue Based 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><span style="font-weight: normal;">At AccuRev, we’ve noticed a new practice emerging that we call “Issue Based Development.” You may have heard of this term or something like it such as Work Item Based Development or even “requirements traceability.” Whatever you call it, more and more teams are gravitating towards it, perhaps as a result of adopting some of the Agile practices. In this post I will give an overview of Issue Based Development as well as talk about how to maximize your success with the practice.</span></p>
<p>Issue Based Development is the practice of breaking all work down into individual issues; associating all work products such as code, tests, and documentation with those issues; and managing the progression of work through the various stages of your software lifecycle via those issues.</p>
<p>The benefits of Issue Based Development include requirements traceability, better progress and status tracking, and simpler application of patches from one stream of development to another. These benefits and more will be covered as we cover the individual practices that make Issue Based Development possible.</p>
<h2>Track All Work by Issues</h2>
<p>Whether you have requirements, enhancement requests, escalations, defects, bugs, tasks, user stories, RFE’s or some other way to describe work, it all goes into issues. You may use a different term to generically describe tracked work, such as work items, but in this post I will use the term issues.</p>
<p>Today, many companies use some combination of Excel, Word, a Requirements Management system, a bug tracking system, MS Project, and an Agile Project Management tool to track “different” kinds of work. In the end though, somebody has to be assigned the work and that work needs to be explained to them in a way that makes sense to them. Why not use issues as the final unit of describing work, whether you continue to use the other systems or not?</p>
<h2>Make All Issues Available in a Single Place</h2>
<p>Using issues to describe and track all work implies that all issues for a particular project eventually end up in a single Issue Tracking System (ITS). The obvious way to achieve this is to simply move everybody to use the same ITS and to use it for all work-related artifacts, from defects to requirements to whatever else it is that you use. In reality this is difficult to achieve, but is the right goal to strive for, to the extent that you can.</p>
<h2>Synchronize Multiple Work Tracking Systems</h2>
<p>A good complement to moving as much work tracking to a single ITS system as possible is to synchronize issues from other work tracking systems to a single ITS system. For instance, AccuRev provides AccuBridge and AccuSync to enable you to have all of your work in a single system.</p>
<h2>Link Issues to the Work Performed</h2>
<p>Once you have all of your work tracked via issues in a single ITS, you are now ready to take the next step, linking all of your issues to the work performed to implement those issues. I’m assuming that you are keeping all of your work artifacts such as code, test, and documentation in your Software Configuration Management (SCM) system. The best way to link your issues to the work performed is to use an SCM object called a Change Package. Some systems may have a similar object called a change list or change set. AccuRev uses change packages.</p>
<p>By linking issues to work artifacts, you can now manage by issues instead of by files. For instance, instead of trying to figure out which files correspond to a set of hotfixes that you want to apply to new development, you can instead refer to the issues that represent those hotfixes and have the SCM system do all the hard work of determining the exact set of changes and promoting those changes from one environment to another.</p>
<h2>Use a Stream Per Stage</h2>
<p>Having a set of promotion stages is a great complement to Issue Based Development. By having a set of stages corresponding to your development workflow, you can easily see what stage of development various issues are really in simply by querying your SCM system. Doing reports against your ITS are good, but those are generally hand updated. Your SCM system reflects the real state of your code.</p>
<p>A typical set of stages might be “Todo,” “WIP,” “Coded,” “Tested,” and “Done.” You can represent each of these promotion stages with Streams in your SCM system. This allows you to associate Continuous Integration servers which each stage and build versions of your product corresponding to those stages. Imagine for instance being able to build a version of your product that has <em>only</em> tested stories in it.</p>
<p>Another benefit of this arrangement is that it enables “One Piece Flow.” For more on this topic, see my related (<a href="http://damonpoole.blogspot.com/2009/09/one-piece-flow-transitioning-from-scrum.html">http://damonpoole.blogspot.com/2009/09/one-piece-flow-transitioning-from-scrum.html</a>) DIY Agile blog post.</p>
<h2>Keep Issues as Small as Possible</h2>
<p>Most organizations are good at tracking all bugs in a bug-tracking system, but usually track new work via Word documents which describe very large chunks of work. When moving to Issue Based Development it is important to break these large chunks down into as many and as small issues as you possibly can. This is important for two reasons.</p>
<p>First, it is next to impossible to measure real progress against very large chunks of work. By breaking work down into small issues, it is easier to measure progress by seeing how many issues are fully coded, tested, documented, and ready to ship and measuring the amount of effort associated with those issues.</p>
<p>Second, working on small issues reduces the chances of “issue entanglement.” Entanglement occurs when two issues have changes that are dependent on each other in such a way that they become impossible to promote independently. The ideal is to have one person (or programming pair) work on a single issue at a time and for that issue to be finished in days rather than weeks. The more people working on an issue an the longer they are working on that issue, the more likely it is that the issue will become entangled with multiple other issues.</p>
<p>I’ve often heard people wonder why the SCM system can’t make this simpler. At AccuRev, we are always striving to make Change Packages simpler to use, but the simple fact is that there are limits to how much can be done to simplify entanglement issues. It is generally much more productive to apply the practices in this post which have benefits in and of themselves as described throughout.</p>
<h2>Apply the Open/Closed Principle</h2>
<p>Large files are another factor that contributes to issue entanglement. Often, frequently used and/or complex classes create large source files. This is similar to the problem of large issues. The larger a file is, the more likely it is that multiple people will be working on it within the same timeframe and thus the more likely it is to lead to issue entanglement.</p>
<p>There is a very useful principle that comes from Objected Oriented programming called the “Open/Closed” principle. This is the idea that software should be open to addition, but closed to change. In its pure form this means that you only add and extend classes and change them as a matter of last resort. A slightly modified version of this would be to only add new methods and to avoid changing them. Also, changing methods should be restricted to rewriting the code such that it adheres better to the principle by being easier to add new methods to and requiring less change to existing methods. This is a very common refactoring pattern.</p>
<p>The side-effect of the Open/Closed principle is that you end up with smaller source code files. The smaller your files are, the less likely you are to run into entanglement and merge issues.</p>
<h2>Start Towards Issue Based Development Today</h2>
<p>Whether you follow these principles and practices to the letter or not, the more you follow them, the easier it will be to practice Issue Based Development. The better you are at Issue Based Development, the more success you will have with requirements traceability, progress and status tracking, and the application of patches from one stream of development to another.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/09/02/issue-based-development/' addthis:title='Issue Based 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/2011/09/02/issue-based-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What&#8217;s New in AccuRev Version 5.2?</title>
		<link>http://accurev.com/blog/2011/08/22/accurev-5-2/</link>
		<comments>http://accurev.com/blog/2011/08/22/accurev-5-2/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 13:39:41 +0000</pubDate>
		<dc:creator>damonpoole</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[change packages]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Integrations]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Product Review]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[product review]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2761</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/22/accurev-5-2/' addthis:title='What&#8217;s New in AccuRev Version 5.2? ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>I’m very excited about our 5.2 release! We’ve completed the move to PostgreSQL on the back end, fully internationalized our products, and added a slew of new features, like per-element security so that you can lock down certain files or directories to specific groups or users. In addition to moving to PostgreSQL, we’ve taken advantage [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/22/accurev-5-2/' addthis:title='What&#8217;s New in AccuRev Version 5.2? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/22/accurev-5-2/' addthis:title='What&#8217;s New in AccuRev Version 5.2? ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>I’m very excited about our <a href="http://www.accurev.com/whatsnew.htm" target="_blank">5.2 release</a>! We’ve completed the move to PostgreSQL on the back end, fully internationalized our products, and added a slew of new features, like per-element security so that you can lock down certain files or directories to specific groups or users.</p>
<p>In addition to moving to PostgreSQL, we’ve taken advantage of its capabilities to increase performance in a few key areas such as update, especially when using cross-links, populate, and more. And as a first step towards fully embracing 64bit servers, we now support 64bit CPUs on Linux servers. You can look forward to additional performance boosts as we exploit the capabilities of PostgreSQL in the future.</p>
<p>Haven’t upgraded in a while? Check out what else is new! To get a full flavor of all of the new functionality we’ve added recently, check out recent <a href="http://www.accurev.com/webinars/20110727-first-look-accurev-52" target="_blank">webinar</a> which highlights what’s new.</p>
<p>If you haven’t tried our plug-ins in a while, we&#8217;ve put out new releases of our <a href="http://www.accurev.com/accubridge-eclipse.html" target="_blank">Eclipse</a> and <a href="http://www.accurev.com/accubridge-visual-studio.html" target="_blank">Visual Studio</a> plug-ins for all versions of AccuRev. Eclipse and Visual Studio plug-ins will work with older releases, so no need to wait for 5.2 to start benefiting from the new features in the plug-ins.</p>
<p>We’ve fully integrated the <a href="http://www.accurev.com/web-interface.html" target="_blank">Web UI</a> into the plug-ins so you can now use all of the following functionality: version browser, annotate, stream browser, and all of AccuWork.  Also, in 5.2 you can now access the Web UI with a single click from most screens. For instance, if you want to send somebody a URL of a file or diff, you can just click the “copy to clipboard” button in the toolbar and then compose an e-mail to somebody and paste in the URL. When they click the URL, they will go right to that file or diff. And the Web UI now allows you to print any table that it supports.</p>
<p>While we are in the process of making the new functionality in the Web UI available in all of our UIs, this is a great first step to quickly link to the new functionality.</p>
<p><strong>A Few More Details on What’s Available Via the Web UI<br />
</strong>If you haven’t used the Web UI or are using an older version, you may not have heard that there is an entirely new version browser in the Web UI and for <a href="http://www.accurev.com/issue-tracking.html" target="_blank">AccuWork</a> users- AccuWork on the Web has been completely revamped. For instance, it is easy to search by keyword and you can do drag and drop query editing.</p>
<p><strong> 5.3 and Beyond&#8230; Here We Come!<br />
</strong>The database and internationalization are two very important infrastructure changes which will accelerate both our engineering velocity as well as our market penetration. With our upcoming 5.3 release we will be re-introducing our quarterly pace of releases as we had with our 4.8 and 4.9 releases. With the switch to PostgreSQL and an internationalized code base complete, you will see the release of new functionality faster than ever before.  In preparation for 5.3 and beyond, we’ve just launched a new product survey as one of the many ways we collect product priorities. Make sure to look for it and fill it out. It is one of the best ways to have a significant impact on our product roadmap. If you haven’t gotten an e-mail yet, you may not be in our survey database. Just ask your AccuRev administrator for a link.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/08/22/accurev-5-2/' addthis:title='What&#8217;s New in AccuRev Version 5.2? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/08/22/accurev-5-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coming Soon: The Next Phase in the Evolution of SCM</title>
		<link>http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/</link>
		<comments>http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 16:46:11 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Product Review]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[product review]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2686</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/' addthis:title='Coming Soon: The Next Phase in the Evolution of SCM ' ><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>In a recent post I talked about branching and merging, and offered some tips on how to avoid development nightmares involved with these procedures. An integral part of the solution I cited is stream branching, which easily accepts parent code while allowing developers to then push code out to other streams. This makes merging easier [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/' addthis:title='Coming Soon: The Next Phase in the Evolution of SCM '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/' addthis:title='Coming Soon: The Next Phase in the Evolution of SCM ' ><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>In a recent post <a href="http://www.accurev.com/blog/2011/07/11/branching-and-merging-or-how-to-learn-to-love-change/">I talked about branching and merging</a>, and offered some tips on how to avoid development nightmares involved with these procedures.</p>
<p>An integral part of the solution I cited is stream branching, which easily accepts parent code while allowing developers to then push code out to other streams. This makes merging easier because the entire file change history is available and automatically tracked.</p>
<p>Streams have been an important step in advancing software configuration management (SCM) technologies and processes. Now, with software development growing more complex seemingly by the day, the time has come for the next phase of more robust SCM solutions.</p>
<p>Between globally distributed teams, emerging methodologies such as Agile, and market demands for faster, better and more cost-effective software, there is great demand for enterprise developers to better manage all of their activities. In addition, industries such as financial services and healthcare face the added complexity of compliance with regulations such as SOX and HIPAA.</p>
<p>I’m excited about some big news we’ll be announcing next week around these challenges. What AccuRev is announcing will be a major step forward both for our clients and the software development industry – it really is the next leap forward for SCM solutions.</p>
<p>I can’t reveal too many details at this point, but stay tuned for more details coming soon – on this blog and the news wires!</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/' addthis:title='Coming Soon: The Next Phase in the Evolution of SCM '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/07/20/next-phase-in-evolution-of-scm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integration &amp; Enabling Local Developer Builds</title>
		<link>http://accurev.com/blog/2011/06/20/continuous-integration-builds/</link>
		<comments>http://accurev.com/blog/2011/06/20/continuous-integration-builds/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 18:11:54 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[best practice]]></category>
		<category><![CDATA[developer build]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2658</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/06/20/continuous-integration-builds/' addthis:title='Continuous Integration &#38; Enabling Local Developer Builds ' ><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>Goals of Continuous Integration If a primary goal of continuous integration is to improve software quality and reduce downstream build and test failures, then perhaps the single most important SCM best practice is to enable automated local developer builds. To this end, developers should be provided with access to a local build environment that mirrors [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/06/20/continuous-integration-builds/' addthis:title='Continuous Integration &#38; Enabling Local Developer Builds '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/06/20/continuous-integration-builds/' addthis:title='Continuous Integration &amp; Enabling Local Developer Builds ' ><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><h2>Goals of Continuous Integration</h2>
<p>If a primary goal of <a href="http://www.accurev.com/continuous-integration.html" target="_blank">continuous integration</a> is to improve software quality and reduce downstream build and test failures, then perhaps the single most important SCM best practice is to enable automated local developer builds. To this end, developers should be provided with access to a local build environment that mirrors the production build environment, including:</p>
<ul>
<li>Database schema</li>
<li>Configuration files</li>
<li>Environment variables</li>
<li>Shared libraries and files</li>
<li>Known compiler/linker/runtime environments</li>
</ul>
<p>This minimizes the “it compiled fine on my machine” syndrome that plagues many development efforts. Once the build environment is available, every effort should be made to automate the local build, so that each developer can build easily and quickly without having to perform a series of manual steps.</p>
<p>Ideally, the developers should have access to a private build area that uses the same tools and configurations as the production builds. As part of configuring a local build, developers should be trained to take several steps to ensure that local changes will have minimal negative effects once shared with other developers and teams. These steps are as follows:</p>
<ul>
<li>Updating their private workspace to obtain the latest shared configuration code</li>
<li>Merging conflicting changes from the shared configuration to their private workspace</li>
</ul>
<p>By ensuring that developers have known, good build environments, and that they have the latest code with all conflicts resolved, there is high probability that the local build will succeed. If the local build is successful, a continuous integration build that includes the developer’s changes should also succeed.</p>
<h2>Shifting to Continuous Integration and Frequently Updating Code</h2>
<p>Traditionally, developers tend to put off sharing their changes, sometimes for days, because they don’t want to affect other people too early, or don’t want to get blamed for breaking the build. Unfortunately, this strategy tends to backfire and typically leads to more problems in debugging larger sets of changes after a build breaks. Independent of whether continuous integration is being employed, encouraging developers to build, test, and share their code in small “chunks” is a simple and effective way to improve team collaboration and reduce costly broken builds.</p>
<p>The importance of frequently updating the code in the <a href="http://www.accurev.com/scm.html" target="_blank">SCM</a> system is amplified when organizations move towards a continuous integration model. Continuous integration represents a paradigm shift for software development, emphasizing communication between developers about what changes have been made. By breaking down tasks into small chunks that take several hours to complete, developers can “commit” or “promote” their changes frequently and receive immediate feedback about the quality of the changes through the continuous integration build and unit test results. As teams get accustomed to this new approach, developers also gain a sense of progress by seeing not only their own changes build successfully, but also seeing the changes that other developers have made available.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/06/20/continuous-integration-builds/' addthis:title='Continuous Integration &amp; Enabling Local Developer Builds '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2011/06/20/continuous-integration-builds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

