<?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: Ruby Releases Are Scary (Or: How CI Can Save Your Ass)</title>
	<atom:link href="http://www.vector-seven.com/2008/07/04/ruby-releases-are-scary/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/</link>
	<description>Tom Lee's programming blog</description>
	<pubDate>Fri, 21 Nov 2008 21:35:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
		<item>
		<title>By: OJ</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1340</link>
		<dc:creator>OJ</dc:creator>
		<pubDate>Mon, 07 Jul 2008 09:26:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1340</guid>
		<description>@Ben: That's true I have seen that in the past as well. It's becoming more common to find teams that just rely too heavily on the CI build. The purpose of CI builds should be made clear to the dev team (if it's not already!) in that it is not a catch-all. Just because a CI build is in place it doesn't allow them to be cowboys who think that everything is fine unless the CI build breaks.</description>
		<content:encoded><![CDATA[<p>@Ben: That&#8217;s true I have seen that in the past as well. It&#8217;s becoming more common to find teams that just rely too heavily on the CI build. The purpose of CI builds should be made clear to the dev team (if it&#8217;s not already!) in that it is not a catch-all. Just because a CI build is in place it doesn&#8217;t allow them to be cowboys who think that everything is fine unless the CI build breaks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1333</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Sat, 05 Jul 2008 18:59:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1333</guid>
		<description>@tom &#38;  OJ

You bring up a good point about communication - CI does add value by letting every developer know that the tests will be run (and that everyone will be alerted if there are problems). And, as you said, it's nice to have it in place to catch those mistakes we all end up making sooner or later. For those reasons and others, I think CI is valuable and should be used.

That said, I still think that CI should really be the safety net or the last line of defense for automated tests (OJ - I agree it should be the first line of defense &lt;i&gt;upon check-in&lt;/i&gt;, but teams should have 'defense' way before check-in). I think sometimes teams come to rely on CI too much because their test suite has gotten too large or too slow to run on individual developer machines. I'd like to see teams address the problem of getting fast pre-checkin feedback via tests first and foremost and use CI as a safety net. Ideally, CI would catch very few problems, because most would be caught before.</description>
		<content:encoded><![CDATA[<p>@tom &amp;  OJ</p>
<p>You bring up a good point about communication - CI does add value by letting every developer know that the tests will be run (and that everyone will be alerted if there are problems). And, as you said, it&#8217;s nice to have it in place to catch those mistakes we all end up making sooner or later. For those reasons and others, I think CI is valuable and should be used.</p>
<p>That said, I still think that CI should really be the safety net or the last line of defense for automated tests (OJ - I agree it should be the first line of defense <i>upon check-in</i>, but teams should have &#8216;defense&#8217; way before check-in). I think sometimes teams come to rely on CI too much because their test suite has gotten too large or too slow to run on individual developer machines. I&#8217;d like to see teams address the problem of getting fast pre-checkin feedback via tests first and foremost and use CI as a safety net. Ideally, CI would catch very few problems, because most would be caught before.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OJ</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1326</link>
		<dc:creator>OJ</dc:creator>
		<pubDate>Sat, 05 Jul 2008 10:43:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1326</guid>
		<description>@Ben: I don't agree. It should be the &lt;em&gt;first&lt;/em&gt; line of defense upon check-in. If a build is broken (either by a failed compilation or a unit test failure) that can be throw up in the face of the developer in a heartbeat - &lt;strong&gt;well&lt;/strong&gt; before anyone else in the testing cycle gets their hands on it.

Yes, devs should "get latest", build and run the test suite before checking in, but the CI server should still be there to make sure everything is honky-dory.

As Tom said, you can't trust every developer to do the right thing. But on top of that, there's always a risk of different devs checking in different source files at the same time resulting in a broken build ... even if they've followed the correct process.</description>
		<content:encoded><![CDATA[<p>@Ben: I don&#8217;t agree. It should be the <em>first</em> line of defense upon check-in. If a build is broken (either by a failed compilation or a unit test failure) that can be throw up in the face of the developer in a heartbeat - <strong>well</strong> before anyone else in the testing cycle gets their hands on it.</p>
<p>Yes, devs should &#8220;get latest&#8221;, build and run the test suite before checking in, but the CI server should still be there to make sure everything is honky-dory.</p>
<p>As Tom said, you can&#8217;t trust every developer to do the right thing. But on top of that, there&#8217;s always a risk of different devs checking in different source files at the same time resulting in a broken build &#8230; even if they&#8217;ve followed the correct process.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tom</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1319</link>
		<dc:creator>tom</dc:creator>
		<pubDate>Sat, 05 Jul 2008 03:21:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1319</guid>
		<description>@OJ: haha, very true

@Ben: It's not so much about finding broken tests as it is about &lt;em&gt;communication&lt;/em&gt;. CI &lt;em&gt;ensures&lt;/em&gt; that your tests will -- at some point -- be exercised rather than trusting developers to run their test suite prior to every commit. And when they break, *everyone* gets to know about it. As I'm sure you're aware, even the most diligent programmers sometimes get lazy and/or make honest mistakes.

This is &lt;em&gt;Ruby&lt;/em&gt;, which been subject to far more developer scrutiny than your average internal software project --  and still 57 specs were broken in the trunk, seemingly without anyone being aware of it.</description>
		<content:encoded><![CDATA[<p>@OJ: haha, very true</p>
<p>@Ben: It&#8217;s not so much about finding broken tests as it is about <em>communication</em>. CI <em>ensures</em> that your tests will &#8212; at some point &#8212; be exercised rather than trusting developers to run their test suite prior to every commit. And when they break, *everyone* gets to know about it. As I&#8217;m sure you&#8217;re aware, even the most diligent programmers sometimes get lazy and/or make honest mistakes.</p>
<p>This is <em>Ruby</em>, which been subject to far more developer scrutiny than your average internal software project &#8212;  and still 57 specs were broken in the trunk, seemingly without anyone being aware of it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1316</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Fri, 04 Jul 2008 13:40:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1316</guid>
		<description>CI is great, but in my opinion, it really should be a last line of defense. While not as bad as human QA finding bugs (or, even worse, end users), the feedback that CI provides is still far too delayed. I'd argue that any project should strive to make sure every developer can run the full suite on their desktop (and make it fast enough that they can do it often).</description>
		<content:encoded><![CDATA[<p>CI is great, but in my opinion, it really should be a last line of defense. While not as bad as human QA finding bugs (or, even worse, end users), the feedback that CI provides is still far too delayed. I&#8217;d argue that any project should strive to make sure every developer can run the full suite on their desktop (and make it fast enough that they can do it often).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Phill</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1315</link>
		<dc:creator>Phill</dc:creator>
		<pubDate>Fri, 04 Jul 2008 01:11:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1315</guid>
		<description>You know, I spent a shameful amount of time trying to get 1.8.7 to compile on Solaris, before deciding that maybe it wasn't my fault and reverting back to 1.8.6, which worked like a charm.

Just sayin'.</description>
		<content:encoded><![CDATA[<p>You know, I spent a shameful amount of time trying to get 1.8.7 to compile on Solaris, before deciding that maybe it wasn&#8217;t my fault and reverting back to 1.8.6, which worked like a charm.</p>
<p>Just sayin&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OJ</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/#comment-1314</link>
		<dc:creator>OJ</dc:creator>
		<pubDate>Thu, 03 Jul 2008 22:35:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.vector-seven.com/?p=71#comment-1314</guid>
		<description>The dark ages of not using CI for stuff like this should be well and truly behind us. Unfortunately, it's not the case. There are still a surprising amount of projects, small and large, unknown and well-known, that are built without some form of CI. In my view that's just nuts.

10 years ago, getting a CI setup together was a pain in the ass, and I can understand why people would consider not "wasting time" on it. These days you can have a basic CI build set up in under an hour. There really isn't an excuse for &lt;em&gt;not&lt;/em&gt; doing it.

I guess we should at least be grateful that they &lt;a href="http://thedailywtf.com/Articles/Source-Control-Mastery.aspx" rel="nofollow"&gt;use source control&lt;/a&gt; ;)</description>
		<content:encoded><![CDATA[<p>The dark ages of not using CI for stuff like this should be well and truly behind us. Unfortunately, it&#8217;s not the case. There are still a surprising amount of projects, small and large, unknown and well-known, that are built without some form of CI. In my view that&#8217;s just nuts.</p>
<p>10 years ago, getting a CI setup together was a pain in the ass, and I can understand why people would consider not &#8220;wasting time&#8221; on it. These days you can have a basic CI build set up in under an hour. There really isn&#8217;t an excuse for <em>not</em> doing it.</p>
<p>I guess we should at least be grateful that they <a href="http://thedailywtf.com/Articles/Source-Control-Mastery.aspx" rel="nofollow">use source control</a> <img src='http://www.deskchecked.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>
