<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Ruby Releases Are Scary (Or: How CI Can Save Your Ass)</title>
	<atom:link href="http://www.deskchecked.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>Thomas Lee's programming blog</description>
	<lastBuildDate>Sat, 27 Mar 2010 16:01:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: OJ</title>
		<link>http://www.deskchecked.com/2008/07/04/ruby-releases-are-scary/comment-page-1/#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&#039;s true I have seen that in the past as well. It&#039;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&#039;s not already!) in that it is not a catch-all. Just because a CI build is in place it doesn&#039;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-page-1/#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 &amp;  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&#039;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 &#039;defense&#039; 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&#039;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 &#8211; 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 &#8211; 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-page-1/#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&#039;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 &quot;get latest&quot;, 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&#039;t trust every developer to do the right thing. But on top of that, there&#039;s always a risk of different devs checking in different source files at the same time resulting in a broken build ... even if they&#039;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 &#8211; <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-page-1/#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&#039;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&#039;m sure you&#039;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-page-1/#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&#039;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-page-1/#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&#039;t my fault and reverting back to 1.8.6, which worked like a charm.

Just sayin&#039;.</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-page-1/#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&#039;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&#039;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 &quot;wasting time&quot; on it. These days you can have a basic CI build set up in under an hour. There really isn&#039;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=&quot;http://thedailywtf.com/Articles/Source-Control-Mastery.aspx&quot; rel=&quot;nofollow&quot;&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>
