<?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 software development</title>
	<atom:link href="http://accurev.com/blog/tag/agile-software-development/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>Best Practices for Agile Software Development Defined</title>
		<link>http://accurev.com/blog/2010/08/23/agile-software-development-defined/</link>
		<comments>http://accurev.com/blog/2010/08/23/agile-software-development-defined/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 13:34:04 +0000</pubDate>
		<dc:creator>damonpoole</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Educational Webinars]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[collocation]]></category>
		<category><![CDATA[Damon Poole]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2290</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/08/23/agile-software-development-defined/' addthis:title='Best Practices for Agile Software Development Defined ' ><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 the last post I defined two Agile software development best practices I believe provide value to a wide variety of development teams.   Here I define three more practices that I believe are also important when transitioning to Agile Software Development; collocation, unit testing, and refactoring. Best Practice for Agile Software Development: Collocation Collocation [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/08/23/agile-software-development-defined/' addthis:title='Best Practices for Agile Software Development Defined '  ><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/08/23/agile-software-development-defined/' addthis:title='Best Practices for Agile Software Development Defined ' ><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 the last post I defined two Agile software development best practices I believe provide value to a wide variety of development teams.   Here I define three more practices that I believe are also important when transitioning to Agile Software Development; collocation, unit testing, and refactoring.</p>
<h2>Best Practice for Agile Software Development: Collocation</h2>
<p><strong>Collocation</strong> is simply having everybody on a cross functional team in close proximity to each other. This compounds the coordination benefit of cross functional teams. This is orthogonal to outsourcing. Whether you are outsourcing or not, collocation only refers to whether a particular cross functional team is sitting near each other.</p>
<h2>Best Practice for Agile Software Development: Unit Testing</h2>
<p><strong>Unit tests</strong> are simply tests that exercise small amounts of isolated functionality. That is, if you have a function that adds two numbers, instead of depending on running a user function that eventually calls the function, exercise the function directly. This often requires the use of mock objects that pretend to be things that the function needs in order to test the function in isolation from other functions that it depends on.</p>
<p>The cost of unit tests is in writing the tests themselves and refactoring code as new functionality is introduced to keep the unit tests testing at the right level. The benefit is that you can easily test changes quickly to find simple problems before doing more thorough and slower testing. It also provides a good safety net for refactoring, gets developers more involved in testing, and usually improves the design of the software.</p>
<h2>Best Practice for Agile Software Development: Refactoring</h2>
<p><strong>Refactoring</strong> is the practice of continuously improving the usability, maintainability, and adaptability of code without changing its behavior. That makes it much easier to add new and unanticipated functionality. Refactoring has the disadvantage that it takes extra effort and requires changing the code. Any change has the potential to reduce the maturity and stability of the product, especially if you don&#8217;t have adequate testing in place. That’s why refactoring is usually paired up with unit testing and together these are frequently combined with continuous integration.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/08/23/agile-software-development-defined/' addthis:title='Best Practices for Agile Software Development Defined '  ><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/08/23/agile-software-development-defined/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integration: What’s Not to Love?</title>
		<link>http://accurev.com/blog/2010/07/29/continuous-integration-love/</link>
		<comments>http://accurev.com/blog/2010/07/29/continuous-integration-love/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 20:03:06 +0000</pubDate>
		<dc:creator>clucca</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[AgileCycle]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[agile cycle]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[automatic testing]]></category>
		<category><![CDATA[build application]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=2161</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/07/29/continuous-integration-love/' addthis:title='Continuous Integration: What’s Not to Love? ' ><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>It seems like everyone loves continuous integration.  I’ll come out and say it- I love continuous integration! When we talk about the most widely adopted Agile practices, this one comes up the most.  Its positive benefits as a feedback mechanism provide a quantum leap forward in how development organizations think about their code.  I find [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/07/29/continuous-integration-love/' addthis:title='Continuous Integration: What’s Not to Love? '  ><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/07/29/continuous-integration-love/' addthis:title='Continuous Integration: What’s Not to Love? ' ><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><span style="font-weight: normal; font-size: 13px;"><span style="color: #000000;"><span style="color: #000000;">It seems like everyone loves continuous integration.  I’ll come out and say it- </span><strong><span style="color: #000000;"> I love continuous integration! </span></strong><span style="color: #000000;">When we talk about the most widely adopted Agile practices, this one comes up the most.  Its positive benefits as a feedback mechanism provide a quantum leap forward in how development organizations think about their code.  I find it very difficult to see any downside in doing continuous integration, seriously what’s not to love?</span></span></span></h2>
<p><span style="color: #000000;">Modern day continuous integration servers have 3 functions: Detect if a new build is needed, execute build, and notify people of the results. This is a great way of facilitating feedback to developers and allowing them to adapt and resolve problems.</span></p>
<p><span style="color: #000000;">But there’s something lurking in the shadows that nobody is talking about, maybe because people aren’t even aware that it’s a problem. Maybe it’s because we don’t want to ruin our love affair with CI and we’re all in denial.</span></p>
<p><span style="color: #000000;">What happens when those builds are done? What about the rest of “it”?</span></p>
<p><span style="color: #000000;">When I say “it” what I really mean is:</span></p>
<p><span style="color: #000000;">Most development environments include such things as complex application servers, automatic testing, release processes, compliance, audits, databases, 3</span><sup><span style="color: #000000;">rd</span></sup><span style="color: #000000;"> party libraries, build dependencies, code analysis, unit tests… and another 1,000 other things I don’t have enough space to list here. How can you deal with this? Getting feedback to my dev team is a great targeted way to let people know code is broken, but isn’t this feedback useless if you can’t get the product out the door?</span></p>
<p><span style="color: #000000;">If I take an example build lifecycle of an application which is:</span></p>
<p><span style="color: #000000;">1.)    Build Application</span></p>
<p><span style="color: #000000;">2.)    Test</span></p>
<p><span style="color: #000000;">3.)    Deploy to environments (DB) (APP SERVER) &lt;- by hand</span></p>
<p><span style="color: #000000;">4.)    Test</span></p>
<p><span style="color: #000000;">5.)    Redeploy (DB) (APP SERVER) (PROD) &lt;-by hand</span></p>
<p><span style="color: #000000;">This may seem like easy in this example, but if we took all of these steps in the real world, this could represent hundreds of servers.  And this process will have to be repeated for every version of the product.</span></p>
<p><span style="color: #000000;">The crux of this issue is that if any of these steps are not performed 100% correctly, it translates to real dollar$ lost for the organization. These operations have to perform like clockwork.</span></p>
<p><span style="color: #000000;"><span style="color: #000000;"> </span></span></p>
<h2><span style="color: #000000;">Taking Continuous Integration to the Next Level</span></h2>
<p><span style="color: #000000;">This is why I believe bringing continuous integration to the next level starts with the concept that the build produced from the CI server is just the beginning. Setting up a simple CI server and producing a build is easy, but managing it through the rest of its life is the real trick.</span></p>
<p><span style="color: #000000;">In a real example of this, we could take</span></p>
<p><span style="color: #000000;">1.)    Build</span></p>
<p><span style="color: #000000;">2.)    Run automated tests</span></p>
<p><span style="color: #000000;"> </span></p>
<ul>
<li><span style="color: #000000;">If test succeeds: Deploy to to environments (DB) (APP SERVER)</span></li>
</ul>
<ul>
<li><span style="color: #000000;">If test fails: Notify dev team</span></li>
</ul>
<p><span style="color: #000000;">3.)    Manual Testing in QA environment</span></p>
<p><span style="color: #000000;">4.)    Approval process</span></p>
<p><span style="color: #000000;">5.)    Redeploy (DB) (APP SERVER) (PROD)</span></p>
<h2><span style="color: #000000;">Using AgileCycle RM</span></h2>
<p><span style="color: #333333;"><strong><span style="color: #000000;"> </span></strong><span style="color: #000000;">In this scenario I’m taking a version of the results from a CI build, run automated tests on them, monitor the test output and wait for success or failure. If there is success then deploy all components of the application, this includes a database components and a java war component. The build will then sit in QA for manual testing until its marked approved by the QA team, managers and operations team for deployment to production.</span></span></p>
<p><span style="color: #333333;"><span style="color: #000000;">The idea here is if we automate these processes and decisions based on build, automated tests and approval process, you can produce code quickly and at a more rapid pace. If you can produce a clockwork-like automation around</span> your build/test/deploy related processes, your team can spend time on what’s most important: Getting code out the door.</span></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/07/29/continuous-integration-love/' addthis:title='Continuous Integration: What’s Not to Love? '  ><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/07/29/continuous-integration-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benefits of Agile Development for Your Enterprise</title>
		<link>http://accurev.com/blog/2010/04/13/benefits-agile-development-enterprise/</link>
		<comments>http://accurev.com/blog/2010/04/13/benefits-agile-development-enterprise/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 18:20:20 +0000</pubDate>
		<dc:creator>AccuRev</dc:creator>
				<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Enterprise Agile]]></category>
		<category><![CDATA[SCM Resources]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[benefits of agile]]></category>
		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://www.accurev.com/blog/?p=1498</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/13/benefits-agile-development-enterprise/' addthis:title='Benefits of Agile Development for Your Enterprise ' ><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>Due to the promise of large gains in quality, productivity, and market responsiveness, Agile software development has been making its way into the enterprise in recent years, but there have been plenty of bumps along the way.  Any change to the enterprise has hurdles to overcome, and successfully adopting Agile development requires change within the organization than [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/13/benefits-agile-development-enterprise/' addthis:title='Benefits of Agile Development for Your Enterprise '  ><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/13/benefits-agile-development-enterprise/' addthis:title='Benefits of Agile Development for Your Enterprise ' ><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>Due to the promise of large gains in quality, productivity, and market responsiveness, <a href="http://www.accurev.com/agile-scm.html">Agile software development</a> has been making its way into the enterprise in recent years, but there have been plenty of bumps along the way.  Any change to the enterprise has hurdles to overcome, and successfully adopting Agile development requires change within the organization than we have seen in the development process over the past several decades.  For instance, as you transitioned from C++ to Java or .Net, did you find it necessary to make substantial changes to your org chart?  Most changes in the software development process have been either the result of technology changes, such as moving from C++ to Java or pure html to AJAX, or changes in architectural patterns such as the introduction of object-oriented programming and moving from client/server to SOA.</p>
<h2>Enterprise Agile Development May Be the Answer</h2>
<p><span style="font-weight: normal;"> Sustainable and repeatable success with Agile requires the same sort of framework put in place with your traditional development projects across the enterprise.  The end-to-end traceability, progress and status roll-up, portfolio management, and inter-project coordination that you have with your traditional development projects will be just as critical on your Agile projects.  After all, Agile is not the goal, it is only the path to higher quality, greater and more rapidly delivered ROI, and increased customer satisfaction.</span><br />
<span style="font-weight: normal;"> Not only will you need a framework that encompasses all of your Agile projects, you will also need a framework which can encompass all of your projects, regardless of methodology.  Doing this is likely to require re-tooling, training, and integrating multiple tools across projects.</span></p>
<h2 style="font-weight: h2;">Agile in the Enterprise Requires Top to Bottom Involvement</h2>
<p><span style="font-weight: normal;"> Adopting Agile without understanding the principles and without creating a proper ecosystem for its survival, Agile may be destined to fail.  I’ve visited far too many companies whose first attempt at adopting Agile failed because the extent of their investment was a single visit from an Agile coach. In these circumstances, few people are usually on board initially, and many skeptics exist because of an insufficient effort invested in preparing for success.<br />
Adopting Agile development requires breaking down mental barriers and building up new skill sets. There is nothing particularly hard about actually implementing any of the specific Agile practices, but many of them are counterintuitive and do take a bit of practice to get used to. Don’t underestimate the amount of effort required; it is at least on the same order of magnitude as taking a team very used to writing in C++ and moving to Java. There’s nothing particularly difficult about such a transition, but there are many subtleties which must be learned and it takes some time to build up the same base of experience.<br />
Committing to the effort required and funding the necessary training, coaching, and retooling requires involvement from the top of the engineering organization all the way to the folks in the trenches.</span></p>
<h2>Your Enterprise is Optimized for Traditional Development</h2>
<p><span style="font-weight: normal;"> Actually doing Agile development is relatively straightforward, much as going 60 miles an hour is easy to do driving on an uncongested highway. As the original challenge of fast travel was a lack of cars, highways, and driver education, the main challenge with going Agile is creating the proper environment for Agile to take root and expand.</span></p>
<p><span style="font-weight: normal;"> Over the years, your enterprise has done everything it can to provide the proper environment for traditional development to thrive. But what is considered fertile ground for one crop can be a difficult environment for another crop. Consider how all of the following have been tweaked over the years to optimize for traditional development. I’m sure you can think of more.</span></p>
<p><span style="font-weight: normal;"> •	Where people are physically located</span></p>
<p><span style="font-weight: normal;"> •	The reporting structure (silos)</span></p>
<p><span style="font-weight: normal;"> •	Your software development tools</span></p>
<p><span style="font-weight: normal;"> •	Homegrown tooling and scripting</span></p>
<p><span style="font-weight: normal;"> •	Metrics and reports</span></p>
<p><span style="font-weight: normal;"> •	The budgeting process</span></p>
<p><span style="font-weight: normal;"> •	Skill sets, training, work habits</span></p>
<p><span style="font-weight: normal;"> •	Process documentation</span></p>
<p><span style="font-weight: normal;"> •	Fixed bid contracts</span></p>
<p><span style="font-weight: normal;"> Each of these are like the rumble strips on the highway, reinforcing the form and function of traditional development. The form and function of Agile development is very different. Instead of helping, the infrastructure that is currently in place to reinforce and optimize traditional development very often discourages effective Agile adoption.  Consider the simple example of budgeting.  If budgeting is currently based on the cost of features promised for the fiscal year and governance that rewards the delivery of those exact features and punishes variances, that will not only reduce the chances of a successful Agile adoption, it will also significantly reduce the potential benefits of Agile.</span></p>
<h2>Agile in the Enterprise Requires a Hybrid Approach</h2>
<p>A full top-to-bottom transformation to Agile development will likely result in significant changes to the organizational reporting structure, physically moving people from one location to another or even rearranging their workspaces (whether it is down the hall or across continents), and changing the interaction between people at all levels, from customers and product management all the way to developers and the folks in operations. For most enterprises, a change of this magnitude can’t (or won’t) happen overnight. For most people, a hybrid environment will be part of their experience for many years.  And of course, there may be some projects that you have no intention of moving to Agile.<span style="font-weight: normal;"><br />
</span></p>
<h2><span style="font-weight: h2;">Partnering With AccuRev to Bring Agile into Your Enterprise</span></h2>
<p>The process of each of our customers is different, ranging from small collocated shops to large distributed organizations with locations across the globe, from Agile eXtreme programming to CMMI level 5 waterfall. We understand a wide range of methodologies and how they interface.</p>
<p>At <a href="http://www.accurev.com">AccuRev</a>, our core expertise is process improvement. Adopting Agile in the Enterprise is all about process improvement. That’s why we’re excited about our new offering, <a href="http://www.accurev.com/agilecycle.html">AgileCycle</a>, which has everything you need to go from where you are to where you want to be. With AgileCycle, you don’t need to worry about doing a big-bang transformation. We’ve got the expertise, coaches, trainers, consultants, and of course the tools that will allow you to transition to Agile at your own pace while smoothly integrating Agile, iterative, and Waterfall methodologies and your existing tools across your enterprise.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2010/04/13/benefits-agile-development-enterprise/' addthis:title='Benefits of Agile Development for Your Enterprise '  ><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/13/benefits-agile-development-enterprise/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile is a Step on the Path to Business Agility</title>
		<link>http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/</link>
		<comments>http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 15:19:07 +0000</pubDate>
		<dc:creator>lorne cooper</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[agile software development]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/?p=828</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/' addthis:title='Agile is a Step on the Path to Business Agility ' ><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>Brad Appleton's series of posts on What Is Agility? bring up the right questions, but don't dive into the muck, like a bbq eater in a white suit.  Muck diving is right up my alley, as the stuff I find interesting is usually at the bottom of the pile.<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/' addthis:title='Agile is a Step on the Path to Business Agility '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/' addthis:title='Agile is a Step on the Path to Business Agility ' ><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>Brad Appleton&#8217;s series of posts on <a title="What is Agility?" href="http://bradapp.blogspot.com/2009/04/what-is-agility.html" target="_blank">What Is Agility?</a> bring up the right questions, but they don&#8217;t dive into the muck, like a BBQ eater in a white suit.  Muck diving is right up my alley, as the stuff I find interesting is usually at the bottom of the pile.</p>
<p>There are several fundamental problems to be solved, but the most interesting, by which I mean really hard, problem is understanding what is the most important thing to do next.</p>
<p>In <a title="The Agility Cycle" href="http://bradapp.blogspot.com/2009/04/agility-cycle-part-1.html" target="_blank">The Agility Cycle</a>, Brad quotes a host of luminaries, including himself, in defining what that thing is.   I like <a title="Gartner Business Agility doc" href="http://www.gartner.com/DisplayDocument?doc_cd=137820" target="_blank">Gartner&#8217;s</a> the best, and here I&#8217;ll have to quote Brad, as Gartner won&#8217;t let me read their original:</p>
<ol><span style="font-family:georgia"></p>
<li><strong>Sense</strong> the need for change in the environment (includes the proactive initiation of change)</li>
<li><strong>Strategize</strong> the available options and develop alternatives</li>
<li><strong>Decide</strong> which path to take and commit to the approach</li>
<li><strong>Communicate</strong> internally and externally to everyone who needs to know</li>
<li><strong>Act</strong> to produce results and follow-through efficiently</li>
<p></span></ol>
<p><strong>1. Sensing the Need for Change in the Environment</strong></p>
<p>Let&#8217;s start with &#8220;Sense the need for change in the environment&#8221;.  Beware of management aphorisms that sound like something you&#8217;d hear at a Yoga workshop!</p>
<p>Not only is it hard to tell what the need for change is, it&#8217;s as hard to agree on it as it is to get two people to agree to toppings on a pizza.  By the time your company has it&#8217;s second employee, you&#8217;re in trouble.  When you get your second customer, it&#8217;s pretty much over.</p>
<p>Practically speaking, there are four avenues in which we business people &#8220;Sense the need for change in the environment&#8221;:</p>
<p>1. Strategic Pressure.  &#8220;The future is in Cloud Computing on the i-Phone.  Get me there in six months.&#8221;  Most engineering organizations are willing to set fire to the old application and do a little resume polishing on the new one.  Nothing like <a title="Netscape ReWrite Fiasco" href="http://www.joelonsoftware.com/articles/fog0000000069.html" target="_blank">starting from scratch</a>, unless you actually want to make money.</p>
<p>2. Competitive Pressure.  &#8220;Your App needs to do foobar, just like that other app does.&#8221;  Now that&#8217;s going to happen every day after you ship version 0.9.  It&#8217;s unlikely that any one request requires real change, but maybe that sound you hear is an out of control semi, and it might be nice to change direction before slamming into the grill of the truck.</p>
<p>3. Customer Pressure.  &#8220;I&#8217;m not loading any more of your crappy releases until the .2 version, at least.&#8221;  Hey, you Windows XP users, you know who you are.  And who I am.</p>
<p>4. Financial Pressure.  Sales drop.  New Account sales drop.  The CFO takes away our CapEx budget.  We have to reduce headcount [or "Free people to pursue other opportunities" as they say in Hollywood], reduce hours, reduce pay.  Doesn&#8217;t take a highly developed set of Senses to know things have changed.  But what do we do about it?</p>
<p>It&#8217;s relatively easy to deal with Strategic Pressure: unless the pressure is coming from your CEO&#8217;s who&#8217;s an ex-Marine Karate instructor with a Meth habit: slow down amigo, and study it. Engineering is a discipline where things take time.  The worst thing we can do is change priorities faster than we can get them to market.  Change needs to require a good case.</p>
<p>Market of any size don&#8217;t have windows that  close in six months.  More likely people will learn that Prolog wasn&#8217;t really all that valuable, or you could like without a MS-Bob plug-in.  SOAs and the ASP business model have been around for ten years.  Before you imagine yourself as the next &#8220;i-Fart&#8221; author, ask yourself, what percentage of the apps on the i-Phone have made over $100K in revenue?</p>
<p>Competitive Pressure and Customer Pressure are not the same.  Competitive pressure shows up when your organization is losing business to a competitor.  Real Customer Pressure is when you can&#8217;t live up to your value proposition without making changes.  These two are the realm of Product Management.</p>
<p>The difference between a great product manager and all the rest is whether they can determine which customer or sales requests require change, versus the ones that go to triage and get prioritized with all the others.  Signals that you might have to really change what you&#8217;re doing are when you get demands for 10x performance improvements, or to support workflows that just don&#8217;t fit.  Patches (&#8220;now 30% faster!&#8221;) just aren&#8217;t going to make those requirements go away.  Now you&#8217;re going to have to think about how to address a new market environment.</p>
<p>Finally, Financial Pressure is the easiest to sense, and the <em>least</em> likely to activate change.  Financial Pressure tends to make organizations to freeze up.  Whether the reason was lack of product competitiveness, global recession, or a controller with a cocaine problem, the result is the same competitive and customer pressure, fewer resources to deal with it, and (unless you&#8217;ve been investing in those employee meditation session) lower morale.</p>
<p>Two mistakes managers typically make: trying to use the same development process, and freezing CapEx.</p>
<p>Improving the development process is your way out of this mess, not something you can&#8217;t afford to do.  That&#8217;s like the teenager who knows he&#8217;s going the wrong way, so he drives faster.  And, if you have the cash (or if the government is giving it out like candy on Halloween), Capital Expenditure is the cheapest way to get onto a better process.</p>
<p>Lorne Cooper</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/' addthis:title='Agile is a Step on the Path to Business Agility '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2009/04/22/agile-is-a-step-on-the-path-to-business-agility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Agile Governance: Oil and Water?</title>
		<link>http://accurev.com/blog/2008/12/02/agile-governance/</link>
		<comments>http://accurev.com/blog/2008/12/02/agile-governance/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 13:32:34 +0000</pubDate>
		<dc:creator>matthew d. laudato</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[accountability]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[agile and governance]]></category>
		<category><![CDATA[agile benefits]]></category>
		<category><![CDATA[agile governance]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[agile visibility]]></category>
		<category><![CDATA[aligning business and IT]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[risk management]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/?p=550</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/02/agile-governance/' addthis:title='Agile Governance: Oil and Water? ' ><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>When I first sat down to write about agile governance, my mixed metaphor and oxymoron meter started redlining. As I researched to see how prominent this topic has been, I encountered phrases like &#8220;tail wagging dog&#8221; and &#8220;are you kidding me?&#8221; It seems that the Agile advocates and the governance advocates don&#8217;t see eye to eye, if they even [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/02/agile-governance/' addthis:title='Agile Governance: Oil and Water? '  ><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/02/agile-governance/' addthis:title='Agile Governance: Oil and Water? ' ><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>When I first sat down to write about agile governance, my mixed metaphor and oxymoron meter started redlining. As I researched to see how prominent this topic has been, I encountered phrases like &#8220;tail wagging dog&#8221; and &#8220;are you kidding me?&#8221; It seems that the Agile advocates and the governance advocates don&#8217;t see eye to eye, if they even talk to each other at all. While several authors have addressed this topic (notably Dr. Peter Merrick in a <a title="The difficulties of Agile development" href="http://www.information-age.com/magazine/august-2008/perspective/459456/the-difficulties-of-agile-development.thtml" target="_blank">recent article in Information Age</a>), most of the coverage is theoretical. My goal in this post is to outline some practical approaches to ensure that the requirements of large-project governance can be met by engineering teams that employ <a href="http://www.accurev.com/agile-software-development.html" target="_blank">Agile software development</a> methodologies.</p>
<p>Let&#8217;s start with some working definitions. I define governance as accountability and risk management of IT projects and resources as perceived by non-engineering personnel. Agile can be defined as the set of engineering methodologies that rely on incremental development cycles, flexible long-term planning, and rigid short term-planning. Though many will comment on these definitions, they will serve for our purposes here.</p>
<p>Looking first at governance, it should not surprise anyone that the CFO or CEO of a <a href="http://blog.accurev.com/2008/05/01/the-quest-for-successful-parallel-development/" target="_blank">Fortune 500 company</a> might be interested in exactly how their $100M annual IT budget is being spent and how this spending benefits the company. That&#8217;s their job as representatives of the business interests of the organization. Similarly, the business stakeholders at an independent software vendor, such as account representatives and product managers, need visibility into the activities in engineering in order to communicate to customers, investors and other external stakeholders. Put another way, governance of engineering assets is a requirement for business &#8211; without it, the engineering or IT organization is operating in an opaque fashion without accountability.</p>
<p>On the agile side, it should also not be a surprise that after decades of being blamed for late projects, over budget software releases, and failure to meet customer requirements, engineering organizations are fast embracing agile as a way to manage <a href="http://www.accurev.com/agile-software-development.html" target="_blank">software development </a>projects. Starting with the axiom that requirements are rarely fully specified, agile provides a scheduling and requirements management framework that enables teams to work successfully on under-specified requirements today, and adjust their plans as requirements change tomorrow, next week, or next month. Put another way, agile solves the <a href="http://blog.accurev.com/2008/06/11/agile-requirements-traceability-with-accurev-and-rally/" target="_blank">requirements management problem</a> that every business has &#8211; without this solution, the engineering or IT organization may be transparent (&#8220;See, here&#8217;s our project plan&#8221;), but is likely not satisfying business requirements.</p>
<p><span id="more-550"></span></p>
<p>At this point, I am reminded of the old joke: Do you want to make God laugh? Just tell Him your plans. Businesses need to plan their activities to ensure that resources are accounted for and are working to further business goals. Engineering teams need to work on requirements that don&#8217;t change, so that the work is focused and efficient. The question then becomes, how to reconcile the governance requirements that business stakeholders have with the just-in-time requirements management approach of agile? There are three practical things that organizations can do to ensure that agile benefits not only engineering, but the business as a whole:</p>
<p><strong>1. Agree on high-level requirements.</strong> This is more than just &#8216;software or salsa&#8217;. It means that someone in the organization (a product manager at an ISV, for example) must take ownership for extracting and documenting requirements at the highest level. The great myth around agile is that there is no documentation &#8211; not true. There is no extraneous documentation. Everyone needs to agree that the organization needs to build an X that meets these A,B,C customer requirements. Agile purists who resist the creation of this document should be taken to task, as should product managers and other business stakeholders who want to meddle in engineering implementation details.</p>
<p><strong>2. Plan for change at the business level.</strong> Given high-level requirements, the temptation for business stakeholders is to say &#8220;I&#8217;m done with my part&#8221;. That&#8217;s not agile, nor is it realistic. If your engineering organization is working with 30 day sprints, it&#8217;s the job of the business representatives to actively evaluate not only the requirements in the backlog, but also the output of each sprint, so that the next 30 day sprint is planned in accordance with any new information about the business requirements of the project.</p>
<p><strong>3. Make governance a part of the agile process.</strong> This is the hardest part for engineering organizations to swallow. But the engineering or IT budget isn&#8217;t a gift from Santa &#8211; it is a hard number that your VP of Engineering or CIO owns and is accountable for. So it makes sense to add a step in the process at sprint review time (the post-evaluation that occurs at the end of each sprint) to formally document the project progress in a form that is useful for the rest of the business. Included in this report should be at a minimum what features were completed, what the cost of these features are, what the rollout plan is for these features, and what percent of the known requirements have been satisfied to date. In this way, the internals of the agile method are only minimally exposed to business stakeholders, who may not know nor care what a sprint is, but the results as they affect the business as a whole are transparent.</p>
<p>I&#8217;m sure that readers could come up with a few more practices, or critique my brief set. That&#8217;s great &#8211; what is needed on this topic is cooperation and frank discussion, so that businesses can move forward with more efficient engineering organizations, and with improved ways of communicating engineering activities to a broader business audience. Ultimately, both agile and governance are about making sure the business is working on activities that add value to customers. So it is in the interest of both agile practitioners in engineering, and business stakeholders across the organization to work together to blend agile and governance in a practical way that maintains the efficiencies of agile, and also advances and meets the overall needs of the business.</p>
<p>Interested in more on this topic? Attend a free live webinar with guest speaker, Jeffrey Hammond, senior analyst, Forrester Research on Thursday, December 4 at 1:00 PM EST:  <a href="https://www1.gotomeeting.com/register/346195726?mtcCampaign=6338" target="_blank"><span style="color: #0066cc;">The Business Case for Pragmatic ALM: Agility with Governance</span></a></p>
<p>This Webinar is now available as a recording here: <a href="http://www.accurev.com/webinar/200812-pragmatic-alm" target="_blank">Pragmatic ALM</a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2008/12/02/agile-governance/' addthis:title='Agile Governance: Oil and Water? '  ><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/02/agile-governance/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>QCon&#8217;07 San Francisco &#8211; Agile Conference</title>
		<link>http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/</link>
		<comments>http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/#comments</comments>
		<pubDate>Fri, 09 Nov 2007 21:00:44 +0000</pubDate>
		<dc:creator>dave</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[agile software development]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[issue tracking]]></category>
		<category><![CDATA[Kent Beck]]></category>
		<category><![CDATA[Martin Fowler]]></category>
		<category><![CDATA[Orbitz]]></category>
		<category><![CDATA[private workspaces]]></category>
		<category><![CDATA[QCon]]></category>
		<category><![CDATA[QCon '07]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[reparenting]]></category>
		<category><![CDATA[snapshots]]></category>

		<guid isPermaLink="false">http://blog.accurev.com/2007/11/09/qcon07-san-francisco-agile-conference/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/' addthis:title='QCon&#8217;07 San Francisco &#8211; Agile Conference ' ><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>For those tracking the movement of luminaries such as Martin Fowler and Kent Beck or looking for scalability advice from the architects at companies like Orbitz, Ebay, and Linked-In&#8230; QCon &#8217;07 in downtown San Francisco is the place to be! The conference is packed with senior architects, software engineers, and open-source contributors galore &#8212; over [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/' addthis:title='QCon&#8217;07 San Francisco &#8211; Agile Conference '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/' addthis:title='QCon&#8217;07 San Francisco &#8211; Agile Conference ' ><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>For those tracking the movement of luminaries such as <a href="http://martinfowler.com/" target="_blank">Martin Fowler</a> and <a href="http://en.wikipedia.org/wiki/Kent_Beck" target="_blank">Kent Beck</a> or looking for scalability advice from the architects at companies like Orbitz, Ebay, and Linked-In&#8230; <a href="http://qcon.infoq.com/sanfrancisco/speaker/Damon+Poole%2C+Founder+and+CTO" target="_blank">QCon &#8217;07</a> in downtown San Francisco is the place to be!</p>
<p>The conference is packed with senior architects, software engineers, and open-source contributors galore &#8212; over 400 were rumored<a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_damon_cliff.jpg" target="_blank"><img class="alignright" style="margin-top: 10pt; margin-right: 0px; margin-bottom: 5px; margin-left: 5px; border: 1px solid black;" src="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_damon_cliff.jpg" alt="Damon Poole / Cliff Utstein - AccuRev - QCon’07" width="200" height="150" title="QCon07 San Francisco   Agile Conference" /></a> to be in attendance. With speaker topics ranging from enterprise scalability to Agile practices, the audience was nothing short of being at the top of their game. Huddled together at the entrance to the conference rooms were a <a href="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_dave.jpg" target="_blank"><img class="alignleft" style="margin-top: 10pt; margin-right: 5pt; margin-bottom: 5px; margin-left: 0px; border: 1px solid black;" src="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_dave.jpg" alt="David Thomas - AccuRev - QCon’07" width="200" height="150" title="QCon07 San Francisco   Agile Conference" /></a>number of vendors showing off new warez including AccuRev. Here&#8217;s a shot of <strong><a href="http://damonpoole.blogspot.com" target="_blank">Damon Poole</a></strong> &amp; Cliff Utstein (top-right), <strong><a href="http://www.daveonscm.com/" target="_blank">Dave Thomas</a> </strong>(left), and John Wall (bottom-right). The AccuRev booth had a <a id="file-link-75" class="file-link image" title="John Wall - AccuRev - QCon’07" href="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_jwall.jpg" target="_blank"><img class="alignright" style="margin-top: 10pt; margin-right: 0px; margin-bottom: 5px; margin-left: 5px; border: 1px solid black;" src="http://www.accurev.com/blog/wp-content/uploads/2007/11/qcon_2007_jwall.jpg" alt="John Wall - AccuRev - QCon'07" width="200" height="150" title="QCon07 San Francisco   Agile Conference" /></a>constant flow of folks amazed at how the stream-based <a id="file-link-75" class="file-link image" title="John Wall - AccuRev - QCon’07"></a>architecture brings a refreshing approach to managing<a id="file-link-75" class="file-link image" title="John Wall - AccuRev - QCon’07"> </a>software configurations and supporting agile practices. We also had some cameo appearances from existing customers like Authorize.Net and Orbitz.com.</p>
<p>Agile development methodologies is a major theme of the conference. For someone looking for advice on agile, just standing in the middle of the exhibit hall is all it takes &#8212; everyone is talking about best practices, success stories, and failed attempts.</p>
<p>We had a constant stream of people intrigued by our stream-based architecture and inherent support for agile practices. Here&#8217;s a list of common discussion points:</p>
<p><strong>private workspaces</strong>: commit-early, commit-often</p>
<p><strong>stream inheritance</strong>: merge-early, merge-often and sharing iterations early and automatically with parallel development efforts</p>
<p><strong>issue tracking integration</strong>: assign, deliver and track development activity to stories/issues/features</p>
<p><strong>continuous integration</strong>: integrations with cruise control, finalbuilder, electric-cloud, and others</p>
<p><strong>refactoring</strong>: IDE integrations with eclipse, Intelli-J, Visual Studio support application-wide refactoring with version control</p>
<p><strong>staged workflows: </strong>organize distributed teams and isolate integration areas from testing areas for explicit and repeatable access to known configurations.</p>
<p><strong>snapshots:</strong> guaranteed reproducibility of labeled configurations for builds known to be &#8216;good&#8217;</p>
<p><strong>reparenting:</strong> retarget active development to known good configurations for testing or stable development</p>
<p>If you didn&#8217;t have a chance to attend this years QCon, be sure to put next years event on your calendar!</p>
<p>/happy conferencing/ &#8211; dave</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/' addthis:title='QCon&#8217;07 San Francisco &#8211; Agile Conference '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2007/11/09/qcon07-san-francisco-agile-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

