<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: The Cost of Integration</title>
	<atom:link href="http://www.conifersystems.com/2008/11/29/the-cost-of-integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.conifersystems.com/2008/11/29/the-cost-of-integration/</link>
	<description></description>
	<pubDate>Tue, 07 Sep 2010 21:40:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: The Cost of Branching - Conifer Systems</title>
		<link>http://www.conifersystems.com/2008/11/29/the-cost-of-integration/#comment-79</link>
		<dc:creator>The Cost of Branching - Conifer Systems</dc:creator>
		<pubDate>Mon, 08 Dec 2008 17:33:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.conifersystems.com/?p=78#comment-79</guid>
		<description>[...] wrote previously on the cost of integration.  I&#8217;d like to follow up by discussing a related topic, the cost of [...]</description>
		<content:encoded><![CDATA[<p>[...] wrote previously on the cost of integration.  I&#8217;d like to follow up by discussing a related topic, the cost of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.conifersystems.com/2008/11/29/the-cost-of-integration/#comment-76</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 01 Dec 2008 19:06:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.conifersystems.com/?p=78#comment-76</guid>
		<description>Hi Eric, I agree that as teams get larger we are stuck making a choice between several less-than-satisfactory alternatives.

However, I've worked on projects with well over 100 people regularly committing to a single branch without stability problems.  I think it's a matter of having appropriate tools to (1) detect regressions promptly and (2) prevent regressions from happening in the first place.

My guess is that teams that only focus on "detection after the fact" rather than prevention are the ones whose processes start breaking down around ~100 engineers.

Computers (especially headless desktop PCs) are so cheap these days; compare the cost of buying an appropriately sized build farm to the cost of hiring an engineer.  It's a bargain if it saves you any time at all.</description>
		<content:encoded><![CDATA[<p>Hi Eric, I agree that as teams get larger we are stuck making a choice between several less-than-satisfactory alternatives.</p>
<p>However, I&#8217;ve worked on projects with well over 100 people regularly committing to a single branch without stability problems.  I think it&#8217;s a matter of having appropriate tools to (1) detect regressions promptly and (2) prevent regressions from happening in the first place.</p>
<p>My guess is that teams that only focus on &#8220;detection after the fact&#8221; rather than prevention are the ones whose processes start breaking down around ~100 engineers.</p>
<p>Computers (especially headless desktop PCs) are so cheap these days; compare the cost of buying an appropriately sized build farm to the cost of hiring an engineer.  It&#8217;s a bargain if it saves you any time at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: EricMinick</title>
		<link>http://www.conifersystems.com/2008/11/29/the-cost-of-integration/#comment-75</link>
		<dc:creator>EricMinick</dc:creator>
		<pubDate>Mon, 01 Dec 2008 14:40:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.conifersystems.com/?p=78#comment-75</guid>
		<description>Mark,

I tend to agree, but I think as teams get large (an agile anti-practice I'd argue) and you have 100 people committing into the same large code base, the "everyone works on trunk" ideal starts to break down. Especially as the rate of commits times the length of the build, exceeds the capacity of the system to quickly build each commit.

In these circumstances, my favorite answer is to split the team of 100 up into component teams and build parts of the system separately. When that can't be done, I think feature or component streams may be the least evil remaining option. I say streams rather than branches, because stream based SCMs actually allow for automatic merging from the main integration "branch" back into the ones developers are working on. 

The big bang integration risk is still present, but builds off the feature streams may be independently verifiable and integrated into the integration stream at least daily. It seems like a reasonable compromise.

That said, it's still far from ideal and you're dead right that the cost of integration increases over time.</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>I tend to agree, but I think as teams get large (an agile anti-practice I&#8217;d argue) and you have 100 people committing into the same large code base, the &#8220;everyone works on trunk&#8221; ideal starts to break down. Especially as the rate of commits times the length of the build, exceeds the capacity of the system to quickly build each commit.</p>
<p>In these circumstances, my favorite answer is to split the team of 100 up into component teams and build parts of the system separately. When that can&#8217;t be done, I think feature or component streams may be the least evil remaining option. I say streams rather than branches, because stream based SCMs actually allow for automatic merging from the main integration &#8220;branch&#8221; back into the ones developers are working on. </p>
<p>The big bang integration risk is still present, but builds off the feature streams may be independently verifiable and integrated into the integration stream at least daily. It seems like a reasonable compromise.</p>
<p>That said, it&#8217;s still far from ideal and you&#8217;re dead right that the cost of integration increases over time.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
