<?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>andy goundry &#187; programming</title>
	<atom:link href="http://www.andygoundry.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andygoundry.com</link>
	<description>many things web</description>
	<lastBuildDate>Thu, 26 Nov 2009 14:51:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to use thor with the latest version of merb</title>
		<link>http://www.andygoundry.com/2009/11/26/using-thor-with-a-merb-app-and-merb-version/</link>
		<comments>http://www.andygoundry.com/2009/11/26/using-thor-with-a-merb-app-and-merb-version/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 14:45:46 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Merb]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[thor]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=463</guid>
		<description><![CDATA[The latest version of thor (0.12.0) doesn&#8217;t work with the latest version of merb (1.0.15).
To use thor with your merb 1.0.15 app, you need to install thor -v0.9.9 and then follow the instructions on this page: http://wiki.merbivore.com/deployment/bundling
]]></description>
			<content:encoded><![CDATA[<p>The latest version of thor (0.12.0) doesn&#8217;t work with the latest version of merb (1.0.15).</p>
<p>To use thor with your merb 1.0.15 app, you need to install thor -v0.9.9 and then follow the instructions on this page: <a href="http://wiki.merbivore.com/deployment/bundling">http://wiki.merbivore.com/deployment/bundling</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/11/26/using-thor-with-a-merb-app-and-merb-version/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merb Gem Cleanup</title>
		<link>http://www.andygoundry.com/2009/11/25/merb-gem-cleanup/</link>
		<comments>http://www.andygoundry.com/2009/11/25/merb-gem-cleanup/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 18:33:31 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[DataMapper]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=461</guid>
		<description><![CDATA[It seems to be a common issue for us Merbists, who depend on multiple Gems for merb to play nicely to get into a bit of a mess as gems are updated.
So, at times a cleanup is in order. Here is what i&#8217;ve done to cleanup my merb setup:

$ sudo gem update --system
$ gem search [...]]]></description>
			<content:encoded><![CDATA[<p>It seems to be a common issue for us Merbists, who depend on multiple Gems for merb to play nicely to get into a bit of a mess as gems are updated.</p>
<p>So, at times a cleanup is in order. Here is what i&#8217;ve done to cleanup my merb setup:</p>
<blockquote>
<pre style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; font-size: 12px; color: #000000; overflow-x: auto; overflow-y: auto; background-color: #f3f3f3; padding: 1em;">$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> update --system
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> search --no-version merb | grep merb | xargs <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> un<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">install</span> -a # NOTE: removes all old version of merb
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> search --no-version dm | grep dm | xargs <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> un<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">install</span> -a # NOTE: removes all old version of data_mapper
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> search --no-version data_objects | grep data_objects | xargs <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> un<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">install</span> -a # NOTE: removes all old version of data_objects
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> sources -c
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> rm PATH_TO_<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">GEM</span>S/cache/merb* # PATH_TO_<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">GEM</span>S is the path to your ruby<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span>s <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">install</span>.  Mine is /usr/lib/ruby/<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span>s/1.8
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> rm PATH_TO_<span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">GEM</span>S/cache/dm*
$ <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">sudo</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">gem</span> <span style="color: #000000; background-color: #ffff99; padding: 0px; margin: 0px;">install</span> -r merb</pre>
</blockquote>
<p>This was taken from the meb installation instructions at: <a href="http://wiki.merbivore.com/howto/installation/gems">http://wiki.merbivore.com/howto/installation/gems</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/11/25/merb-gem-cleanup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Call TextMate from command line</title>
		<link>http://www.andygoundry.com/2009/09/07/call-textmate-from-command-line/</link>
		<comments>http://www.andygoundry.com/2009/09/07/call-textmate-from-command-line/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 12:15:04 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=445</guid>
		<description><![CDATA[A really neat feature of TextMate is the ability to call it from the command line and pass a directory or file as the object to open. Works great.
For this to work, you need to run a quick one-liner on the command line:
sudo ln -s /Applications/TextMate.app/Contents/Resources/mate /usr/local/bin/mate
Once done, you can call mate and pass it [...]]]></description>
			<content:encoded><![CDATA[<p>A really neat feature of TextMate is the ability to call it from the command line and pass a directory or file as the object to open. Works great.</p>
<p>For this to work, you need to run a quick one-liner on the command line:</p>
<blockquote><p>sudo ln -s /Applications/TextMate.app/Contents/Resources/mate /usr/local/bin/mate</p></blockquote>
<p>Once done, you can call mate and pass it any object you want to open, such as:</p>
<blockquote><p>$ mate my_rails_app</p></blockquote>
<p>and it opens the entire directory as if it were a TextMate project.</p>
<p>Lots more detail available here: <a href="http://manual.macromates.com/en/using_textmate_from_terminal.html">http://manual.macromates.com/en/using_textmate_from_terminal.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/09/07/call-textmate-from-command-line/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Cucumber, Webrat and Selenium to test ajax form field validations</title>
		<link>http://www.andygoundry.com/2009/09/04/using-cucumber-webrat-and-selenium-to-test-ajax-form-field-validations/</link>
		<comments>http://www.andygoundry.com/2009/09/04/using-cucumber-webrat-and-selenium-to-test-ajax-form-field-validations/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 18:11:09 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Webrat]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=439</guid>
		<description><![CDATA[I have an app that fires an ajax request on a form field to validate its contents when I take focus off the field.
I am also using Cucumber, Webrat and Selenium for my integration tests.
I needed my integration tests to test the Ajax responses and the tests weren&#8217;t receiving a response from the Ajax requests.
The [...]]]></description>
			<content:encoded><![CDATA[<p>I have an app that fires an ajax request on a form field to validate its contents when I take focus off the field.</p>
<p>I am also using Cucumber, Webrat and Selenium for my integration tests.</p>
<p>I needed my integration tests to test the Ajax responses and the tests weren&#8217;t receiving a response from the Ajax requests.</p>
<p><strong>The Problem</strong></p>
<p>I found that by simply completing the web form, the ajax request was not being fired and my test was therefore failing when i checked for the existance of the Ajax response. It soon became clear that selenium doesn&#8217;t really interact with the form in the sense of selecting fields and entering values; It simply enters values. As such, the Ajax request was not firing and my test was failing.</p>
<p><strong>The Solution</strong></p>
<p>The solution is Selenium&#8217;s fireEvent method, which you can pass a form field id and the blur method:</p>
<blockquote><p>selenium_session.fireEvent(&#8221;field&#8221;, &#8220;blur&#8221;);</p></blockquote>
<p>In Webrat, this is ever simpler:</p>
<blockquote><p>fire_event(&#8221;field&#8221;,&#8221;blur&#8221;)</p></blockquote>
<p>On using this in a Cucumber step, the ajax is fired as the blur command tells the browser to take focus off the field.</p>
<p>Lovely!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/09/04/using-cucumber-webrat-and-selenium-to-test-ajax-form-field-validations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up Merb, Cucumber and Webrat (and friends) on Snow Leopard</title>
		<link>http://www.andygoundry.com/2009/09/04/setting-up-merb-cucumber-and-webrat-on-snow-leopard-some-good-some-bad/</link>
		<comments>http://www.andygoundry.com/2009/09/04/setting-up-merb-cucumber-and-webrat-on-snow-leopard-some-good-some-bad/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 14:36:06 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Merb]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Webrat]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=428</guid>
		<description><![CDATA[
My upgrade to Snow Leopard killed my Merb, Cucumber and Webrat setup so i had to start afresh. That was the bad. The good is that some manual hacks that were required in Leopard are no longer necessary, meaning I can rely on direct gem installations.
Here&#8217;s what i did:

Install Ruby and Gems
Follow instructions on http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/
Install [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>My upgrade to Snow Leopard killed my Merb, Cucumber and Webrat setup so i had to start afresh. That was the bad. The good is that some manual hacks that were required in Leopard are no longer necessary, meaning I can rely on direct gem installations.</p>
<p>Here&#8217;s what i did:</p>
<ol>
<li><strong>Install Ruby and Gems<br />
<span style="font-weight: normal; ">Follow instructions on <a href="http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/">http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard/</a></span></strong></li>
<li><strong>Install merb, rspec, cucumber, merb_cucumber and mongrel and dependencies<br />
<span style="font-weight: normal; ">sudo gem install merb rspec cucumber roman-merb_cucumber mongrel term-ansicolor treetop diff-lcs nokogiri do_sqlite3</span></strong></li>
<li><strong>Install webrat<br />
<span style="font-weight: normal;">sudo gem install hoe hpricot webrat</span></strong></li>
<li><strong><span style="font-weight: normal;"><strong>Fix Firefox bug with Snow Leopard<br />
<span style="font-weight: normal;">For some reason the libsqlite3.dylib  library in FireFox 3.5.2 is out of date and breaks cucumber under Snow Leopard. Thankfully, it&#8217;s a simple fix:<br />
mv /Applications/Firefox.app/Contents/MacOS/libsqlite3.dylib /Applications/Firefox.app/Contents/MacOS/libsqlite3.dylib.orig<br />
cp /usr/lib/libsqlite3.dylib /Applications/Firefox.app/Contents/MacOS/libsqlite3.dylib</span></strong></span></strong></li>
<li><strong><span style="font-weight: normal;"><strong><span style="font-weight: normal;"><strong>Install Selenium<br />
<span style="font-weight: normal;">sudo gem install Selenium<br />
sudo gem install selenium-client</span></strong></span></strong></span></strong></li>
<li><strong>Install the textmate cucumber bundle<br />
<span style="font-weight: normal;"><a href="http://github.com/bmabey/cucumber-tmbundle/tree/master">http://github.com/bmabey/cucumber-tmbundle/tree/master</a></span></strong></li>
</ol>
<p><strong>Deprecated Instructions on Snow Leopard that were required on Leopard</strong></p>
<p>The following ugly hacks were required on Leopard with it&#8217;s default Ruby installation. These are no longer required (at least on my machine) on Snow Leopard:</p>
<p><span style="text-decoration: underline;">Manual hack of Selenium</span></p>
<p>http://wiki.github.com/aslakhellesoy/cucumber/setting-up-selenium</p>
<p>As the instructions recommended replacing the Selemium RC jar file () in the installed gem with one from the Selenium website, i had to find out where the gem had installed. Thankfully, gem -h pointed me toward gem help commands and from there i ran gem environment &#8211; This told me where gems are installed locally and i found that Selemium RC had been installed into /Library/Ruby/Gems/1.8/gems/Selenium-1.1.14/ I replaced as advised and then ran selenium from within the app root and all worked fine, using the replacement. I then downloaded and ran the test selenium code from http://github.com/aslakhellesoy/cucumber/tree/master/examples/selenium running selenium in a different console and then running cucumber examples/selenium/features/ . It worked a treat and booted up selenium as required. Great!</p>
<p><span style="text-decoration: underline;">Manual hack installation of webrat</span></p>
<p>Download http://github.com/gwynm/webrat/tree/master tar file. Git clone doesn&#8217;t work</p>
<p>sudo gem install hoe hpricot<br />
cd downloaded and untarred file<br />
rake gem<br />
sudo gem install pkg/webrat-0.2.1.gem</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/09/04/setting-up-merb-cucumber-and-webrat-on-snow-leopard-some-good-some-bad/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Awesome tools for rapid UX prototypes &#8211; Letting you focus on the solution!</title>
		<link>http://www.andygoundry.com/2009/06/18/awesome-tools-for-rapid-ux-prototypes/</link>
		<comments>http://www.andygoundry.com/2009/06/18/awesome-tools-for-rapid-ux-prototypes/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 15:39:52 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[gtd]]></category>
		<category><![CDATA[portal]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=404</guid>
		<description><![CDATA[Comic Life is great for creating story flows in a rough and ready way, with a little style.
Balsamiq is an excellent tool for rapidly creating purposefully low-fi wireframe mockups
Napkee enables you to import Balsamiq mockups and turn them into HTML prototypes! Lovely!
Axure is excellent for rapidly creating interactive prototypes.
Liferay Portal is a pretty awesome portlet [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://plasq.com/comiclife/">Comic Life</a> is great for creating story flows in a rough and ready way, with a little style.</p>
<p><a href="http://www.balsamiq.com/demos/mockups/Mockups.html">Balsamiq</a> is an excellent tool for rapidly creating purposefully low-fi wireframe mockups</p>
<p><a href="http://www.napkee.com/">Napkee</a> enables you to import Balsamiq mockups and turn them into HTML prototypes! Lovely!</p>
<p><a href="http://www.axure.com/">Axure</a> is excellent for rapidly creating interactive prototypes.</p>
<p><a href="http://www.liferay.com/web/guest/products/portal">Liferay Portal</a> is a pretty awesome portlet container that, with a bit of UX (HTML, CSS and JSP) hacking, enables you to rapidly produce fully functional portals. It comes with a vast array of portlets out of the box, saving you a whole load of time.</p>
<p><a href="http://jqueryui.com">JQueryUI</a> is a lovely toolkit for quickly developing interactive prototypes. I&#8217;m not completely convinced by it as a production tool (heavy JS? but i could be wrong), but excellent for prototyping</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/06/18/awesome-tools-for-rapid-ux-prototypes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Important iPhone Push Notification consideration</title>
		<link>http://www.andygoundry.com/2009/04/16/important-iphone-push-notification-consideration/</link>
		<comments>http://www.andygoundry.com/2009/04/16/important-iphone-push-notification-consideration/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 09:45:32 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=381</guid>
		<description><![CDATA[A point worth noting by all iPhone developers considering the exciting opportunities of cloud-side iPhone app notifications &#8211; how much will it cost you to provide this service?
An important point to consider.
]]></description>
			<content:encoded><![CDATA[<p>A point worth noting by all iPhone developers considering the exciting opportunities of cloud-side iPhone app notifications &#8211; <a href="http://www.iphonematters.com/article/push_notification_will_cost_iphone_developers_992/#When:21:00:00Z">how much will it cost you to provide this service?</a></p>
<p>An important point to consider.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/04/16/important-iphone-push-notification-consideration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presenting BDD Story-driven delivery to project and account managers</title>
		<link>http://www.andygoundry.com/2009/04/15/presenting-bdd-story-driven-delivery-to-project-and-account-managers/</link>
		<comments>http://www.andygoundry.com/2009/04/15/presenting-bdd-story-driven-delivery-to-project-and-account-managers/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 18:16:45 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=351</guid>
		<description><![CDATA[Today, i had the true pleasure of presenting my view of how BDD stories offer real business value to project delivery, quality and to the lives of everyone on a software delivery project. 
Part 1: Collectively clarify what happens on projects now (on projects that do not use stories)
It was a highly interactive session and [...]]]></description>
			<content:encoded><![CDATA[<p>Today, i had the true pleasure of presenting my view of how BDD stories offer real business value to project delivery, quality and to the lives of everyone on a software delivery project. </p>
<p><strong>Part 1: Collectively clarify what happens on projects now (on projects that do not use stories)</strong></p>
<p>It was a highly interactive session and i first asked attendees to collectively draw on a whiteboard the project process as they saw it, with all of the project&#8217;s actors, products and interactions.</p>
<p>What was drawn resembled a kind of mashup of a <a href="http://www.agilemodeling.com/artifacts/activityDiagram.htm">UML activity diagram with swim lanes</a> &#038; a gantt chart. It showed what the individual actors in the process did and when, and who fed into who in the process.</p>
<p><strong>Part 2: Clarify what documents are written and the associated risks and costs</strong></p>
<p>When the whiteboard was complete, I asked the attendees to consider a number of things:</p>
<ol>
<li>At what points during the process are documents produced and by who?</li>
<li>Of those documents produced, which are directly focused on the business and user requirements?</li>
<li>Of the many producers of those documents, which of these producers had their focus on the business and user requirements?</li>
<li>Of the many documents produced, which were open to interpretation and translation?</li>
<li>What are the perceived risks of having so many documents and periods of documentation translation?</li>
</ol>
<p>When this work was complete, a few points became clear to the group:</p>
<ol>
<li>The project team, as defined on the whiteboard, was greatly separated into areas of expertise and each was concerned about their area of expertise</li>
<li>Interactions between actors were mostly through written documents</li>
<li>Few actors following this project process retained a direct focus on the business and end user requirements</li>
<li>A lot of documentation was being written and much of it was being duplicated, at times to protect actors within the process</li>
<li>Vast amounts of document interpretation and translation was going on to produce each document</li>
</ol>
<p><strong>Part 3: Consider stories</strong></p>
<p>After this part of the session was complete, i gave some examples of the wonderfully simple <a href="http://dannorth.net/introducing-bdd">story DSL</a> and then suggested that many of these documents could be replaced by stories and scenarios:</p>
<ol>
<li>I explained that stories can be used to clarify both high-level requirements and detailed solution definitions. I described how stories can be expanded through the use of scenarios.</li>
<li>I described how everyone on the project, including the client, can understand the wonderfully simple DSL and contribute to the bank of stories.</li>
<li>I then came in with the ace <img src='http://www.andygoundry.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Stories can be used to drive automated browser tests! Man, <strong>they fell off their seats at the point!</strong></li>
</ol>
<p>It was an awesome session. A lot was discussed and understood.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/04/15/presenting-bdd-story-driven-delivery-to-project-and-account-managers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hudson, Sonar &amp; Ruby: Continuous integration of a Rails app</title>
		<link>http://www.andygoundry.com/2009/04/15/hudson-sonar-continuous-build-and-integration-of-a-rails-app/</link>
		<comments>http://www.andygoundry.com/2009/04/15/hudson-sonar-continuous-build-and-integration-of-a-rails-app/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 17:10:52 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[version control]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=342</guid>
		<description><![CDATA[I&#8217;m currently playing (well battling at times &#8211; VMWare can be an arse at times &#8211; or maybe i&#8217;ve been away for too long) with plugging a rails app into Hudson and Sonar. 
My intention is to have the Rails app on a separate server from the Hudson server and have the Rails app return [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently playing (well battling at times &#8211; VMWare can be an arse at times &#8211; or maybe i&#8217;ve been away for too long) with plugging a rails app into <a href="https://hudson.dev.java.net/">Hudson</a> and <a href="http://sonar.codehaus.org/">Sonar</a>. </p>
<p>My intention is to have the Rails app on a separate server from the Hudson server and have the Rails app return Hudson-friendly XML from <a href="http://rspec.info/">RSpec</a> and <a href="http://github.com/aslakhellesoy/cucumber/tree/master">Cucumber</a> tests. When i get this to work, it&#8217;ll enable me to roll this out at work, with a central Hudson server (perhaps) that interacts with multiple app servers of various technologies and, along with the wonders of Sonar, gives a view into code test coverage, pass rate and complexity. I feel that i might struggle convincing Sonar to play with Ruby, but we&#8217;ll see.</p>
<p><strong>Why Hudson?</strong> </p>
<p>To be completely honest, at work, i didn&#8217;t make that decision and am yet to chase down exactly why it was chosen over <a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a>, but I completely trust those that made the decision on their project. I&#8217;m a big believer in standardising and am as such following suit and trying out Hudson. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/04/15/hudson-sonar-continuous-build-and-integration-of-a-rails-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Furthering the quest to *get* agile</title>
		<link>http://www.andygoundry.com/2009/04/15/furthering-the-quest-to-get-agile/</link>
		<comments>http://www.andygoundry.com/2009/04/15/furthering-the-quest-to-get-agile/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 16:40:52 +0000</pubDate>
		<dc:creator>andy</dc:creator>
				<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[linkedin]]></category>

		<guid isPermaLink="false">http://www.andygoundry.com/?p=332</guid>
		<description><![CDATA[My academic learning focus has been a bit off recently, what with the amount of work i&#8217;ve had on. But, no excuses &#8211; my quest to grasp the academic history of agile delivery is taking steps forward, with my digging into DSDM. I&#8217;ve decided to focus on DSDM due to its UK-centricity, which I feel [...]]]></description>
			<content:encoded><![CDATA[<p>My academic learning focus has been a bit off recently, what with the amount of work i&#8217;ve had on. But, no excuses &#8211; my quest to grasp the academic history of agile delivery is taking steps forward, with my digging into <a href="http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method">DSDM</a>. I&#8217;ve decided to focus on DSDM due to its UK-centricity, which I feel will have the greatest short term impact. I&#8217;ll get to SCRUM, XP, RUP, et al when i get to them.</p>
<p>I <a href="http://www.andygoundry.com/2008/09/14/uprooting-agile/">started</a> the quest ages ago and have progressed it, but more in practice than in reading. Now&#8217;s the time for the reading to pick up again&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andygoundry.com/2009/04/15/furthering-the-quest-to-get-agile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
