<?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>OpenSource Connections &#187; Continuous Integration</title>
	<atom:link href="http://www.opensourceconnections.com/category/programming/continuous-integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opensourceconnections.com</link>
	<description>Automating the Science to Enable the Art</description>
	<lastBuildDate>Fri, 03 Sep 2010 21:15:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>James Bach, the bad boy of Testing?</title>
		<link>http://www.opensourceconnections.com/2009/10/26/james-bach-the-bad-boy-of-testing/</link>
		<comments>http://www.opensourceconnections.com/2009/10/26/james-bach-the-bad-boy-of-testing/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 20:23:51 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[STPcon]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Exploratory Testing]]></category>
		<category><![CDATA[james bach]]></category>
		<category><![CDATA[stpcon2009]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=466</guid>
		<description><![CDATA[<p>So, is <a href="http://www.satisfice.com/blog/">James Bach</a> (<a href="http://www.twitter.com/jamesmarcusbach">@jamesmarcusbach</a>) the bad boy of testing?  </p>
<p>I flew up to Boston on Monday to lead some workshops on Continuous Integration.  I checked into my room at the Hyatt and then went downstairs to see who was around.  I ran into a couple of speakers milling about, and eventually joined one of them, and we headed over to the MIT Press bookstore, me to look for my Solr book.  I wasn&#8217;t too sure of the name of the other speaker I was with (I asked once, but couldn&#8217;t quite remember what it was&#8230;).  So we got to the book shop, I ask my fellow speaker again: James Bach.  The name I was familiar with, but couldn&#8217;t quite place it&#8230;  I ended up buying <a href="http://www.amazon.com/Parentonomics-Economist-Dad-Looks-Parenting/dp/0262012782/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1256239604&#038;sr=8-1">Parentonomics</a>, and then we go for coffee.</p>
<p><a href="http://www.opensourceconnections.com/2009/10/26/james-bach-the-bad-boy-of-testing/" class="more-link">Read more on James Bach, the bad boy of Testing?&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>So, is <a href="http://www.satisfice.com/blog/">James Bach</a> (<a href="http://www.twitter.com/jamesmarcusbach">@jamesmarcusbach</a>) the bad boy of testing?  </p>
<p>I flew up to Boston on Monday to lead some workshops on Continuous Integration.  I checked into my room at the Hyatt and then went downstairs to see who was around.  I ran into a couple of speakers milling about, and eventually joined one of them, and we headed over to the MIT Press bookstore, me to look for my Solr book.  I wasn&#8217;t too sure of the name of the other speaker I was with (I asked once, but couldn&#8217;t quite remember what it was&#8230;).  So we got to the book shop, I ask my fellow speaker again: James Bach.  The name I was familiar with, but couldn&#8217;t quite place it&#8230;  I ended up buying <a href="http://www.amazon.com/Parentonomics-Economist-Dad-Looks-Parenting/dp/0262012782/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1256239604&#038;sr=8-1">Parentonomics</a>, and then we go for coffee.</p>
<p>So, over coffee, he asks me about what my topic is, and I gave him the brief summary of my two CI related workshops.  Wow..  Little did I realize that I was sitting with the guy who rails against the &#8220;fetish&#8221; that Agile folks have for automated testing!  That his entire approach to &#8220;testing&#8221; is to use skilled, motivated folks who do &#8220;sapient testing&#8221;.  And I&#8217;m the guy who&#8217;s selling an approach that REQUIRES automated tests!  That encourages expanding the use of automated testing!</p>
<p>He actually walked me through a process of talking about how to &#8220;think like a tester&#8221;, and it was really great mini-workshop..  He definitely subscribes to the socratic approach, and believes in his message, I was sweating at the end of it!  That chat probably sparked more ideas in less time over that coffee then anything else this week.  I also heard a lot of ideas and phrases that were echoed in Michael Bolton&#8217;s keynote later on in the week.  Clearly a lot of collaboration between the two!</p>
<p>Probably the biggest idea that James and chatted about was the idea that automated tests really aren&#8217;t automated tests, they are automated checks.  They verify that the expected behavior of the code was met.  His argument that if you want to do testing, real testing, then computers, automated processes can&#8217;t meet that need, only people can.  </p>
<p>Now, I don&#8217;t know if I believe that is completely true, but I am very aware that the &#8220;manual testing&#8221; where long test scripts written as Word documents are executed by human beings by hand are really a waste of human potential.  And that those test scripts are really, to use James terms, &#8220;check scripts&#8221; because the people are not using any creativity!  In fact, a lot of my interest in CI comes from the idea that people should not do <a href="http://www.newtechusa.com/PPI/services.asp#Testing">monkey testing</a>, that machines can do it much better, and my frustation with the perception that testing is a low value activity and can be easily shipped off to low skilled folks.</p>
<p>I think that this shift away from the term &#8220;test&#8221; for automated tests is actually happening in many places.  In the Ruby world, we have libraries like Shoulda that are moving from using words like <em>assert</em> to other words like <em>should</em>.  A <a href="http://www.rubyinside.com/cucumber-the-latest-in-ruby-testing-1342.html">Cucumber</a> test really shows how controlled the space that a test needs to be to work well in an automated fashion:</p>
<blockquote><p>
Scenario: See all vendors<br />
    Given I am logged in as a user in the administrator role<br />
    And There are 3 vendors<br />
    When I go to the manage vendors page<br />
    Then I should see the first 3 vendor names
</p></blockquote>
<p>So while I don&#8217;t know if I am bought in on the idea that only people can do &#8220;testing&#8221;, and machines can only do &#8220;checking&#8221;.  Tools like <a href="http://ruby.sadi.st/Heckle.html">Heckle</a> try to simulate aspects of what a human can do.  While not suggesting that we can automate the &#8220;does my website look okay after someone changed the CSS&#8221; type of work today, in the future our automated testing will be more capable then just &#8220;checking&#8221; because we will move beyond the very constrained tests we have today to ones that mimicing the richness of the simulators that Airline Pilots use.  Instead of testing the training given to pilots, we&#8217;ll be testing the robustness of software via simulations!</p>
<p>At any rate, James Bach, while taking a rather provocative approach to sharing his ideas, does subscribe to my favorite bullet in the Agile Manifesto: <strong>Individuals and interactions over processes and tools</strong>.</p>
<p>Here is him giving a great presentation with the subversive title of &#8220;<a href="http://www.stpcon.com/session-how-to-fake-test-project.html">How to Fake a Project</a>&#8221; that was incredible entertaining, and also quite thought provoking:</p>
<p><a href="http://www.flickr.com/photos/27517504@N05/4047081589/" title="James Bach talking about &quot;Faking a Test Plan&quot; by opensourceconnections, on Flickr"><img src="http://farm3.static.flickr.com/2450/4047081589_3c8e0fbb07.jpg" width="500" height="375" alt="James Bach talking about &quot;Faking a Test Plan&quot;" /></a></p>
<p><br clear='all'/><br />
What do you think?  Automated testing is a fetish of the Agile community?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/10/26/james-bach-the-bad-boy-of-testing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MonkeyCI: Super light-weight Continuous Integration for small teams</title>
		<link>http://www.opensourceconnections.com/2009/05/20/monkeyci-super-light-weight-continuous-integration-for-small-teams/</link>
		<comments>http://www.opensourceconnections.com/2009/05/20/monkeyci-super-light-weight-continuous-integration-for-small-teams/#comments</comments>
		<pubDate>Wed, 20 May 2009 14:05:03 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[MonkeyCI]]></category>
		<category><![CDATA[PPI]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=433</guid>
		<description><![CDATA[<p>At OSC, we have a <a href="http://www.opensourceconnections.com/methodology/">well developed methodology</a> that we apply to our client work, and one of the core tenets is using Continuous Integration to ensure our code behaves the way we intend it to.</p>
<p><a href="http://www.opensourceconnections.com/2009/05/20/monkeyci-super-light-weight-continuous-integration-for-small-teams/" class="more-link">Read more on MonkeyCI: Super light-weight Continuous Integration for small teams&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>At OSC, we have a <a href="http://www.opensourceconnections.com/methodology/">well developed methodology</a> that we apply to our client work, and one of the core tenets is using Continuous Integration to ensure our code behaves the way we intend it to.</p>
<p>However, recently we&#8217;ve had two projects were the usual CI solutions such as CruiseControl etc haven&#8217;t worked out well, and we had to develop our own internal CI tool that we are ready to publish to the world called <strong>MonkeyCI</strong>.</p>
<p>On the first project, which was a PHP based application with 5 full time developers, we used CruiseControl with the <a href="http://www.phpundercontrol.org/about.html">phpUnderControl</a> addon.  However, we were running CruiseControl on what turned out to be an underpowered hosted Windows server, and we kept getting build failure errors related to environmental difficulties.   Now, if you&#8217;ve seen my talk about CI, you know how big I am on speccing a beefy server for CI, and this experience reinforced that lesson.  We decided that migrating the CI environment to a bigger server was something that we felt was in the &#8220;nice to have&#8221; category, and that it could wait till the next iteration.  But we needed something immediate.  Enter <strong>MonkeyCI</strong>.   </p>
<p>The heart of CI is all about building the code, running the tests, and publishing the results frequently.   Everything else, the reports, the red/green lava lamps, the pretty JavaDocs etc are all gravy.  To meet the needs of your developers, you need to know if the &#8220;bar is green&#8221;.  So MonkeyCI does that in a decidedly low tech way:<br />
<img src="http://farm4.static.flickr.com/3361/3548951274_850919ef39.jpg?v=0" alt="MonkeyCI" /><br />
<br clear="all"/></p>
<p>Everytime someone runs the full suite of unit tests they record the day and time, and put their initials.  If the build is failing then they immediately fixed it.  We&#8217;ve played with writing the results in red for failing builds and green for successful builds as well.  Then, each day at the standup someone highlights how the CI is doing, and verifies that multiple folks are initialing, which means that the tests are running on multiple systems successfully.  </p>
<p>While this does mean you have an additional manual process, it&#8217;s also really easy to do, requiring just a whiteboard!  And for small project teams, the overhead of maintaining a reliable CI system is too much.</p>
<p>We&#8217;re doing another two developer project right now, and at least so far <strong>MonkeyCI</strong> has been great.  We haven&#8217;t seen integration issues yet such as database scripts that don&#8217;t run, or busted code being checked in.  I&#8217;ll post a picture of our whiteboard once we have a bunch of checkoffs recorded!  </p>
<p>We call this simple low tech process <strong>MonkeyCI</strong> because typically we refer to anything manual, such as testing by pounding keyboards as Monkey testing.   Also, somewhat of a reference to the great developers at the Primate Programming Institute who I am sure would use this approach to CI!:</p>
<p>
<a href="http://www.newtechusa.com/ppi/main.asp"><img src="http://www.newtechusa.com/ppi/link-buttons/ppi-banner.gif" width="468" height="60" alt="Primate Programming Inc: The Evolution of Java and .NET Training" border="0" /></a>
</p>
<p><br clear="all"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/05/20/monkeyci-super-light-weight-continuous-integration-for-small-teams/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Richmond SPIN on Continuous Integration</title>
		<link>http://www.opensourceconnections.com/2009/05/06/richmond-spin-on-continuous-integration/</link>
		<comments>http://www.opensourceconnections.com/2009/05/06/richmond-spin-on-continuous-integration/#comments</comments>
		<pubDate>Wed, 06 May 2009 20:18:56 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[richmondspin]]></category>
		<category><![CDATA[SPIN]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=427</guid>
		<description><![CDATA[<p>I have the honor of speaking to the <a href="http://www.richmondspin.org/">Richmond SPIN</a> group on Continous Integration next week Wednesday, May 13.  SPIN is the Software and Systems Process Improvement Network, and are the local groups sponsored by <a href="http://www.sei.cmu.edu/collaborating/spins/">Carnegie Mellon University&#8217;s Software Engineering Institute</a>.<br />
<img src="http://www.opensourceconnections.com/wp-content/uploads/2009/05/spin.jpg" alt="" title="Richmond SPIN" width="288" height="167" class="alignright size-full wp-image-428" /><br />
My presentation is going to be a bit different from some of the previous topics that have talked about process improvement, whereas I am talking about a specific improvement that enhances your process.  A CI system can provide the base framework for layering on much more then just the basic automatic code/compile/test cycle, and we&#8217;ll talk about what else it can be.</p>
<p><a href="http://www.opensourceconnections.com/2009/05/06/richmond-spin-on-continuous-integration/" class="more-link">Read more on Richmond SPIN on Continuous Integration&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I have the honor of speaking to the <a href="http://www.richmondspin.org/">Richmond SPIN</a> group on Continous Integration next week Wednesday, May 13.  SPIN is the Software and Systems Process Improvement Network, and are the local groups sponsored by <a href="http://www.sei.cmu.edu/collaborating/spins/">Carnegie Mellon University&#8217;s Software Engineering Institute</a>.<br />
<img src="http://www.opensourceconnections.com/wp-content/uploads/2009/05/spin.jpg" alt="" title="Richmond SPIN" width="288" height="167" class="alignright size-full wp-image-428" /><br />
My presentation is going to be a bit different from some of the previous topics that have talked about process improvement, whereas I am talking about a specific improvement that enhances your process.  A CI system can provide the base framework for layering on much more then just the basic automatic code/compile/test cycle, and we&#8217;ll talk about what else it can be.</p>
<p>More information and registration is available at <a href="http://www.richmondspin.org/home22332">http://www.richmondspin.org/home22332</a>.</p>
<p>I&#8217;m looking forward to a good crowd, lots of questions, and drinks afterwords!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/05/06/richmond-spin-on-continuous-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A picture tells an Agile story</title>
		<link>http://www.opensourceconnections.com/2009/03/02/a-picture-tells-an-agile-story/</link>
		<comments>http://www.opensourceconnections.com/2009/03/02/a-picture-tells-an-agile-story/#comments</comments>
		<pubDate>Mon, 02 Mar 2009 16:31:48 +0000</pubDate>
		<dc:creator>Arin Sime</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=407</guid>
		<description><![CDATA[<p>This picture may not tell a thousand stories, but I count at least eight Agile related stories, as well as a few others about OpenSource Connections.</p>
<p>Last week I posted a photo and asked people to comment with <a href="http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/">how many Agile practices they could count in the picture</a>.  There were a couple of very good replies &#8211; thanks!</p>
<p><a href="http://www.opensourceconnections.com/2009/03/02/a-picture-tells-an-agile-story/" class="more-link">Read more on A picture tells an Agile story&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>This picture may not tell a thousand stories, but I count at least eight Agile related stories, as well as a few others about OpenSource Connections.</p>
<p>Last week I posted a photo and asked people to comment with <a href="http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/">how many Agile practices they could count in the picture</a>.  There were a couple of very good replies &#8211; thanks!</p>
<p>As promised, and long awaited, here is the list I made when posting those photos:</p>
<p>8 Agile Practices<br />
<img src="http://farm4.static.flickr.com/3560/3323151006_2cedf10602.jpg?v=0" alt="Agile Practices on an OpenSource Connections project" /><br />
<br clear="left"/></p>
<ol>
<li>Burndown chart on wall &#8211; Kind of hard to see, but there is a print out of past burndown charts on the wall.  Good for seeing the burndown change over time.</li>
<li>Sprint goals on wall &#8211; Prominently displayed to remind us what we&#8217;re really trying to accomplish in the current sprint.</li>
<li>CI Server on Michaels&#8217; monitor</li>
<li>Product owner in meeting &#8211; We&#8217;ve got a great product owner on this project who is highly engaged in the project and participates in all stand up meetings.  I&#8217;ve been on projects where the product owner is not as engaged in the stand ups, and it really takes away a lot of the value.</li>
<li>Burndown/Task List on Google Docs on Arin&#8217;s monitor &#8211; In every stand up, I keep the current burndown displayed on my laptop for us to go over.</li>
<li>Remote team member in meeting on video chat (Stefan in Finland).  While video chat is not strictly agile, having all your team members involved is.  In this project, even though one of the client&#8217;s key developers is in Helsinki, he participates in the daily stand ups via video or audio chat, and we also use TeamViewer to pair program with him.</li>
<li>Team working on a single table, pairing up as needed</li>
<li>Scrum poker cards &#8211; Nobody guessed this one, but that&#8217;s my fault.  You really can&#8217;t see them in the picture because they&#8217;re white and next to a white roll of paper towels.  But there are scrum poker cards there that we used in task estimation.</li>
</ol>
<p>In addition to those Agile specific parts of the project, here&#8217;s a few other things to note about the photo that are not necessarily specific to Agile, but you will often see on an OSC project.<br />
<img src="http://farm4.static.flickr.com/3647/3322320901_fc208fc43a.jpg?v=0" alt="Other common practices on an OpenSource Connections project" /><br />
<br clear="left"/></p>
<ol>
<li>User stories on wall &#8211; as was pointed out by James in the comments of my previous post, these are actually color coded to represent stories that relate to different types of users for the website we are working on.</li>
<li>Large monitors &#8211; they just make life so much easier, and are great for pair programming and demos.</li>
<li>Entity modeling on wall and whiteboard &#8211; We went through some great exercises with the clients modeling the entities in their business.  We were originally going to be more dependent on a CMS in the project, but the modeling exercise made it clear some of their needs were too unique for the CMS, and so we scaled back (though didn&#8217;t eliminate) the use of the CMS in the system.</li>
<li>Mountain Dew in Michael&#8217;s drink &#8211; Michael&#8217;s trying to be sneaky by putting his Mountain Dew in a travel mug, but I know that he was actually drinking the Dew as a breakfast drink.  Very common to see on an OSC project.</li>
<li>OSC schwag on Arin &#8211; The world famous bright red OpenSource Connections logo shirt.  Guaranteed to be a collector&#8217;s item someday.</li>
<li>Windows and Mac living happily together.  Since I don&#8217;t have a big monitor like Michael and Youssef, I try to compensate by bringing two laptops.  Sure, I could just use Parallels on my Mac, but then I don&#8217;t get to have twice the computing power at my disposal.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/03/02/a-picture-tells-an-agile-story/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How many Agile practices can you count in this picture?</title>
		<link>http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/</link>
		<comments>http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 16:28:30 +0000</pubDate>
		<dc:creator>Arin Sime</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[burndown]]></category>
		<category><![CDATA[standup]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=406</guid>
		<description><![CDATA[<p>My sons often get activity books with games in them like &#8220;Can you find the 10 different things between these two photos&#8221; or &#8220;Find these 10 animals hidden in this picture.&#8221;  So rather than just post a picture of our uber-cool Agile development space with our new client Newswise, I figured instead I&#8217;ll post the photo without a description of what we&#8217;re doing and see if you can figure it out.</p>
<p><a href="http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/" class="more-link">Read more on How many Agile practices can you count in this picture?&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>My sons often get activity books with games in them like &#8220;Can you find the 10 different things between these two photos&#8221; or &#8220;Find these 10 animals hidden in this picture.&#8221;  So rather than just post a picture of our uber-cool Agile development space with our new client Newswise, I figured instead I&#8217;ll post the photo without a description of what we&#8217;re doing and see if you can figure it out.</p>
<p>I count 8 items in this photo that are specifically Agile.  How many can you find?  I&#8217;ll post my &#8220;solution&#8221; in a couple days, and I encourage you to post your own answers in the comments to this post.  In addition to 8 Agile-specific items in this picture, I also count 6 other more general common traits of an OpenSource Connections project.</p>
<p><img align="left" src="http://farm4.static.flickr.com/3320/3303287365_3819486600.jpg?v=0" width="500" height="333" alt="OpenSource Connections agile stand up meeting with a client"/><br />
<br clear="left"/><br />
For bonus points, can you think of anything missing from this photo?</p>
<p>What sort of prize does the winner get, you ask?  Hmmm, I don&#8217;t really have one.  How about free bowling lessons from our newly found OSC official &#8220;Bowling Kingpin&#8221; Jim Nist?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/02/23/how-many-agile-practices-can-you-count-in-this-picture/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Speaking on CI at beTech March 19th</title>
		<link>http://www.opensourceconnections.com/2009/02/09/speaking-on-ci-at-betech-march-19th/</link>
		<comments>http://www.opensourceconnections.com/2009/02/09/speaking-on-ci-at-betech-march-19th/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 19:54:46 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=388</guid>
		<description><![CDATA[<p>I&#8217;ll be speaking on CI for the beTech group March 19th:</p>
<p>4:00 PM &#8211; 5:00 PM March 19, 2009<br />
Location: Clemons Library room 407</p>
<p>Please come hear Eric Pugh of Open Source Connections<br />
(http://www.opensourceconnections.com/) discuss Continuous Integration (CI).<br />
The goal of CI is to have &#8220;a fully automated and reproducible build [of your<br />
project], including testing, that runs many times a day.&#8221; (I stole that from<br />
Eric&#8217;s online slides.)</p>
<p><a href="http://www.opensourceconnections.com/2009/02/09/speaking-on-ci-at-betech-march-19th/" class="more-link">Read more on Speaking on CI at beTech March 19th&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be speaking on CI for the beTech group March 19th:</p>
<p>4:00 PM &#8211; 5:00 PM March 19, 2009<br />
Location: Clemons Library room 407</p>
<p>Please come hear Eric Pugh of Open Source Connections<br />
(http://www.opensourceconnections.com/) discuss Continuous Integration (CI).<br />
The goal of CI is to have &#8220;a fully automated and reproducible build [of your<br />
project], including testing, that runs many times a day.&#8221; (I stole that from<br />
Eric&#8217;s online slides.)</p>
<p>Eric is an active participant in the open source world, and is a contributor<br />
to CruiseControl, a widely used open source CI solution. Eric has presented<br />
for beTech several times in the past, and his talks are always excellent and<br />
informative. He has also been quite active in organizing beCamp in the past,<br />
so we might also use this meeting for some brief preliminary planning about<br />
this year&#8217;s beCamp event.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/02/09/speaking-on-ci-at-betech-march-19th/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recap of CI presentation at CVREG</title>
		<link>http://www.opensourceconnections.com/2009/01/14/recap-of-ci-presentation-at-cvreg/</link>
		<comments>http://www.opensourceconnections.com/2009/01/14/recap-of-ci-presentation-at-cvreg/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 20:22:14 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[becamp]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[CVREG]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=382</guid>
		<description><![CDATA[<p>Last night I had the privilege of <a href="http://www.cvreg.org/2009/1/14/january-meeting-follow-up">talking about Continous Integration (CI) to the fine folks of CVREG</a>, and had a wonderful time.  CVREG had good turnout, and it was a great discussion of CI, and how CI can be part of a virtuous circle of becoming better software developers.  </p>
<p><a href="http://www.opensourceconnections.com/2009/01/14/recap-of-ci-presentation-at-cvreg/" class="more-link">Read more on Recap of CI presentation at CVREG&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Last night I had the privilege of <a href="http://www.cvreg.org/2009/1/14/january-meeting-follow-up">talking about Continous Integration (CI) to the fine folks of CVREG</a>, and had a wonderful time.  CVREG had good turnout, and it was a great discussion of CI, and how CI can be part of a virtuous circle of becoming better software developers.  </p>
<p>I mentioned that I would publish my slides, and if anyone has questions, please let me know at epugh@opensourceconnections.com.  </p>
<p>The slides are online at <a href="http://www.slideshare.net/o19s/ci-presentacion-presentation/">http://www.slideshare.net/o19s/ci-presentacion-presentation/</a>.</p>
<p>Also, a couple people pinged me about <a href="http://barcamp.org/beCamp">beCamp</a>, and I&#8217;ll be getting started on it!  Any volunteers to setup the 2009 wiki page?  <img src='http://www.opensourceconnections.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2009/01/14/recap-of-ci-presentation-at-cvreg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integration at CVREG</title>
		<link>http://www.opensourceconnections.com/2008/12/02/continuous-integration-at-cvreg/</link>
		<comments>http://www.opensourceconnections.com/2008/12/02/continuous-integration-at-cvreg/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 16:34:02 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[CVREG]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=373</guid>
		<description><![CDATA[<p>Missed my presentation on CI in Spain?  Fortunately I&#8217;ll be in our backyard, Richmond, next month to talk about CI with a Ruby flavor to <a href="http://cvreg.org/">CVREG</a>: Central Virginia Ruby Enthusiasts Group.  </p>
<p><a href="http://www.opensourceconnections.com/2008/12/02/continuous-integration-at-cvreg/" class="more-link">Read more on Continuous Integration at CVREG&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Missed my presentation on CI in Spain?  Fortunately I&#8217;ll be in our backyard, Richmond, next month to talk about CI with a Ruby flavor to <a href="http://cvreg.org/">CVREG</a>: Central Virginia Ruby Enthusiasts Group.  </p>
<p>Come to the CVREG presentation at Strategy Cafe on January 13th.  More information, and a map, is available on <a href="http://cvreg.org/2008/12/2/2009-s-schedule">CVREG&#8217;s upcoming events</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/12/02/continuous-integration-at-cvreg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExpoQA Integracion Continua Wrap Up</title>
		<link>http://www.opensourceconnections.com/2008/12/01/expoqa-integracion-continua-wrap-up/</link>
		<comments>http://www.opensourceconnections.com/2008/12/01/expoqa-integracion-continua-wrap-up/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 17:02:37 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[expoQA]]></category>
		<category><![CDATA[expoQA2008]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=372</guid>
		<description><![CDATA[<p><img src="http://www.opensourceconnections.com/wp-content/uploads/2008/11/logo_expoqa.gif" alt="" title="logo_expoqa" width="221" height="67" class="alignnone size-full wp-image-364" /><br />
<br clear="all"/><br />
Last Friday I had the huge honor of <a href="http://www.expoqa.com/eric_pugh.html">presenting at ExpoQA 2008</a> in Madrid on the topic of Continuous Integration, or maybe I should say Integracion Continua since I gave it in Spanish!</p>
<p><a href="http://www.opensourceconnections.com/2008/12/01/expoqa-integracion-continua-wrap-up/" class="more-link">Read more on ExpoQA Integracion Continua Wrap Up&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.opensourceconnections.com/wp-content/uploads/2008/11/logo_expoqa.gif" alt="" title="logo_expoqa" width="221" height="67" class="alignnone size-full wp-image-364" /><br />
<br clear="all"/><br />
Last Friday I had the huge honor of <a href="http://www.expoqa.com/eric_pugh.html">presenting at ExpoQA 2008</a> in Madrid on the topic of Continuous Integration, or maybe I should say Integracion Continua since I gave it in Spanish!</p>
<p>I&#8217;ve posted the slides along with the transcription of the talk in Spanish on <a href="http://www.slideshare.net/o19s/integracion-continua-presentation">SlideShare</a>:</p>
<div style="width:477px;text-align:left" id="__ss_806245"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/o19s/integracion-continua-presentation?type=document" title="Integracion Continua">Integracion Continua</a><object style="margin:0px" width="477" height="510"><param name="movie" value="http://static.slideshare.net/swf/ssplayerd.swf?doc=cipresentacion-1228149208385044-8&#038;stripped_title=integracion-continua-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayerd.swf?doc=cipresentacion-1228149208385044-8&#038;stripped_title=integracion-continua-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/o19s/integracion-continua-presentation?type=document" title="View Integracion Continua on SlideShare">document</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=document">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/expoqa2008">expoqa2008</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/espanol">espanol</a>)</div>
</div>
<p><img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyMjgxNTEwODU3NzMmcHQ9MTIyODE1MTEwODM4NyZwPTEwMTkxJmQ9Jmc9MiZ*PSZvPTUyNjZjMzQ1OTg3YzQ5NDBhYTgyYWUyNWE1Y2JiNDY4.gif" /></p>
<p><br clear="all"/></p>
<p>A huge round of thanks needs to go out to Raynald Korchia and the rest of the <a href="http://www.es.sogeti.com">Sogeti</a> crew for putting together this conference.  It was wonderful to see such a large and diverse testing community in Spain, with what I guessed as around 250 people attending the conference, and a great set of vendors as well.  </p>
<p>I really enjoyed spending time with the attendees and speakers, I learned a lot from your individual experiences in the fields of testing.  I&#8217;m looking forward to getting more plugged into the world of software testing in Europe, and especially some of the upcoming conferences in Spain that people mentioned.   </p>
<p>And lastly, a huge amount of thanks needs to go to my wife Kate, with whom I spent hours and hours over bottles of Riojan wine transcribing my badly formed thoughts in Spanish into proper Castellano, and generally making sure my presentation was a success!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/12/01/expoqa-integracion-continua-wrap-up/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>In Madrid over Thanksgiving?</title>
		<link>http://www.opensourceconnections.com/2008/11/24/in-madrid-over-thanksgiving/</link>
		<comments>http://www.opensourceconnections.com/2008/11/24/in-madrid-over-thanksgiving/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 23:03:54 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Conference]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=361</guid>
		<description><![CDATA[<p>Come see me speak at Expo:QA &#8220;<a href="http://www.expoqa.com/">Jornadas Profesionales de Calidad y Testing de Software</a>&#8221; being held in Madrid, Spain.  I&#8217;ll be talking about Continous Integration, or <a href="http://www.expoqa.com/eric_pugh.html">Integracion Continua</a> on Friday, November 28.  Hopefully see you there.</p>
<p><a href="http://www.opensourceconnections.com/2008/11/24/in-madrid-over-thanksgiving/" class="more-link">Read more on In Madrid over Thanksgiving?&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Come see me speak at Expo:QA &#8220;<a href="http://www.expoqa.com/">Jornadas Profesionales de Calidad y Testing de Software</a>&#8221; being held in Madrid, Spain.  I&#8217;ll be talking about Continous Integration, or <a href="http://www.expoqa.com/eric_pugh.html">Integracion Continua</a> on Friday, November 28.  Hopefully see you there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/11/24/in-madrid-over-thanksgiving/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing CC.rb from the world</title>
		<link>http://www.opensourceconnections.com/2008/08/28/securing-cc.rb-from-the-world/</link>
		<comments>http://www.opensourceconnections.com/2008/08/28/securing-cc.rb-from-the-world/#comments</comments>
		<pubDate>Thu, 28 Aug 2008 16:03:08 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[cc.rb]]></category>
		<category><![CDATA[cruisecontrol]]></category>
		<category><![CDATA[htpasswd]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=330</guid>
		<description><![CDATA[<p>I love <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a>, but one of the things I&#8217;ve found is that it exposes via the web interface a lot of what is potentially confidential data.  From the <code>cruise_config.rb</code> containing accounts on our SVN server, to being able to browse source files, which would include <code>database.yml</code>, again, exposing usernames and passwords.<br />
<span id="more-330"></span><br />
<img src="http://www.opensourceconnections.com/wp-content/uploads/2008/08/cruisecontrol-tm.jpg" alt="" title="CruiseControl" width="319" height="100" class="aligncenter size-full wp-image-331" /><br />
<br clear="left"/><br />
And, since CC.rb runs on port 3333 by default, I expect some enterprising hacker has been scraping the internet looking for all the IP addresses that have a server running on port 3333!</p>
<p><a href="http://www.opensourceconnections.com/2008/08/28/securing-cc.rb-from-the-world/" class="more-link">Read more on Securing CC.rb from the world&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I love <a href="http://cruisecontrolrb.thoughtworks.com/">CruiseControl.rb</a>, but one of the things I&#8217;ve found is that it exposes via the web interface a lot of what is potentially confidential data.  From the <code>cruise_config.rb</code> containing accounts on our SVN server, to being able to browse source files, which would include <code>database.yml</code>, again, exposing usernames and passwords.<br />
<span id="more-330"></span><br />
<img src="http://www.opensourceconnections.com/wp-content/uploads/2008/08/cruisecontrol-tm.jpg" alt="" title="CruiseControl" width="319" height="100" class="aligncenter size-full wp-image-331" /><br />
<br clear="left"/><br />
And, since CC.rb runs on port 3333 by default, I expect some enterprising hacker has been scraping the internet looking for all the IP addresses that have a server running on port 3333!</p>
<p>A lot of folks have been using Apache and mod_proxy and mod_auth to try and wrap CruiseControl.rb, but you still need to add firewall rules so people don&#8217;t just go directly to the server on port 3333.  There has been quite a bit of traffic on the CC.rb mailing list lately about this.</p>
<p>However, I found that <a href="http://wota.jp/svn/rails/plugins/branches/stable/htpasswd/">HTPasswd</a> was a much simpler solution.  HTPasswd is one of those little know gem&#8217;s of a plugin.  It makes it dirt simple to add both Basic and Digest authentication to Rails apps. </p>
<p>I just SSH&#8217;ed into the server running CC.rb, browsed to the CC webapp directory and ran </p>
<p><code>./script/plugin install http://wota.jp/svn/rails/plugins/branches/stable/htpasswd/</code>.</p>
<p>I added the line <code>htpasswd :user=>"MYUSER", :pass=>"MYPASS"</code> to application.rb, restarted CC.rb, and now have a secure CruiseControl.rb instance!</p>
<p>Much simpler then hacking around with Apache configuration files.  Please go to the <a href="http://agilewebdevelopment.com/plugins/htpasswd">HTPasswd page on AgileWebDevelopment</a> and vote for this great plugin!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/08/28/securing-cc.rb-from-the-world/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Agile-Friendly Test Automation Tools/Frameworks</title>
		<link>http://www.opensourceconnections.com/2008/05/01/agile-friendly-test-automation-toolsframeworks/</link>
		<comments>http://www.opensourceconnections.com/2008/05/01/agile-friendly-test-automation-toolsframeworks/#comments</comments>
		<pubDate>Thu, 01 May 2008 21:10:18 +0000</pubDate>
		<dc:creator>Eric Pugh</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[testing agile rspec]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=263</guid>
		<description><![CDATA[<p>I don&#8217;t normally post about another blog article, but <a href="http://testobsessed.com/2008/04/29/agile-friendly-test-automation-toolsframeworks/">Agile-Friendly Test Automation Tools/Frameworks</a> by Elisabeth Hendrickson is spot on about the challenges of Test Automation in an Agile world and well worth reading.</p>
<p><a href="http://www.opensourceconnections.com/2008/05/01/agile-friendly-test-automation-toolsframeworks/" class="more-link">Read more on Agile-Friendly Test Automation Tools/Frameworks&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t normally post about another blog article, but <a href="http://testobsessed.com/2008/04/29/agile-friendly-test-automation-toolsframeworks/">Agile-Friendly Test Automation Tools/Frameworks</a> by Elisabeth Hendrickson is spot on about the challenges of Test Automation in an Agile world and well worth reading.</p>
<p><img src="http://www.opensourceconnections.com/wp-content/uploads/2008/05/armband-224x300.jpg" alt="Test Obsessed arm band" title="armband" width="224" height="300" class="alignright size-medium wp-image-264" /></p>
<p>A couple year&#8217;s ago I worked on a LIMS system, and we had extensive regression tests written using Selenium.  We used the Selenium HTML script, which was great, but maintaining them was a real challenge as over time we renamed buttons, reorganized menus, and were constantly fixing broken regression tests.   One thing that I would disagree with Elisabeth on is that the maintenance burden for regression tests goes down if you are running them constantly.  If you run them constantly, and the developers are responsible for them passing they same as unit tests, then that keeps them up to date, and adding more value then they might otherwise.  But I agree, they are a burden, and sometimes really only worth it for certain high risk/high error portions of your application.  Unfortunately putting something like Mercury Interactive based tests under CI is hard, and Selenium isn&#8217;t that much easier&#8230;  </p>
<p>A lot of my interest about writing &#8220;<a href="http://rspec.info/documentation/stories.html">Stories</a>&#8221; using the <a href="http://rspec.info/">RSpec</a> framework comes directly from trying to make the tests easier for people to read, and separate out the logic of clicking on a button from the desire to perform an action that would require clicking on that button!</p>
<p>I met Elisabeth at CITcon 2007, and I still wear the Test Obsessed wrist band she gave me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/05/01/agile-friendly-test-automation-toolsframeworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Continuous Integration and Testing Conference (CITCON) in Denver Colorado</title>
		<link>http://www.opensourceconnections.com/2008/04/14/continuous-integration-and-testing-conference-citcon-in-denver-colorado/</link>
		<comments>http://www.opensourceconnections.com/2008/04/14/continuous-integration-and-testing-conference-citcon-in-denver-colorado/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 17:20:39 +0000</pubDate>
		<dc:creator>RJ Bruneel</dc:creator>
				<category><![CDATA[CITCON]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Source Control]]></category>

		<guid isPermaLink="false">http://www.opensourceconnections.com/?p=252</guid>
		<description><![CDATA[<p><span id="kar1"><span style="font-size: x-small;">I attended the </span></span><a id="g6jh" title="Continuous Integration and Testing Conference" href="http://www.citconf.com/denver2008/index.php" target="_blank">Continuous Integration and Testing Conference</a> <span id="kar1"><span style="font-size: x-small;">(CITCON) in Denver Colorado last weekend and I have to say that I was impressed by the effectiveness of the the </span><a id="z4h-" title="OpenSpace conference" href="http://www.citconf.com/denver2008/openspace.php" target="_blank">OpenSpace conference</a><span style="font-size: x-small;"> format.  The following are highlights from the sessions I attended:<br id="rvrf" /></span></span></p>
<p><a href="http://www.opensourceconnections.com/2008/04/14/continuous-integration-and-testing-conference-citcon-in-denver-colorado/" class="more-link">Read more on Continuous Integration and Testing Conference (CITCON) in Denver Colorado&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p><span id="kar1"><span style="font-size: x-small;">I attended the </span></span><a id="g6jh" title="Continuous Integration and Testing Conference" href="http://www.citconf.com/denver2008/index.php" target="_blank">Continuous Integration and Testing Conference</a> <span id="kar1"><span style="font-size: x-small;">(CITCON) in Denver Colorado last weekend and I have to say that I was impressed by the effectiveness of the the </span><a id="z4h-" title="OpenSpace conference" href="http://www.citconf.com/denver2008/openspace.php" target="_blank">OpenSpace conference</a><span style="font-size: x-small;"> format.  The following are highlights from the sessions I attended:<br id="rvrf" /></span></span></p>
<p id="rl6d" class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><strong id="aort"><span id="dl3i"><span style="font-size: x-small;">What is Continuous Integration?  What should be including in Continuous Integration 2.0?</span></span></strong></p>
<p>This session was focused on an introduction of <a id="zy5o" title="continuous integration" href="http://en.wikipedia.org/wiki/Continuous_integration" target="_blank">continuous integration</a> and a discussion on what should be included in the next version. The following contains a few bullet points of what was discussed at the session:</p>
<ul id="fswt">
<li id="khgv"><span id="i3bz"><span style="font-size: x-small;">Modularize the code to create smaller faster tests and quicker builds </span></span></li>
<li id="o07d"><span id="c85."><span style="font-size: x-small;">Source control packages should provide an option to enable automatic updates on commit</span></span></li>
<li id="y35d"><span id="f:vn"><span style="font-size: x-small;">Source control packages should verify build is green before allowing a commit to the code <br id="qf-0" /></span></span></li>
<li id="gqng"><span id="c85."><span style="font-size: x-small;">Commit frequently to </span></span><span id="nvps"><span style="font-size: x-small;">shorten the feedback cycle to discover errors or problems quickly</span></span></li>
<li id="ojhu"><span id="j78d"><span style="font-size: x-small;">A good roll back process can eliminate downtime when a build is broken</span></span></li>
</ul>
<p id="fsfp" class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><strong id="ougs"><span id="amow"><span style="font-size: x-small;">How to make builds faster?</span></span></strong></p>
<p id="mpuy" class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">A person responsible for the builds at a company has run into the problem with large build times on their project.  They were looking for ways in which they could reduce the time for the build.  The ideas that were suggested for reducing the time of the build were as follows:<span id="na1j"><span style="font-size: x-small;"> </span></span></p>
<ul id="m-pt">
<li id="f7-n"><span id="h-fd"><span style="font-size: x-small;">A common practice is to restart the application server after a successful build to setup for the next build. </span></span></li>
<li id="otr1"><span id="z-lx"><span style="font-size: x-small;">Modularize the build so that only the modified code may be built and not the whole project.</span><span id="nx_d"> </span><a id="r9sp" title="Maven" href="http://maven.apache.org/" target="_blank">Maven</a><span style="font-size: x-small;"> has a built in method for modularizing the code.<br id="zmur" /></span></span></li>
<li id="v_:o"><span id="nb7j"><span style="font-size: x-small;">Add or upgrade the build server hardware.</span><span id="skwp"> </span><span style="font-size: x-small;">The build server should have as good of hardware as the developers hardware. </span></span></li>
<li id="eh9c"><span id="g0uz"><span style="font-size: x-small;">Implement a distributed computing model to offload the build onto multiple machines<br id="pxro" /></span></span></li>
<li id="pvjd"><span id="e0ak"><span style="font-size: x-small;">Analyze the build to determine which part of it is inefficient and determine if the increase in build time is justified, specifically related to tests<br id="yuc4" /></span></span></li>
<li id="g-.t"><span id="ab.2"><span style="font-size: x-small;">Tests are a common culprit in extending build times</span></span></li>
<li id="bkc3"><span id="ab.2"><span style="font-size: x-small;">Break tests up into unit, function, integration and system tests.  Consider only running each type of tests when it is appropriate </span></span></li>
<li id="xsug"><span id="zswg"><span style="font-size: x-small;">Assign a member of the team to monitor the build time using metrics to determine if the build has exceeded the set metrics and analyze the change made to determine if the build time increase is acceptable.</span></span></li>
</ul>
<p id="nduy" class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"><strong id="qjpp"><span id="s36j"><span style="font-size: x-small;">Test data setup techniques</span></span></strong></p>
<p id="xsa5" class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;">A participant of the conference was interested in discovering the different ways people setup data when they run their tests.  The following items were discussed at the session:<strong id="utpm"><span id="wre4"><span style="font-size: x-small;"> </span></span></strong></p>
<ul id="ct_a">
<li id="cfun"><span id="izwa"><span style="font-size: x-small;">Add code to the tests that will add data and later remove the data when the tests have completed.</span><span id="w.gp"> </span><span style="font-size: x-small;">This solution can slow down the build and does not allow the tests to be run independently. </span></span></li>
<li id="qnnz"><span id="y3qu"><span style="font-size: x-small;">Write a script to duplicate the production database with minimal or no data and run update scripts on the newly created database. This gives you a clean database to start testing the application.<br id="qyqj" /></span></span></li>
<li id="c_5x"><span id="rhbn"><span style="font-size: x-small;">Maintain scripts to create the database with minimal or no data and run update scripts on the newly created database.</span></span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.opensourceconnections.com/2008/04/14/continuous-integration-and-testing-conference-citcon-in-denver-colorado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
