<?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>Richard Lawrence &#187; Watir</title>
	<atom:link href="http://www.richardlawrence.info/tag/watir/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardlawrence.info</link>
	<description>On making software teams happier and more productive</description>
	<lastBuildDate>Tue, 20 Jul 2010 21:38:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to Give a Great Sprint Demo</title>
		<link>http://www.richardlawrence.info/2009/04/24/how-to-give-a-great-sprint-demo/</link>
		<comments>http://www.richardlawrence.info/2009/04/24/how-to-give-a-great-sprint-demo/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 02:03:10 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Camtasia]]></category>
		<category><![CDATA[demos]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Sprint Demo]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=161</guid>
		<description><![CDATA[Exciting. Entertaining. Do these words describe your sprint demo meetings? Or are boring and unfocused more accurate? I can&#8217;t believe how many times I&#8217;ve come in to coach a team and they&#8217;ve been surprised when I actually expected to see a software demo in the sprint demo meeting. As the agile principle says, “Working software [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/07/7-tips-for-a-more-effective-daily-scrum/' rel='bookmark' title='Permanent Link: 7 Tips for a More Effective Daily Scrum'>7 Tips for a More Effective Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Exciting. Entertaining. Do these words describe your sprint demo meetings? Or are <em>boring</em> and <em>unfocused</em> more accurate?</p>
<p>I can&#8217;t believe how many times I&#8217;ve come in to coach a team and they&#8217;ve been surprised when I actually expected to see a software demo in the sprint demo meeting. As the agile principle says, “Working software is the primary measure of progress.” Let&#8217;s see some software!</p>
<p>Why are so many agile teams so hesitant to do demos? Why are demos so lifeless? Sometimes, the team&#8217;s not actually done. That makes a demo awkward. Other times, they can&#8217;t communicate what they did to the Product Owner; they don&#8217;t speak “business.” But <strong>most often, they simply don&#8217;t know how to give a good demo</strong>.</p>
<p>So, how <em>do</em> you give a good demo? <span id="more-161"></span></p>
<p>Here are a few tips:</p>
<ul>
<li><strong>Focus on acceptance criteria</strong>. You&#8217;ve defined what done means for the story (right?), so focus your demo around proving that you&#8217;re actually done.</li>
<li><strong>Start with the demo in mind</strong>. Don&#8217;t wait to think about the demo until you&#8217;re done with the story. You might be able to write tests that double as demo scripts. And it&#8217;s best to plan your demo for a story while it&#8217;s fresh in your mind, before you move to the next story.</li>
<li><strong>Prepare</strong>. Don&#8217;t ad lib. Think through an interesting scenario to prove that you&#8217;ve satisfied the core acceptance criteria. Create any necessary test data. Use tools like Watir if necessary to get your app into a state where you can start an interesting demo.</li>
<li><strong>Practice</strong>. Run through the demo at least once. When you&#8217;re getting started, you might want to grab a trial version of Camtasia and record yourself giving the practice demo. Painful, huh? That just means you need to work on it.</li>
<li><strong>Tell a story</strong>. Center your demo around a realistic user solving a real problem. The point is not just to show that the software works, but to show that it&#8217;s valuable.</li>
<li><strong>Keep it short</strong>. If you work on your stories one at a time and get them accepted when they&#8217;re ready, you don&#8217;t need to exhaustively cover all your acceptance criteria in your demo. Instead, focus your demo on what&#8217;s interesting and what&#8217;s valuable about each feature.</li>
</ul>
<p>The sprint demo should be the most exciting part of Scrum. It&#8217;s when the team gets to show everyone all the value they&#8217;re delivering. That&#8217;s worth investing a little time to do well. You may find that previously disinterested stakeholders start coming just for the show.</p>
<p>What has worked well for you in sprint demos? What hasn&#8217;t worked? Share in the comments.</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2009/02/07/7-tips-for-a-more-effective-daily-scrum/' rel='bookmark' title='Permanent Link: 7 Tips for a More Effective Daily Scrum'>7 Tips for a More Effective Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/10/30/free-agile-product-management-seminar-nov-11-denver/' rel='bookmark' title='Permanent Link: Free Agile Product Management Seminar &#8211; Nov 11, Denver'>Free Agile Product Management Seminar &#8211; Nov 11, Denver</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/04/24/how-to-give-a-great-sprint-demo/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Another Look at WatiN</title>
		<link>http://www.richardlawrence.info/2009/01/24/another-look-at-watin/</link>
		<comments>http://www.richardlawrence.info/2009/01/24/another-look-at-watin/#comments</comments>
		<pubDate>Sat, 24 Jan 2009 16:29:50 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[Agile 2009]]></category>
		<category><![CDATA[patterns]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[WatiN]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=115</guid>
		<description><![CDATA[At my current client, we&#8217;ve decided to use WatiN, largely for the C# vs. Ruby reason I discussed earlier this week. After spending a week working with WatiN (following a year of rarely using it), I&#8217;m impressed. Ruby and the active Watir community still have their advantages. But WatiN has really come into its own [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/' rel='bookmark' title='Permanent Link: Web Testing for .NET Teams: WatiN or Watir?'>Web Testing for .NET Teams: WatiN or Watir?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>At my current client, we&#8217;ve decided to use <a href="http://watin.sourceforge.net/">WatiN</a>, largely for the C# vs. Ruby reason I <a href="/2009/01/19/web-testing-for-net-teams-watin-or-watir/">discussed earlier this week</a>. After spending a week working with WatiN (following a year of rarely using it), I&#8217;m impressed. Ruby and the active Watir community still have their advantages. But WatiN has really come into its own with C# 3.0 features like lambdas. I&#8217;m pleased with the test code we&#8217;re producing in terms of readability, speed, flexibility, and maintainability. I&#8217;ve proposed an <a href="http://agile2009.agilealliance.org/">Agile 2009</a> tutorial <a title="Please log in and add comments on my session proposal." href="http://agile2009.agilealliance.org/node/505">session</a> on the patterns I&#8217;m using to get those results, and I&#8217;ll post more on that topic here soon. (Which will hopefully help with one of WatiN&#8217;s shortcomings—documentation.)</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/' rel='bookmark' title='Permanent Link: Web Testing for .NET Teams: WatiN or Watir?'>Web Testing for .NET Teams: WatiN or Watir?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/01/24/another-look-at-watin/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Web Testing for .NET Teams: WatiN or Watir?</title>
		<link>http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/</link>
		<comments>http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 03:49:04 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[ATDD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[WatiN]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=100</guid>
		<description><![CDATA[I&#8217;ve noticed a pattern with several of my .NET clients who want to get into automated acceptance testing for web applications. They like the idea of WatiN because it would let them write tests in the same language as their production code. But then they notice that there&#8217;s much more documentation and apparently a much [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2008/12/11/ui-sketches-for-distributed-teams/' rel='bookmark' title='Permanent Link: UI Sketches for Distributed Teams'>UI Sketches for Distributed Teams</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve noticed a pattern with several of my .NET clients who want to get into automated acceptance testing for web applications. They like the idea of <a href="http://watin.sourceforge.net/">WatiN</a> because it would let them write tests in the same language as their production code. But then they notice that there&#8217;s much more documentation and apparently a much more active community around <a href="http://wiki.openqa.org/display/WTR">Watir</a>. And that Ruby language looks interesting too. What to do?</p>
<p>I think there are good arguments for both. Here are the major pros and cons from my perspective&#8230;</p>
<p><span id="more-100"></span></p>
<h2>WatiN</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td width="50%"><strong>Pros</strong></td>
<td><strong>Cons</strong></td>
</tr>
<tr>
<td valign="top">
<ul>
<li>Code and test in the same language (e.g. C#)
<ul>
<li>No need to learn a new language (i.e. Ruby)</li>
<li>No need to support another language</li>
<li>No need to hire people who know another language</li>
</ul>
</li>
<li>Did I mention that you can write tests in C#?</li>
</ul>
</td>
<td valign="top">
<ul>
<li>IE only (though there&#8217;s a CTP for FireFox support)</li>
<li>Very limited documentation</li>
<li> More syntactic noise (more due to .NET than to WatiN itself; e.g. new Regex(&#8220;txtFoo$&#8221;) vs. /txtFoo$/)</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2>Watir</h2>
<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<td width="50%"><strong>Pros</strong></td>
<td><strong>Cons</strong></td>
</tr>
<tr>
<td valign="top">
<ul>
<li>Very active community</li>
<li>Active ongoing development on Watir and related projects</li>
<li>Good support on the discussion list</li>
<li>Concise, clear syntax (more due to Ruby than to Watir itself)</li>
<li>Good documentation (though finding the current RDoc online can be difficult)</li>
<li>Works with <a href="http://wiki.github.com/aslakhellesoy/cucumber">Cucumber</a>, my current favorite acceptance test tool</li>
<li>Supports multiple browsers (IE, Firefox, Safari, and soon Chrome and Opera)</li>
</ul>
</td>
<td valign="top">
<ul>
<li>Uses a language unfamiliar to .NET teams (that&#8217;s who we&#8217;re talking about here, remember)</li>
<li>Doesn&#8217;t directly work with .NET test frameworks (of course, you can wrap the Watir tests for use by MSTest or NUnit)</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2>The Bottom Line</h2>
<p>On balance, I think Watir is the better tool, has the better documentation, the most active community, and the best long-term prospects. But I understand the desire to standardize on C# or VB.NET for both production and test code. The long-term cost of adding another language to a product is not something to ignore.</p>
<p>Personally, I&#8217;ll continue to use and teach both tools with clients. When it comes to my own projects, however, I&#8217;ll be using and extending Watir, for all the reasons above and simply because I enjoy working with Ruby.</p>
<p>Which do you use and why?</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/' rel='bookmark' title='Permanent Link: A Common, but Bad, Idea'>A Common, but Bad, Idea</a></li>
<li><a href='http://www.richardlawrence.info/2008/12/11/ui-sketches-for-distributed-teams/' rel='bookmark' title='Permanent Link: UI Sketches for Distributed Teams'>UI Sketches for Distributed Teams</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2009/01/19/web-testing-for-net-teams-watin-or-watir/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Common, but Bad, Idea</title>
		<link>http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/</link>
		<comments>http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 04:44:09 +0000</pubDate>
		<dc:creator>Richard Lawrence</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[anti-patterns]]></category>
		<category><![CDATA[ATDD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Fit]]></category>
		<category><![CDATA[QA]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[Watir]]></category>

		<guid isPermaLink="false">http://www.richardlawrence.info/?p=51</guid>
		<description><![CDATA[Please don&#8217;t do this: It will hurt. Not right away, but around sprint 4 when the bugs found in sprint 3 for the stories built in sprint 2 need to be mixed in with the stories planned in sprint 3 for sprint 4. And then it&#8217;ll hurt more in sprint 5 and later when you [...]


Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/09/05/making-velocity-granular-enough/' rel='bookmark' title='Permanent Link: Making Velocity Granular Enough'>Making Velocity Granular Enough</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Please don&#8217;t do this:<br />
<img class="alignnone size-full wp-image-52" title="Planning, Development, and QA in Separate Sprints" src="http://www.richardlawrence.info/wp-content/uploads/2008/11/plan-dev-qa-sprints.png" alt="" width="500" height="155" /></p>
<p><span id="more-51"></span></p>
<p>It will hurt. Not right away, but around sprint 4 when the bugs found in sprint 3 for the stories built in sprint 2 need to be mixed in with the stories planned in sprint 3 for sprint 4. And then it&#8217;ll hurt more in sprint 5 and later when you have to start regression testing more and more code each sprint.</p>
<p>Instead, just do as much work as you can get really DONE in each sprint. Plan it, build it, test it, and deliver it. It&#8217;ll be hard to ensure that testing doesn&#8217;t get squeezed out the back of the sprint. It will. When that happens, try moving testing to the front of each story. Create your test cases as specifications and then do just enough development to make them pass. (Consider a tool like <a href="http://github.com/aslakhellesoy/cucumber/wikis/home">Cucumber</a> for this, using it to drive <a href="http://wtr.rubyforge.org/">Watir</a> if you&#8217;re building a web app. Or look at <a href="http://fit.c2.com/">Fit</a>/<a href="http://fitnesse.org/">Fitnesse</a> if that&#8217;s more your style.)</p>


<p>Related posts:<ol><li><a href='http://www.richardlawrence.info/2008/07/11/one-word-can-change-your-daily-scrum/' rel='bookmark' title='Permanent Link: One Word Can Change Your Daily Scrum'>One Word Can Change Your Daily Scrum</a></li>
<li><a href='http://www.richardlawrence.info/2008/09/05/making-velocity-granular-enough/' rel='bookmark' title='Permanent Link: Making Velocity Granular Enough'>Making Velocity Granular Enough</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.richardlawrence.info/2008/11/13/a-common-but-bad-idea/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
