<?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>cwash into software &#187; build process</title>
	<atom:link href="http://cwash.org/tag/build-process/feed/" rel="self" type="application/rss+xml" />
	<link>http://cwash.org</link>
	<description>+= construction + craftsmanship;</description>
	<lastBuildDate>Thu, 29 Sep 2011 04:23:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>Pimp My Build</title>
		<link>http://cwash.org/2008/07/21/pimp-my-build/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pimp-my-build</link>
		<comments>http://cwash.org/2008/07/21/pimp-my-build/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 18:18:50 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[build process]]></category>
		<category><![CDATA[ivy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javaee]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[static analysis]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=5</guid>
		<description><![CDATA[In terms of the sheer number of moving parts, extravagance, and complexity, the build-tool landscape is one of bells and whistles that can be a little tough to stay on top of. There are a few important pieces of a robust and valuable build, no matter what tools you use to achieve it, and by breaking the build into modules or categories, we can make a little bit of sense out of the chaos.
]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/07/21/pimp-my-build/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>In terms of the sheer number of moving parts, extravagance, and complexity, the build-tool landscape is one of bells and whistles that can be a little tough to stay on top of. There are a few important pieces of a robust and valuable build, no matter what tools you use to achieve it, and by breaking the build into modules or categories, we can make a little bit of sense out of the chaos.</p>
<p>In our vast build-tool landscape, there tend to be some zealous cults out there, entrenched deeply in their own camps and unwilling to venture out to explore what the rest of the landscape has to offer.   Thus, there have been some religious-like differences of opinion about which build tools are better and why.  Sadly you run across these types of biases all too often, which only pollutes the landscape and makes it more difficult to wrap your head the most basic questions underlying all tools:</p>
<ul>
<li>What does it accomplish?</li>
<li>When is it (or isn&#8217;t it) right for the job?</li>
<li>How do I use it effectively and efficiently?</li>
</ul>
<p>With a pragmatic view, we can try to cut through a lot of the BS and figure out if a tool is worth its weight in:</p>
<ol>
<li> dependencies/design complexity.</li>
<li>ease of use/interface complexity.</li>
<li>architectural decisions/compromises that it brings to the table.</li>
</ol>
<p>Does the tool get us to the goal of a single button build/deploy?  If the answer is yes, I&#8217;ll welcome it with open arms.  Does it add me a form of feedback or some kind of statistic that could be a kind of gauge on a dashboard?  Then I may be interested in it, but it&#8217;s not nearly as vital.</p>
<p>Here&#8217;s an outline of what I typically look to include in a project&#8217;s build before I am satisfied:</p>
<ul>
<li>Compile &#8211; Obviously your build script would be for naught if you didn&#8217;t include this piece.  There&#8217;s also something to be said about some dynamic/interpreted languages (that run on the JVM) taking the hit on this step and producing compiled versions.  The argument is akin to compiling your JSPs back in the day.</li>
<li>Unit test suite &#8211; Another one of those no-brainers!  You&#8217;ll obviously want to integrate your ability to run a single test or test suite from a build tool quickly and easily.</li>
<li>Test reports &#8211; Test reports are an important way of visualizing the health of your project and are usually the first place you&#8217;ll go when you see something wrong.  A must have.</li>
<li>Transitive dependency management &#8211; This is one of those sticky subjects that people like to argue about religiously.  Really the important thing to note here is that a crucial part of keeping your build clean and manageable is figuring out how to represent and resolve <em>transitive</em> dependencies, or second-level dependencies.  If your code directly depends on a library, odds are that library has its own run-time dependencies that need to be satisified in order for it to work properly.  Since managing the different versions of many different libraries can become tough when you start to look at different &#8220;stacks&#8221; of software, many people advocate having a tool help you resolve these dependencies so it&#8217;s not as daunting a task to get the entire stack to work again when you need to upgrade a single library.  Maven and Ivy solve this problem by introducing repositories that will house and dynamically resolve these versioning issues, in much the same manner as yum or apt-get does in the Linux world.  A lot of newbs will make the mistake of thinking this type of functionality will let them turn off their brain when it comes to think about their project&#8217;s dependencies.  They will be sorely mistaken!  The point of these to make resolving conflicts in transitive dependencies easier, they do not replace your brain, nor your obligation to know the dependencies in your project and how they fit together!</li>
<li>Utility ant tasks &#8211; the daunting part of learning how to write good builds has a bit to do with how much you know about the ant task landscape.  Nearly all libraries have tools that plug into ant, but which ones do you really need to know about?  I&#8217;ve found a few are quite powerful, particularly <a title="Replace Task" href="http://ant.apache.org/manual/CoreTasks/replace.html" target="_blank">replace</a>, <a title="Uptodate Task" href="http://ant.apache.org/manual/CoreTasks/uptodate.html">uptodate</a>, <a title="CvsTagDiff task" href="http://ant.apache.org/manual/CoreTasks/cvstagdiff.html" target="_blank">cvstagdiff</a> (and corresponding svn&#8217;s), <a title="XMLTask" href="http://www.oopsconsultancy.com/software/xmltask/" target="_blank">xmltask</a> and <a title="dbdeploy" href="http://dbdeploy.com/" target="_blank">dbdeploy</a>.  I think these tools should be looked at when you are trying to figure out how to accomplish something specific, and for that reason, they&#8217;re a bit more like &#8220;bells and whistles&#8221; than anything else.  The same goes for the next category, which arguably doesn&#8217;t even need to live in your build (but if you&#8217;re a team player, it&#8217;s a definite nice to have):</li>
<li>Static analysis &#8211; There have been a barage of slick static-analysis tools that have entered the Java landscape recently.  A few are <a title="FindBugs" href="http://findbugs.sourceforge.net/" target="_blank">FindBugs</a>, <a title="PMD" href="http://pmd.sourceforge.net/" target="_blank">PMD</a>, <a title="CheckStyle" href="http://checkstyle.sourceforge.net/" target="_blank">CheckStyle</a>.  While most of these tools have plugins that integrate nicely into an IDE, it&#8217;s also helpful to have them plugged into your build, too.  Just to make sure everyone is following the rules.  A few others I&#8217;ve seen that focus on cyclomatic complexity, cohesion/coupling are <a title="Metrics" href="http://metrics.sourceforge.net/">Metrics</a> and <a title="JDepend" href="http://clarkware.com/software/JDepend.html" target="_blank">JDepend</a>.</li>
</ul>
<p>What build tools fit into your pimped out script?</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/07/21/pimp-my-build/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Pimp+My+Build&amp;link=http://cwash.org/2008/07/21/pimp-my-build/&amp;notes=In%20terms%20of%20the%20sheer%20number%20of%20moving%20parts%2C%20extravagance%2C%20and%20complexity%2C%20the%20build-tool%20landscape%20is%20one%20of%20bells%20and%20whistles%20that%20can%20be%20a%20little%20tough%20to%20stay%20on%20top%20of.%20There%20are%20a%20few%20important%20pieces%20of%20a%20robust%20and%20valuable%20build%2C%20no%20matter%20what%20tools%20you%20use%20to%20achieve%20it%2C%20and%20by%20breaking%20the%20build%20into%20modules%20or%20categories%2C%20we%20can%20make%20a%20little%20bit%20of%20sense%20out%20of%20the%20chaos.%0D%0A&amp;short_link=http://bit.ly/aspzBG&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>November 19, 2008 -- <a href="http://cwash.org/2008/11/19/java-6-and-maven-209-on-leopard/" title="Java 6 and Maven 2.0.9 on Leopard">Java 6 and Maven 2.0.9 on Leopard</a> (7)</li><li>June 3, 2009 -- <a href="http://cwash.org/2009/06/03/what-is-hamcrest/" title="What is Hamcrest?">What is Hamcrest?</a> (0)</li><li>April 15, 2009 -- <a href="http://cwash.org/2009/04/15/osgi-ggity-giggity/" title="OSGi-ggity-Giggity">OSGi-ggity-Giggity</a> (4)</li><li>September 10, 2008 -- <a href="http://cwash.org/2008/09/10/axis2-client-using-adb-runtime-dependencies/" title="Axis2 client using ADB &#8211; runtime dependencies">Axis2 client using ADB &#8211; runtime dependencies</a> (6)</li><li>March 19, 2008 -- <a href="http://cwash.org/2008/03/19/new-wave-logging/" title="New Wave Logging">New Wave Logging</a> (0)</li><li>March 13, 2008 -- <a href="http://cwash.org/2008/03/13/continuous-integration-dissected/" title="Continuous Integration Dissected">Continuous Integration Dissected</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/07/21/pimp-my-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integration Dissected</title>
		<link>http://cwash.org/2008/03/13/continuous-integration-dissected/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=continuous-integration-dissected</link>
		<comments>http://cwash.org/2008/03/13/continuous-integration-dissected/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 16:29:06 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[build process]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[development practices]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cwash.org/2008/03/13/continuous-integration-dissected/</guid>
		<description><![CDATA[A lot gets written about Continuous Integration, particularly on which is the best visual cue to let you know your build is broken or that a test is failing – lava lamps, Beta Brights, <a href="http://www.thinkgeek.com/gadgets/electronic/5da2/" title="This is probably not the last link to ThinkGeek from me">Ambient Orbs</a>, and some even suggest traffic lights. But aside from this extraneous (at least to business) nerd-banter, a lot of what I find written about the actual topic of CI is fluffy, ivory tower, or pie-in-the-sky jibber-jabber that leaves out important parts of the big picture or confuses people more than it helps.  In hopes of clearing up confusion on what exactly CI is and how it's <em>supposed</em> to work, I'm ripping out a description that I wrote for a client proposal recently (so my apologizes for the dry-tone).  I hope sheds some light on the true nature of CI, why it's important and how to implement it from a birds-eye point of view.
<p style="text-align: center"><img src="http://techepics.com/files/mythbusters_exploading_lava.jpg" alt="Lava Lamps" height="175" hspace="10" width="195" /></p>]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/03/13/continuous-integration-dissected/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><h3>Setting the Record Straight</h3>
<p>A lot gets written about Continuous Integration, particularly on which is the best visual cue to let you know your build is broken or that a test is failing – lava lamps, Beta Brights, <a href="http://www.thinkgeek.com/gadgets/electronic/5da2/" title="This is probably not the last link to ThinkGeek from me">Ambient Orbs</a>, and some even suggest traffic lights. But aside from this extraneous (at least to business) nerd-banter, a lot of what I find written about the actual topic of CI is fluffy, ivory tower, or pie-in-the-sky jibber-jabber that leaves out important parts of the big picture or confuses people more than it helps.  In hopes of clearing up confusion on what exactly CI is and how it&#8217;s <em>supposed</em> to work, I&#8217;m ripping out a description that I wrote for a client proposal recently (so my apologizes for the dry-tone).  I hope sheds some light on the true nature of CI, why it&#8217;s important and how to implement it from a birds-eye point of view.</p>
<p style="text-align: center"><img src="http://techepics.com/files/mythbusters_exploading_lava.jpg" alt="Lava Lamps" height="350" hspace="10" width="390" /></p>
<h3>Continuous Integration Dissected</h3>
<p>Any large scale development project needs an automated, repeatable build process.  Following best practices while developing a build process properly separates environment-specific configuration concerns from the codebase.  This allows new environments to be created quickly and easily by simply overriding any environment-specific configuration values when first executing the build process.  Whatever build tool is being used, builds should share a common, consistent process and interface.  A consistent, repeatable build will know all of its dependencies and the goal is to be able to build any given module anywhere, independently, at any time.</p>
<p>Automated, repeatable build processes typically begin by obtaining dependencies (which can be specified using a dependency management tool) and a specific working-copy of the codebase (&#8220;checking out&#8221;) from a SCM system like CVS or Subversion.  It is important to note that this codebase includes any code that is responsible for performing automated testing in addition to source code and configuration (and possibly other source-like artifacts).</p>
<p>Once the checkout has completed, the process will compile code and run automated unit test suites for each module in the system.  At this point, all automated unit tests should pass, and custom development can begin.  Any changes to code must be adequately covered by unit tests (either by changing existing tests or creating new ones), must fully compile without any errors and pass all automated unit test suites before being committed to the repository.  The practice of always keeping the code committed to the SCM repository in this state (no compilation or unit test errors) is known as Continuous Integration and ensures that new development is safe to proceed at any point without fear of integration errors.</p>
<p>Subversion (and CVS) support concurrent development by following a Copy-Edit-Merge paradigm; any contention over files is usually caught when a developer tries to commit their changes and notices the underlying files have changed since they obtained their copy.  In many cases, Subversion is capable of performing a merge automatically, if there was no contention over the same piece of a file.  Sometimes, however, a manual merge will be required.  Merging becomes more painful as the number of differences in the conflicting files increase.  A good rule of thumb is that every developer should commit their changes at least daily.</p>
<p>Designating a single machine as a Continuous Integration (CI) environment provides many added benefits to a large scale development project.  There are many operations which are good candidates to have run &#8220;continuously&#8221; but quite often are too expensive for developers to perform before every commit.  Examples include executing automated in-browser system tests (which, if maintained over multiple releases, can serve as a &#8220;mini&#8221; regression test suite), performance tests/profiling, producing test metrics, generating documentation, etc.  CI servers are an ideal place to schedule these processes to occur in an automated fashion.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/03/13/continuous-integration-dissected/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Continuous+Integration+Dissected&amp;link=http://cwash.org/2008/03/13/continuous-integration-dissected/&amp;notes=A%20lot%20gets%20written%20about%20Continuous%20Integration%2C%20particularly%20on%20which%20is%20the%20best%20visual%20cue%20to%20let%20you%20know%20your%20build%20is%20broken%20or%20that%20a%20test%20is%20failing%20%E2%80%93%20lava%20lamps%2C%20Beta%20Brights%2C%20Ambient%20Orbs%2C%20and%20some%20even%20suggest%20traffic%20lights.%20But%20aside%20from%20this%20extraneous%20%28at%20least%20to%20business%29%20nerd-banter%2C%20a%20lot%20of%20what%20I%20find%20written%20about%20the%20actual%20topic%20of%20CI%20is%20fluffy%2C%20ivory%20tower%2C%20or%20pie-in-the-sky%20jibber-jabber%20that%20leaves%20out%20important%20parts%20of%20the%20big%20picture%20or%20confuses%20people%20more%20than%20it%20helps.%20%20In%20hopes%20of%20clearing%20up%20confusion%20on%20what%20exactly%20CI%20is%20and%20how%20it%27s%20supposed%20to%20work%2C%20I%27m%20ripping%20out%20a%20description%20that%20I%20wrote%20for%20a%20client%20proposal%20recently%20%28so%20my%20apologizes%20for%20the%20dry-tone%29.%20%20I%20hope%20sheds%20some%20light%20on%20the%20true%20nature%20of%20CI%2C%20why%20it%27s%20important%20and%20how%20to%20implement%20it%20from%20a%20birds-eye%20point%20of%20view.%0D%0A&amp;short_link=http://bit.ly/9tMLie&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>March 11, 2008 -- <a href="http://cwash.org/2008/03/11/bugs-detectives-and-test-automation/" title="Bugs, Detectives, and Test Automation">Bugs, Detectives, and Test Automation</a> (2)</li><li>January 31, 2009 -- <a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/" title="In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel ">In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel </a> (3)</li><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>July 8, 2010 -- <a href="http://cwash.org/2010/07/08/transactions-part-1/" title="Transactions, Part 1">Transactions, Part 1</a> (0)</li><li>January 7, 2010 -- <a href="http://cwash.org/2010/01/07/eliminate-branching-if-statements-to-produce-better-code/" title="Eliminate Branching (IF Statements) to Produce Better Code">Eliminate Branching (IF Statements) to Produce Better Code</a> (0)</li><li>July 24, 2009 -- <a href="http://cwash.org/2009/07/24/the-elements-of-reusable-code/" title="The Elements of Reusable Code">The Elements of Reusable Code</a> (0)</li><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>February 17, 2009 -- <a href="http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/" title="Don&#8217;t Unit Test Anymore&#8230; No, Really!">Don&#8217;t Unit Test Anymore&#8230; No, Really!</a> (6)</li><li>January 13, 2009 -- <a href="http://cwash.org/2009/01/13/on-software-quality/" title="On Software Quality">On Software Quality</a> (8)</li><li>August 2, 2008 -- <a href="http://cwash.org/2008/08/02/how-i-escape-the-reuse-trap/" title="How I Escape the &#8220;Reuse Trap&#8221;">How I Escape the &#8220;Reuse Trap&#8221;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/03/13/continuous-integration-dissected/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

