<?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; agile process</title>
	<atom:link href="http://accurev.com/blog/tag/agile-process/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>Agile and SCM: Helping You Get to &#8220;Done&#8221;</title>
		<link>http://accurev.com/blog/2011/01/24/agile-scm-get-done/</link>
		<comments>http://accurev.com/blog/2011/01/24/agile-scm-get-done/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 17:02:06 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[change packages]]></category>
		<category><![CDATA[user stories]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[branching and merging]]></category>
		<category><![CDATA[code review]]></category>
		<category><![CDATA[iteration]]></category>
		<category><![CDATA[requirements]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[software configuration managment]]></category>
		<category><![CDATA[sprint]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2507</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/01/24/agile-scm-get-done/' addthis:title='Agile and SCM: Helping You Get to &#8220;Done&#8221; ' ><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>You spent the last 2 weeks working on 10 user stories for you sprint. Your team has completed 8 of the 10 user stories, and now it’s time to show a working demo for your sprint review. Sounds like a typical scenario right? Here’s the problem, the 2 remaining user stories have partial work associated [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/01/24/agile-scm-get-done/' addthis:title='Agile and SCM: Helping You Get to &#8220;Done&#8221; '  ><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/01/24/agile-scm-get-done/' addthis:title='Agile and SCM: Helping You Get to &#8220;Done&#8221; ' ><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>You spent the last 2 weeks working on 10 user stories for you sprint. Your team has completed 8 of the 10 user stories, and now it’s time to show a working demo for your sprint review. Sounds like a typical scenario right?</p>
<p>Here’s the problem, the 2 remaining <a href="http://www.accurev.com/blog/2010/06/28/breaking-down-user-stories/" target="_blank">user stories</a> have partial work associated with them. That code is in your source control system, and in order to correctly demo or ship what was accomplished in your sprint, you’re going to have to do some work to create a “done” product. You will have to subtractively merge those changes, or put them on another branch, then re-test the application, redeploy.. check the changes again etc. There is still a lot of work to finished in getting this sprint to “done.”</p>
<p>One way to get around this is to associate user stories with code changes in your <a href="http://www.accurev.com/agile-scm.html" target="_blank">SCM</a> tool.  AccuRev already creates a link between your user stories and code in the form of change packages. Creating that link between the user stories and your code is the first step. But using a powerful story-driven process out of this linkage is the key to “getting to done” in an Agile environment.</p>
<p>Your user story will move through different stages as you move through your process. One user story may have these states:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2509" title="Agile &amp; SCM- User Stories Process" src="http://www.accurev.com/blog/wp-content/uploads/2011/01/chart.png" alt="chart Agile and SCM: Helping You Get to Done" width="696" height="350" /><strong>DEV</strong>- Currently in progress with dev team, or “coding”<br />
<strong> QA</strong>- Coding finished, ready for QA to test<br />
<strong> UAT</strong>- QA finished ready for user acceptance testing<br />
<strong> PROD</strong>- Tested by QA and users, ready to ship</p>
<p>However, while  user stories move through this process, the code doesn’t follow. Traditional SCM systems are designed around single branches and a long and lengthy merge processes. Fast paced Agile environments expose those limitations as development teams struggle to ship code to customers at the end of iterations.</p>
<p>During that iteration, testers may want to test completed user stories, but need a stable configuration to do so. If you’re using a traditional waterfall <a href="http://www.accurev.com/accurev-branching-merging.html">branching and merging</a> based SCM tool, you may end up with some user stories ready for QA, and some still in the DEV stage, creating a poor testing environment and broken builds. As a result, developers often delay committing code so changes can be implemented, tested, and passed to QA before they integrate.</p>
<p>During your retrospective of the previous iteration, you may decide that parts of your process need modification. For example, you may decide to add a code review process right before testing. Your SCM system has to be flexible to enable this new step without time consuming tasks, like re-writing scripts.</p>
<h2>SCM and an Agile Process</h2>
<p>The trick is to have an SCM system that can help you manage and enforce an Agile process. Code should be able to follow the same process user stories follow. If a user story is in QA, all of the code needed to test that issue should reside in a QA configuration. The same goes for DEV, UAT, PROD, or any other process that is part of your environment.</p>
<p>A<a href="http://www.accurev.com/scm-features.html" target="_blank"> stream structure</a> is an easy way to  process change &#8211; streams can be added to adjust your process. In a few clicks, you can add a code review between a DEV, and QA step.</p>
<h2>Agile and SCM: Avoiding Agile Merge Hell</h2>
<p>As you start to scale <a href="http://www.accurev.com/agile-software-development.html" target="_blank">Agile</a>, code and user stories have to be merged more often. Sometimes changes my flow from one organization to another. This means that you will need to take code from one team, merge, integrate and test those changes with everyone. Each team needs to be able to work on their own schedule, this means that if multiple teams want to work on different sized iterations they can. In addition they can deliver changes as they need to on a regular basis, independent of the the other teams.</p>
<p>The problem here is that to do this in a traditional SCM system, you would have to merge these code changes daily for them to be of any use. You also still need to keep visibility into what stories are shared between teams, because delivering changes from user stories that are not completed in a sprint would be disastrous.</p>
<p>Typically, the type of configuration people use for this is a single baseline or “trunk” methodology, where all changes from each team are delivered to trunk and pulled from trunk as their iterations are completed.</p>
<p>Working within an Agile context, your teams will have to deal with these <a href="http://www.accurev.com/smartbranch-easymerge.html" target="_blank">branching and merging </a>issues. But there are other problems that can happen when you use this methodology:</p>
<ol>
<li>Delivering 2 weeks worth of changes only causes isolation among teams.</li>
<li>It’s too hard to pick out each user story as it completes from our codebase.</li>
<li>Figuring out the dependencies of those user stories is complex.</li>
<li>Being able to identify what changes came from each branch is impossible.</li>
</ol>
<p>This “baseline pollution” is not scale-able. You can get around this by using a development hierarchy, and manage the relationship of dependencies between branches. This could also include process steps such as integration, quality assurance, and code reviews.  A separate code configuration can be used for each step and user stories could simply be drag and dropped between each team, state or branch instead of a merge.</p>
<p>Doing this will increase code stability. As a completed user story is pushed from one stage to the next, the particular change, as well as the system as a whole, reaches a higher level of maturity. While many traditional SCM tools do not easily support or surface a development hierarchy, AccuRev supports the creation of a hierarchy, gives visibility into the changes at each stage, and enables straightforward merging between stages.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2011/01/24/agile-scm-get-done/' addthis:title='Agile and SCM: Helping You Get to &#8220;Done&#8221; '  ><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/01/24/agile-scm-get-done/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Is your Executive Team Committed to Agile Adoption?</title>
		<link>http://accurev.com/blog/2010/04/20/executive-team-committed-agile/</link>
		<comments>http://accurev.com/blog/2010/04/20/executive-team-committed-agile/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 18:57:29 +0000</pubDate>
		<dc:creator>Bob DeMaria</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Educational Webinars]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[success factors]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=1509</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/20/executive-team-committed-agile/' addthis:title='Is your Executive Team Committed to Agile Adoption? ' ><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>We recently produced a webinar here at AccuRev, co-sponsored by Rally Software, about the Top 10 Factors for a Successful Agile Implementation.  #10 on that list was the Executive Commitment.  We all know that having an executive team committed to the success of a project of any kind is important, but in the Agile world [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/20/executive-team-committed-agile/' addthis:title='Is your Executive Team Committed to Agile Adoption? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/20/executive-team-committed-agile/' addthis:title='Is your Executive Team Committed to Agile Adoption? ' ><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>We recently produced a webinar here at <a href="http://www.accurev.com/">AccuRev</a>, co-sponsored by <a href="http://www.accurev.com/rally.html">Rally Software</a>, about the Top 10 Factors for a Successful Agile Implementation.  #10 on that list was the Executive Commitment.  We all know that having an executive team committed to the success of a project of any kind is important, but in the <a href="http://www.accurev.com/agile-scm.html">Agile</a> world it is even more critical.  Adopting Agile as a new methodology is a major shift in the way of thinking of how your business is being run, for the better.</p>
<p>As Agile adoption starts to take hold in your organization it can follow two different paths &#8211; from a motivated development team on up, or from an executive edict on down.  Either way you have decided to make a move toward Agile adoption, one of the very first hurdles you will encounter is executive buy-in.  Many changes are in store for your organization and to insure success you’re going to need to have that <strong>executive commitment</strong>.</p>
<p>First and foremost, let’s make sure the executive team has complete sponsorship of the Pilot project. While I will discuss selecting a Pilot team in a future blog post, you need to make sure that management is behind this launch. Management needs to be completely committed and willing to smooth any resistance that you may run up against as that pilot process starts to take off and Agile practices start to take hold.</p>
<p>Next is the area of trust and respect.  The people taking part in the transition need to do their best. There’re going to be a lot of changes happening within in the organization: the way people think, the way people function, the way teams interact.  Management really needs to be committed in changing to Agile development, and while there are going to be some pains and adjustments necessary, management will trust and respect that people on development teams are making the best choices for the organization.</p>
<p>Trust and respect is important due to the fact that Agile practices cause a major shift in the ways of thinking.  You’ve probably heard mention of the cultural change that Agile is going to impart on your organization. Executives need to be aware of a major shift in the way people think and the way people do business.</p>
<p>To expand on that just a little bit, it is necessary to ensure that the entire organization supports the transition to Agile development.  I’m not talking about just the development teams; we need to make sure that management understands that it’s going to impact the customers, and for the better. Agile is going to make the organization more productive, more effective, and more efficient, but it is going to cause changes and growing pains as we move towards that process.</p>
<p>One other area that I wanted to bring up briefly, is that going Agile does require an investment.  So management needs to understand there will be upfront investments in transitioning to Agile development and in turn, reaping the benefits of Agile.  That being said, rate of return on your investment can be very swift.  I’m tempted to say “will” be very swift, but obviously it’s going to depend on the successfulness of the project.</p>
<p>To understand some of those returns is to really understand the business benefits and value as well as making sure executives understand those as well, because there <em>is</em> a lot of value to the organization by adopting Agile. It’s not just making better, faster developers, obviously.  We’re talking about faster time to market.  Because we’re developing and shipping smaller increments of high-priority code we’re able to get that code to market much more quickly. That is obviously going to mean increased revenues by being able to hit the market need more quickly and get EXACTLY what the customer wants out the door. We’re going to be able to achieve an increase in revenue based on those features and those enhancements that are going out the door.</p>
<p>All of this because of the way the Agile development process is done and the way testing is baked-in and moved closer to the development cycle.</p>
<p>So all of those features that are getting to market quicker while increasing our revenues are going to be higher quality, as well.  Overall that’s going to greatly increase customer satisfaction as to the type and the software features they’re actually seeing based upon our Agile development.</p>
<p>Now that the executives are on board… how about we take a look at picking the Pilot?</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/20/executive-team-committed-agile/' addthis:title='Is your Executive Team Committed to Agile Adoption? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2010/04/20/executive-team-committed-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Webinar: The Business Case for Pragmatic ALM &#8211; Agility with Governance</title>
		<link>http://accurev.com/blog/2008/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/</link>
		<comments>http://accurev.com/blog/2008/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 16:06:00 +0000</pubDate>
		<dc:creator>jwaccurev</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[AccuRev webinar]]></category>
		<category><![CDATA[Agile and compliance]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[Agility]]></category>
		<category><![CDATA[ALM]]></category>
		<category><![CDATA[Free agile webinar]]></category>
		<category><![CDATA[Governance]]></category>
		<category><![CDATA[manage multiple processes]]></category>
		<category><![CDATA[Pragmatic ALM]]></category>
		<category><![CDATA[release management]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[software change and configuration management]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=537</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/' addthis:title='Free Webinar: The Business Case for Pragmatic ALM &#8211; Agility with Governance ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>As an AccuRev blog reader, you&#8217;re welcome to attend our upcoming free webinar that will discuss the intersection of Agile development and governance: As more and more software development teams adopt Agile or other iterative processes it becomes difficult for them to reconcile the current state of their governance practices with a need for greater [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/' addthis:title='Free Webinar: The Business Case for Pragmatic ALM &#8211; Agility with Governance '  ><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/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/' addthis:title='Free Webinar: The Business Case for Pragmatic ALM &#8211; Agility with Governance ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p>As an AccuRev blog reader, you&#8217;re welcome to attend our upcoming free webinar that will discuss the intersection of Agile development and governance:</p>
<div>As more and more software development teams adopt Agile or other iterative processes it becomes difficult for them to reconcile the current state of their governance practices with a need for greater speed and improved productivity. Developers get frustrated with overbearing compliance regimens that fence them in and stifle creativity, while their managers struggle with the need to balance innovation and speed with predictability and control. In today’s market environment, eliminating waste and fast implementations that demonstrate value quickly are essential.</div>
<div>
<p>Join experts from AccuRev and special guest <strong>Forrester Senior Analyst <a href="http://www.forrester.com/rb/analyst/jeffrey_hammond" target="_blank">Jeffrey Hammond</a></strong>, as they examine the market trends that are driving many organizations to reassess their software development and release processes, and what steps and tools these development teams are taking to best support heterogeneous software development process environments. You will also see a live demonstration of how to implement pragmatic ALM with AccuRev.</div>
<p><strong>Attend this Webinar and learn:</strong></p>
<p>How Agile processes and compliance can coexist in harmony</p>
<p>What pragmatic ALM is and how it can help you solve today’s business challenges</p>
<p>How to manage multiple processes dependent on project requirements (Waterfall, Agile, etc.)</p>
<p>Best practices for optimizing tools and processes for both software development and release management.</p>
<p><strong>When:</strong> Thursday, December 4 at 1:00 PM EST</p>
<p><strong>Register: </strong><a href="https://www1.gotomeeting.com/register/346195726?mtcCampaign=6338" target="_blank">The Business Case for Pragmatic ALM: Agility with Governance</a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/' addthis:title='Free Webinar: The Business Case for Pragmatic ALM &#8211; Agility with Governance '  ><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/12/01/free-webinar-the-business-case-for-pragmatic-alm-agility-with-governance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Seven Deadly Sins of Software Application Development &#8211; Part 2 of 2</title>
		<link>http://accurev.com/blog/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/</link>
		<comments>http://accurev.com/blog/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 16:32:11 +0000</pubDate>
		<dc:creator>lorne cooper</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[application development]]></category>
		<category><![CDATA[automated regression test]]></category>
		<category><![CDATA[build process]]></category>
		<category><![CDATA[building a software team]]></category>
		<category><![CDATA[development process]]></category>
		<category><![CDATA[flexible process]]></category>
		<category><![CDATA[offshore application development]]></category>
		<category><![CDATA[Offshore development]]></category>
		<category><![CDATA[regression testing]]></category>
		<category><![CDATA[software application development]]></category>
		<category><![CDATA[software process automation]]></category>
		<category><![CDATA[test process]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=216</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/' addthis:title='The Seven Deadly Sins of Software Application Development &#8211; Part 2 of 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>by Lorne Cooper, CEO, AccuRev    A Top 25 WordPress Blog Post of the Day   In Part 1, we looked at the sins of Building a Weak Team and Ignoring the Future.  Once you’re committed to hiring talent and building a forward-looking process, there are two more sins to avoid.   Sin #6: A [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/' addthis:title='The Seven Deadly Sins of Software Application Development &#8211; Part 2 of 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/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/' addthis:title='The Seven Deadly Sins of Software Application Development &#8211; Part 2 of 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 class="MsoNormal" style="margin:0"><strong>by Lorne Cooper, CEO, AccuRev</strong> </p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0"><em><strong>A Top 25 WordPress Blog Post of the Day</strong></em></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small">In <a title="The Seven Deadly Sins of Software Application Development - Part 1 of 2 " href="http://blog.accurev.com/2008/06/26/the-seven-deadly-sins-of-software-application-development-part-1-of-2/" target="_blank">Part 1</a>, we looked at the sins of Building a Weak Team and Ignoring the Future.<span>  </span>Once you’re committed to hiring talent and building a forward-looking process, there are two more sins to avoid.</span></p>
<p class="MsoNormal" style="margin:0"> </p>
<h2 style="margin:12pt 0 3pt"><em><span style="font-size:large;font-family:Arial">Sin #6: A Long Tail After Development is Complete</span></em></h2>
<p style="margin:12pt 0 3pt"> </p>
<p class="MsoNormal" style="margin:0"><span>We constantly see organizations where the time from “requirements-in” to “feature freeze” is half the time to “solutions-out.”<span>  </span>That 50% “tail” on development provides no direct value to customers, but is there because of limitations in our development process. </span></p>
<p class="MsoNormal" style="margin:0"><span> </span></p>
<p class="MsoNormal" style="margin:0"><span><span>Sometimes that tail is twice the length of the initial development.<span>  </span></span></span></p>
<p class="MsoNormal" style="margin:0"><span> </span></p>
<p class="MsoNormal" style="margin:0"><span>Ironically, while the long heavy tail is grown to protect the organization from delivering bad product, it eventually decreases response time until it becomes an instrument in the organization’s death.</span></p>
<p class="MsoNormal" style="margin:0"><span> </span></p>
<p class="MsoNormal" style="margin:0"><span>But many industries have a long tail, don’t they?<span>  </span>Surely it doesn’t hurt the construction of bridges that the plans are completed long before the bridge is built.</span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small">For forty years people have tried to make analogies between software development and more mature engineering disciplines, say, like building buggy whips.<span>  </span>The designer of the buggy whip might make a sample or two to try it out on his children, then send it off to the factory, where a slew of Industrial Buggy Whip Engineers would spend months figuring out how to sew the damn things, buying up horse-hair, and hiring immigrants to sit at sewing machines. A year or so late, Pony Express delivers the new buggy whip to general stores all over the Grand Trunk Railway line.<span>  </span></span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">We can all certainly learn a lot from that.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Now try telling your customer that the problem she’s been working around is well understood, and in fact fixed, but she’s not going to get it for three months.<span>  </span>She’ll be looking for alternative suppliers before the screen door has hit your butt.<span>  </span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Everything moves too fast to use that tired old process.<span>  </span>Frankly, I use to blame computers.<span>  </span>Now I blame the Internet.<span>  </span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">When you take a hard look at the time it takes to get completed product out the door, you’ll probably find it dominated by two things: testing, and fixing bugs that the testers find.<span>  </span>Both stem from the problem that you’re not doing enough testing during the development process, and you’re trying to test too much at one time.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small">I’m no fan of Hawthorn-effects, or what the politically incorrect might call gimmicks, like pair programming or stand-up meetings, but projects that use an Agile development with automated regression test processes are certainly doing more right than wrong.<span>  </span></span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Is it really so hard to manage by tasks/issues, normalize them to a small unit of work, merge in just one set of changes into each build, and test just that perturbation?<span>  </span>What if you knew you would consistently get better code out the back of the process, and therefore make your organization more responsive to your customers?</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Your development process must minimize latency, instead of trying to maximize bandwidth.<span>  </span>Don’t miss the changes in requirements and environments that produce opportunities for better products, or sooner or later you’ll end up locked in a suicide pact with a project no one wants.</p>
<p class="MsoNormal" style="margin:0"> </p>
<h2 style="margin:12pt 0 3pt"><em><span style="font-size:large;font-family:Arial">Sin #7: Complacency</span></em></h2>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0"><span style="font-size:small">Calais’s stone walls were so thick the city had no fear of invaders, until they showed up with cannons.<span>  </span>Napoleon’s Old Guard was undefeated in battle after battle, until they were cut down by Wellington at Waterloo.<span>  </span>Big Blue’s OS/2 would crush little Microsoft’s Windows product.<span>  </span>Big Microsoft’s Live Search would crush little Google’s search engine.<span>  </span></span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Hubris on ice will leave you with a heck of a hangover.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">That brilliant team using that wonderful process you put together last year, is just a few months of complacency away from dysfunction.<span>  </span>People move and, thanks to the 13<sup>th</sup> Amendment to the US Constitution, may leave their jobs and there’s little you can do about it.<span>  </span>Environments change and architectures become outdated.<span>  </span>The marketplace changes and requirements change with them.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">One VP Engineering I know told me he asked his off-shore application development partner to give him 110%.<span>  </span>They did, but it turned out to be turnover.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Your process needs to be constantly monitored and upgraded, because everything in the process is changing.<span>  </span>If your offshore partner has high turnover, their part of the process might require more code inspection and knowledge transfer.<span>  </span>If your biggest customer can’t use your product until it supports their new environment, you need to put a special team on building a custom version of the product, and then merge that back into main development.<span>  </span>If you have to replace an old veteran with a rookie, then you might create new integration points and a more rigorous test protocol.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Recognize that everything will change, and the assumptions under which you built your last success are no longer valid.<span>  </span>Make small process changes early and often, or in the long run the big changes will be made by your replacement.</p>
<p class="MsoNormal" style="margin:0"> </p>
<h2 style="margin:12pt 0 3pt"><em><span style="font-size:large;font-family:Arial">Stirring Conclusion</span></em></h2>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">Managing a software development organization is a very challenging task, as tough as playing a violin with your toes, and less fun.<span>  </span></p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">I don’t mean to trivialize important management functions <span>such as</span> customer management, budget and project tracking, running a good meeting, <span>and</span> designing effective compensation structures<span>. And</span> by all means, <span>hiring</span> someone to spend their time doing all of that.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">But that won’t protect you from the seven deadly sins.<span>  </span>Only you can do that.</p>
<p class="MsoNormal" style="margin:0"> </p>
<p class="MsoNormal" style="margin:0">I’ll finish with the Four Virtues, which are the antidote to the Seven Sins:</p>
<ol style="margin-top:0" type="1">
<li class="MsoNormal">Hire great people or don’t hire.</li>
<li class="MsoNormal">Plan to build a product that will have a long life.</li>
<li class="MsoNormal">Keep your process nimble, and deliver less, faster.</li>
<li class="MsoNormal">Keep improving everything.</li>
</ol>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/' addthis:title='The Seven Deadly Sins of Software Application Development &#8211; Part 2 of 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/2008/06/27/the-seven-deadly-sins-of-software-application-development-part-2-of-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Right Process, Wrong Tool? Getting Ready for Agile</title>
		<link>http://accurev.com/blog/2008/05/30/right-process-wrong-tool-getting-ready-for-agile/</link>
		<comments>http://accurev.com/blog/2008/05/30/right-process-wrong-tool-getting-ready-for-agile/#comments</comments>
		<pubDate>Fri, 30 May 2008 18:04:01 +0000</pubDate>
		<dc:creator>matthew d. laudato</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[agile webinar]]></category>
		<category><![CDATA[branching and merging]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[multi-stage continuous integration]]></category>
		<category><![CDATA[ready for agile]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[SCM tool]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[software process automation]]></category>
		<category><![CDATA[SPA]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=205</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/30/right-process-wrong-tool-getting-ready-for-agile/' addthis:title='Right Process, Wrong Tool? Getting Ready for Agile ' ><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>Yesterday I was a panelist for a Webinar on agile tools, focusing on software configuration management (SCM), build and software process automation (SPA), the latter term referring to the set of defined, repeatable and measurable automated development workflows that engineers use to transform requirements into shippable software products. Contrary to what I&#8217;ve read about the [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/30/right-process-wrong-tool-getting-ready-for-agile/' addthis:title='Right Process, Wrong Tool? Getting Ready for Agile '  ><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/30/right-process-wrong-tool-getting-ready-for-agile/' addthis:title='Right Process, Wrong Tool? Getting Ready for Agile ' ><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>Yesterday I was a panelist for a <a href="http://www.accurev.com/webinar/200802-electriccloud" target="_blank">Webinar on agile tools</a>, focusing on <a href="http://www.accurev.com/software-configuration-management-resources.htm" target="_blank">software configuration management</a> (SCM), build and software process automation (SPA), the latter term referring to the set of defined, repeatable and measurable automated development workflows that engineers use to transform requirements into shippable software products. Contrary to what I&#8217;ve read about the disdain that some agile devotees have for tools, most of the attendees were hungry to know what features their <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">SCM tool</a> should have in order to support <a href="http://www.accurev.com/agile-scm.html" target="_blank">agile software development</a> and SPA. Here are some of the highlights, and of course, my take on why I think AccuRev is the best tool for agile software process automation.</p>
<p>There are five key feature areas that an SCM tool needs to support in order to be ready for agile:</p>
<p>* Support for flexible process models</p>
<p>* Continuous integration support</p>
<p>* Support for issue-based development</p>
<p>* Efficient branch and code management</p>
<p>* Private version controlled developer workspaces</p>
<p>Let&#8217;s take a look at each of these in turn.</p>
<p>* <strong>Support for flexible process models.</strong> Agile is often one of several processes being employed within a software development organization. Unless your SCM tool is flexible and process-neutral, you will have a hard time implementing agile (say, for product development) and more traditional processes like waterfall (for example, for product maintenance work) in the same SCM tool. AccuRev streams are a natural way to model any process, and thus are a good fit when agile needs to coexist with other development processes. As for software process automation (SPA), AccuRev streams again are a great fit, since they enable users to model any arbitrary stages of code transformation that a development team sees fit to define as part of their process. By adding triggers and workflow to a stream hierarchy, teams can implement SPA directly in AccuRrev.</p>
<p>* <strong>Continuous integration support.</strong> <a href="http://www.accurev.com/webinar/200802-electriccloud" target="_blank">Continuous integration</a> is one of the core process elements associated with agile development. By building and testing frequently and acting on the results of tests, teams can uncover defects or test gaps earlier in their development cycle, saving time and money compared to such discoveries late in the cycle. But continuous integration goes beyond just testing the nightly build. With <a href="http://damonpoole.blogspot.com/2008/01/advanced-multi-stage-continous.html" target="_blank">multi-stage continuous integration </a>in AccuRev, code is automatically promoted up the stream hierarchy into more stable configurations as it passes tests. At each stage, continuous integration takes over to build and test, typically with a wider scope of testing as the code nears the release stage. Legacy <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">SCM tools</a> make this type of automated integration factory somewhere between difficult and impossible due to the complexity involved in setting up the hierarchy and in automatically moving and merging code as it flows up the hierarchy.</p>
<p>* <strong>Support for issue-based development.</strong> Apparently there is a lot of contention about the need for filing issues and defects in agile development. This has puzzled me greatly. While I&#8217;m in favor of developers identifying and fixing issues as they are discovered, you lose valuable process information when a defect or enhancement ticket is not filed and later associated with a code change. Without an issue that describes what the problem was, someone looking at the code changes for audit purposes or for group code reviews is at a disadvantage. Why was this code change made? Is it related to other changes? How long did it take? Was it done to fix a bug or to add a feature. In AccuRev, issues either in the integrated AccuWork issue tracking system, or in a 3rd party issue tracking system, can easily be associated with code changes via the AccuRev Change Package mechanism. This establishes basic traceability between issues and the code changes that developers make in order to satsify the requirements of those issues. Issue-based development is well-defined, repeatable and measurable &#8211; all hallmarks of good software process automation.</p>
<p>* <strong>Efficient branch and code management.</strong> Any time you&#8217;re working on more than one project, you need to isolate that project&#8217;s code from other projects. With agile and multistage continuous integration, even a single project requires multiple code lines in order to separate in-progress code from unit tested code from system tested code that is ready for release. If an SCM tool makes <a href="http://www.accurev.com/product-overview.html" target="_blank">branching, merging</a> and labeling difficult, teams tend to practice branch avoidance, which I sometimes like to call &#8220;fear of branching.&#8221; This is a classic example of letting a tool dictate what processes you can implement. In AccuRev, streams replace branches as the mechanism for isolating codelines. Since streams are represented inside of AccuRev as data separate from the actual file versions, creating streams is fast &#8211; really fast, like, a second or two &#8211; and managing a system with hundreds of streams spanning multiple projects and processes is easy.  For continuous integration, AccuRev snapshots and time-based streams are also fast and easy to create and manage, and give users a straight-forward way to &#8220;label&#8221; an interim or milestone codeline without having to place markers in thousands of source files.</p>
<p>* <strong>Private version controlled developer workspaces.</strong> Software developers are the heartbeat of any engineering organization. Executives at any development shop will tell you that hiring talented engineers and keeping them well-tooled and productive is the single largest challenge that they face. For agile, this is even more of a challenge, since coding cycles tend to be shorter, and thus anything that gets in the way of individual or team productivity tends to have a greater negative impact on the project. Private version controlled workspaces like the AccuRev workspace model improve productivity, since they enable developers to work in isolation (while they are &#8216;heads down&#8217; coding). Private workspaces in AccuRev also give developers full SCM capabilites in their workspaces without the need to share in-progress code prematurely. By using the &#8216;keep&#8217; operation, developers make safe copies of their work in the AccuRev repository, and later can &#8216;promote&#8217; the code to an integration stream to combine their work with that of their teammates. Individuals are more productive in this way, and if continuous integration builds are frequently testing the integration stream, so are teams.</p>
<p>In a nutshell, agile requires tools, and these tools need to support different modes of operation than with other processes. SCM can help or hurt you in setting up and executing an agile process, so these guidelines are a way to help you get your SCM tool ready for agile - easy of course if your tool is already AccuRev!</p>
<p>If you&#8217;re interested, you can view the webinar recording.</p>
<p>Is Your Software Development Environment Agile-Ready?<br />
Free On-Demand <a href="http://www.accurev.com/webinar/200805-agileready" target="_blank">Webinar </a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/05/30/right-process-wrong-tool-getting-ready-for-agile/' addthis:title='Right Process, Wrong Tool? Getting Ready for Agile '  ><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/30/right-process-wrong-tool-getting-ready-for-agile/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Continuous Integration: The fluffy clouds of Zealotry</title>
		<link>http://accurev.com/blog/2008/04/04/continuous-integration-the-fluffy-clouds-of-zealotry/</link>
		<comments>http://accurev.com/blog/2008/04/04/continuous-integration-the-fluffy-clouds-of-zealotry/#comments</comments>
		<pubDate>Fri, 04 Apr 2008 16:53:27 +0000</pubDate>
		<dc:creator>jsherwood</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[agile development]]></category>
		<category><![CDATA[agile process]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Lean development]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/?p=136</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/04/continuous-integration-the-fluffy-clouds-of-zealotry/' addthis:title='Continuous Integration: The fluffy clouds of Zealotry ' ><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 long, long time ago I started life (okay college life) as an Engineer. Electrical. Analog. For having grown up with always having a computer in my room I was about as far away from the digital world I could get and still be technical. Computing was easy. Oh pascal, if only you could see [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/04/continuous-integration-the-fluffy-clouds-of-zealotry/' addthis:title='Continuous Integration: The fluffy clouds of Zealotry '  ><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/04/continuous-integration-the-fluffy-clouds-of-zealotry/' addthis:title='Continuous Integration: The fluffy clouds of Zealotry ' ><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 long, long time ago I started life (okay college life) as an Engineer. Electrical. Analog. For having grown up with always having a computer in my room I was about as far away from the digital world I could get and still be technical. Computing was easy. Oh pascal, if only you could see me now. Those were wild days, staying up until all hours of the night sitting in a basement computer lab trying to finish an assignment. When I wasn&#8217;t at classes or getting into a variety of trouble, I would spend time with my roommate, a Mac user. He&#8217;d mock my Amiga; &#8220;Do you really need two buttons?&#8221; I&#8217;d mock the Mac (pre-classic) &#8220;Hey I&#8217;ve got 4096 colors&#8221; but we&#8217;d agree on one thing, both were better than that loser IBM machine two dorm rooms down the hall.</p>
<p>Then came real life, I fell into the digital world, and found myself back in school getting a more formal digital education. I found myself in Design Patterns, listening to people around me furiously debating the merits and needs of singletons, factories and observers.</p>
<p>Then came Java, and the arguments continued. Performance, idiosyncracies of langauge (both C++ and Java) etc., etc.</p>
<p>Then came Open Source. Don&#8217;t get me started with open source. If the OS mafia reads anything I write they&#8217;ll try to shutdown our website.</p>
<p>Now we have <a href="http://reddit.com/r/agile/" target="_blank">Agile</a>. And Lean Development. And Continuous Integration (CI). I&#8217;ll lump them together because they are the current arguments I hear today. Yeah, arguments. Developers become elevated and yell out &#8220;You&#8217;re not really agile!&#8221; I read books on what it means to be Lean, and how to identify if you are Lean. I find CI writers muttering under their breath that any build process that occurs hourly isn&#8217;t truly CI.</p>
<p>They&#8217;ve lost focus. Or more importantly their focus should not be your focus.</p>
<p>I wasn&#8217;t hired because I was a Design Patterns zealot. I wasn&#8217;t hired because there was a need for an expert on Lean Development. I wasn&#8217;t hired to support code in the OS movement. I was hired to produce a product. Our customers want our product, they want it yesterday, both features and fixes.</p>
<p>So what&#8217;s the best way to deliver value to the company and customer? To be honest, I may not know the best way, but I know we will do our best to do whatever it takes. I and my coworkers strive to find reasonable solutions in a reasonable time.</p>
<p>But the zealots cry out and tell you what you are doing wrong, not doing right. What they don&#8217;t understand is that if they want to be heard they have to show the value in the changes. You need to give the agile concepts breathing room. This is what really encourages adoption. Agile zealots need to understand why there is resistance, understand people&#8217;s concerns and address them, and believe me they will embrace the positive elements.</p>
<p>On the other side, why listen to these zealots? Because if you can get past the worship and hype, there is value in what they describe. If you listen, you can figure out what elements will be useful.</p>
<p>Agile really is an evolutionary model. Agile isn&#8217;t about anarchy or cowboy developers, but about adopting processes that improve on process management. Agile really helps break logjams where problems seemed intractable or a great unknown, places where development has struggled for decades over thinking problems only to have their solutions fall flat and disappoint customers.</p>
<p>Lean Development has a great focus on continuous refinement. Focus on problem areas and work to make it a little better. After you&#8217;ve done this take another look and make it a little better somewhere else. Very quickly the improvements add up.</p>
<p>And <a href="http://www.accurev.com/scm-white-papers.htm" target="_blank">Continuous Integration</a> keeps simple problems simple, resolving them in a timely manner. CI keeps developers from sitting on problems further compounding integration, testing and deployment.</p>
<p>There are values that are worth a look in all of these movements. Take what they give you, find the value and use it. <a href="http://dotnet.sys-con.com/read/526698_1.htm" target="_blank">Continuous Integration </a>makes your life better. Problems are found (and hopefully fixed) when they happen, not weeks later. You are getting continuous feedback on the health of your project, not monthly or weekly feedback. If your life is better you can spend more time providing value to your company and your customers. If you deal with less pain you have more time to solve the problems you should be solving. And adding the features that your customers are waiting for and wanted yesterday.</p>
<p>What are you waiting for? Don&#8217;t be discouraged thinking you aren&#8217;t using CI &#8216;correctly&#8217;. Take elements and make them work for you, and the value will come quickly.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/04/04/continuous-integration-the-fluffy-clouds-of-zealotry/' addthis:title='Continuous Integration: The fluffy clouds of Zealotry '  ><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/04/continuous-integration-the-fluffy-clouds-of-zealotry/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

