<?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>Gojko Adzic &#187; articles</title>
	<atom:link href="http://gojko.net/category/articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net</link>
	<description>Building software that matters</description>
	<lastBuildDate>Thu, 18 Mar 2010 07:51:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Designing practical workshops</title>
		<link>http://gojko.net/2010/03/18/designing-practical-workshops/</link>
		<comments>http://gojko.net/2010/03/18/designing-practical-workshops/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 07:49:18 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1654</guid>
		<description><![CDATA[I&#8217;m a tactile learner. I digest information a lot quicker from playing with things than from reading books. That&#8217;s why I like running training workshops and attending things like that at conferences. Working through the proposals for the upcoming Progressive .NET tutorials, we had quite a heated debate on talks and workshops as teaching styles, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a <a href="http://homeworktips.about.com/od/homeworkhelp/a/tactile.htm">tactile learner</a>. I digest information a lot quicker from playing with things than from reading books. That&#8217;s why I like running <a href="http://neuri.co.uk/training/">training workshops</a> and attending things like that at conferences. Working through the proposals for the upcoming <a href="http://skillsmatter.com/event/open-source-dot-net/progressive-dotnet-tutorials-2010">Progressive .NET tutorials</a>, we had quite a heated debate on talks and workshops as teaching styles, with some people saying that they know how to prepare a good talk but don&#8217;t know how to design a workshop. Converting one into another isn&#8217;t that hard at all. Here is what I do normally to design a workshop from a talk:<span id="more-1654"></span></p>
<ul>
<li>Start with a list of things I&#8217;d like to talk about (let&#8217;s say good practices for a acceptance testing); it often helps me to create a powerpoint slide deck for a short talk</li>
<li>identify solutions I&#8217;d like to present (say specification over scripting, cross-functional teams)</li>
<li>for each solution, identify a good problem example that demonstrates how the solution brings a good benefit compared to alternatives (for example, a script that&#8217;s perfectly good for a regression test, but useless as a communication tool)</li>
<li>add the problem before the solution in the slide deck; make sure to remove anything that actually presumes a solution in the problem description, especially things that would give away what you want to present.</li>
<li>break down the slides so that I can pause between the problem and the solution</li>
</ul>
<p>This gives me the basic structure of a mix of exercises and presentations. I start with the presentation as I would normally and stop after presenting each problem. Then I split people into groups and let them try to solve the problem. I time-box this and go around while they are solving it, joining each group for a short while. Depending on the problem, I apply two strategies while doing this:</p>
<ol>
<li>If the problem deals with a new technology that people might not know about (eg new specific CLR features), see what they are doing and gently push them in the right direction.</li>
<li>   If the problem is more conceptual than technical, and has a classic bad solution that people fall into, let groups fall into the trap. Answer questions they ask but don&#8217;t try to point them into the right direction yet.</li>
</ol>
<p><br clear="all" /></p>
<p>In the first case, we expect everyone to end up in more-less the same place because of the help, so presenting one good solution either from a group or the remaining slides (solutions that come after problems) is a nice end for that exercise.</p>
<p>In case of the other group of problems, we expect groups to arrive at different places &#8211; one group might directly fall into the classic pitfall, another might be halfway to the right solution, a third might come up with something alternative that you haven&#8217;t thought about. Let one person from each group present where they are, and then discuss solutions with everyone as a group. If your preferred solution was reached by anyone, discuss why that&#8217;s better than the rest. If not, present your solution after this and discuss that as well, comparing it to the other solutions.</p>
<p>Aim to run each block for 30-45 mins and have 15-20 mins of discussion after. A typicall 3 or 4 hour workshop gives us enough time to work through two or three of these blocks, depending on the remaining slides to discuss (intro/retrospective etc). </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/18/designing-practical-workshops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FIT vs SLIM</title>
		<link>http://gojko.net/2010/03/12/fit-vs-slim/</link>
		<comments>http://gojko.net/2010/03/12/fit-vs-slim/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 07:59:33 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[fit]]></category>
		<category><![CDATA[fitnesse]]></category>
		<category><![CDATA[slim]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1631</guid>
		<description><![CDATA[I got this question from a blog reader recently:
I just wanted your opinion on SLIM as opposed to standard FIT/Fitnesse. Are there things that can only be done via the FIT/Fitnesse route that cannot be done via SLIM? So for acceptance tests and integration tests can I just use SLIM?
We want to exploit the BDD [...]]]></description>
			<content:encoded><![CDATA[<p>I got this question from a blog reader recently:</p>
<blockquote><p>I just wanted your opinion on SLIM as opposed to standard FIT/Fitnesse. Are there things that can only be done via the FIT/Fitnesse route that cannot be done via SLIM? So for acceptance tests and integration tests can I just use SLIM?</p>
<p>We want to exploit the BDD abilities of Scenario tables in SLIM. Ideally I would like to use SLIM to undertake all kinds of tests. I assume it has all the same capabilities? Are there any issues? </p></blockquote>
<p> <span id="more-1631"></span></p>
<p>On the face of it, SLIM seems to be the preferred way forward for new FitNesse implementations as it is being actively developed and maintained by the same folks who develop FitNesse. FIT is a bit of an orphan at the moment, Rick Mugridge and I were talking about taking over that integration and enhancing it.</p>
<p>In terms of features, SLIM gives you better compatibility across platforms because a lot of the test system responsibility has been taken over by FitNesse itself (parsing HTML, deciding how to interpret a table, storing and reading symbol values). <a href="http://gojko.net/2009/04/17/slim-and-the-future-of-fitnesse-video/">Watch this video for more information about the differences in responsibilities</a>.</p>
<p>On the other hand, because of the way SLIM works, fitlibrary flow-mode interaction is practically impossible. Most of my clients still use flow mode tests as that is a great way to write and maintain a very thin fixture layer for complex tests.</p>
<p>SLIM also allows you to use Scenario tables, as you mentioned. Scenario tables give testers a lot more power as they can script multi-step execution and compose lower level fixtures into higher level tables, without involving developers to do the same in fixtures. Depending on your environment and team, this might or might not make sense. For covering and existing system with regression tests, it probably does. For using acceptance tests as a guide for development, beware of overdoing it. I am very concerned about long-term maintenance costs of such tests. What happens in this case is that people are effectively programming with tables &#8211; doing the same in code would allow you to benefit from IDE support for refactoring, file management and all sorts of other things that make IDEs useful. You lose all that by using scenario tables in order to make testers a bit more independent. I would rather suggest training the testers some basic coding skills so that they can write fixtures. </p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/12/fit-vs-slim/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Acceptance testing best practices</title>
		<link>http://gojko.net/2010/03/03/acceptance-testing-best-practices/</link>
		<comments>http://gojko.net/2010/03/03/acceptance-testing-best-practices/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 19:50:14 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[fitnesse]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1655</guid>
		<description><![CDATA[Here&#8217;s a video from a joint workshop that David Evans,  Mike Scott and I organised yesterday at Skills Matter. We talked about strategies to get the most out of acceptance tests (especially with FitNesse) and organised a group workshop to review some good and bad examples of acceptance tests &#8211; taken from my Hands [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a video from a joint workshop that David Evans,  Mike Scott and I organised yesterday at Skills Matter. We talked about strategies to get the most out of acceptance tests (especially with FitNesse) and organised a group workshop to review some good and bad examples of acceptance tests &#8211; taken from my <a href="http://neuri.co.uk/training">Hands On Acceptance Testing</a> workshop.</p>
<p><object width="300px" height="279px"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=9877071&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=9877071&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="300px" height="279px"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/03/acceptance-testing-best-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Are tools necessary for acceptance testing, or are they just evil?</title>
		<link>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/</link>
		<comments>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 08:05:47 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[acceptance testing]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agile acceptance testing]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[fit]]></category>

		<guid isPermaLink="false">http://gojko.net/?p=1633</guid>
		<description><![CDATA[While doing research for my new book, I was very surprised to find out that Jim Shore gave up on acceptance testing. I use his &#8220;describe-demonstrate-develop&#8221; process description all the time in my workshops, so I guess I better stop doing that. Jim Shore wrote:
My experience with Fit and other agile acceptance testing tools is [...]]]></description>
			<content:encoded><![CDATA[<p>While doing research for my new book, I was very surprised to find out that <a href="http://jamesshore.com">Jim Shore gave up on acceptance testing</a>. I use his <a href="http://jamesshore.com/Blog/How-I-Use-Fit.html">&#8220;describe-demonstrate-develop&#8221; process description</a> all the time in <a href="http://neuri.co.uk/training">my workshops</a>, so I guess I better stop doing that. Jim Shore <a href="http://jamesshore.com/Blog/The-Problems-With-Acceptance-Testing.html">wrote</a>:</p>
<blockquote><p>My experience with Fit and other agile acceptance testing tools is that they cost more than they&#8217;re worth. There&#8217;s a lot of value in getting concrete examples from real customers and business experts; not so much value in using &#8220;natural language&#8221; tools like Fit and similar.</p></blockquote>
<p>The two failure patterns that Shore describes in <a href="http://jamesshore.com/Blog/The-Problems-With-Acceptance-Testing.html">his post</a> are falling back on testers to write everything and merging acceptance and integration tests. I&#8217;ve experienced both of these myself, and it seems that they are common in general. We discussed both during the <a href="http://gojko.net/2009/09/24/top-10-reasons-why-teams-fail-with-acceptance-testing/">top 10 ways to fail with acceptance testing</a> openspace session at <a href="/tag/citcon">CITCON</a>  Europe last year. However, there are good ways to solve both problems. <span id="more-1633"></span></p>
<p>I never really expected customers to write anything themselves, but I was relatively successful in persuading them to participate in <a href="http://www.acceptancetesting.info/key-ideas/specification-workshop">specification workshops</a> that led to examples which were then converted to acceptance tests later. Another idea I discovered while doing the research for my new book is discussing the key examples with customers and then going off to write detailed test pages, which then get verified by the customers. The third good idea is doing ad-hoc specification writing sessions when a developer needs information, by involving a tester and a business analyst. This is a lot less formal than a specification workshop and gives you similar benefits if you have all the knowledge in the room (or readily available) most of the time. </p>
<p>Not preserving acceptance tests as a separate group and mixing quick and slow tests is something that most people, at least according to my ongoing research, get burned with at some point but again teams learn from that and improve.</p>
<p>One of the biggest benefits from acceptance testing for me was that the teams finally get a source of information on what goes on in the system as reliable as the code itself. Without acceptance tests, code is the only thing you can really trust and any other documentation gets outdated very quickly. And such tests are much easier to read and understand than the code because they are on a higher level and in a natural language. Having a <a href="http://www.acceptancetesting.info/key-ideas/live-documentation">live specification</a> helps me quite a lot when change requests come in later. It also helps with handing over and taking over code. Acceptance tests stay relevant throughout the project because they are automated, and automated tests are kept up to date in order for them to pass. Automation, and consequently a tool, are necessary to get this benefit. With informal agreements and on-site reviews that Jim Shore describes, I guess something else needs to be in place to facilitate this. </p>
<p>I agree with Shore that it takes a while for the problems with tools such as FIT to surface, but I&#8217;m not sure whether that is tool related or not. Most people I spoke to so far said that it took them between six months and a year to discover that acceptance testing isn&#8217;t about the tools but about communication, and that the biggest benefit is in the examples as Shore wrote. A notable exception to six months to a year rule was <a href="http://lisacrispin.com/wordpress/">Lisa Crispin</a>&#8217;s team who generally started out knowing what they need (but that&#8217;s because she had done it before). Clear examples and improved communication are the biggest benefits of the process, but using a tool brings some additional nice benefits as well. A tool gives us an impartial measure of progress. <a href="http://codebetter.com/blogs/ian_cooper/">Ian Cooper</a> said during the interview for my new book that &#8220;the tool keeps developers honest&#8221;, and I can certainly relate to that. With tests that are evaluated by an impartial tool, &#8220;done&#8221; is really &#8220;what everyone agreed on&#8221;, not &#8220;almost done with just a few things to fill in tomorrow&#8221;. I&#8217;m not sure whether an on-site review is enough to guard against this completely.</p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/03/01/are-tools-necessary-for-acceptance-testing-or-are-they-just-evil/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>FitNesse clinic, March 2nd, London</title>
		<link>http://gojko.net/2010/02/12/fitnesse-clinic-march-2nd-london/</link>
		<comments>http://gojko.net/2010/02/12/fitnesse-clinic-march-2nd-london/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 19:13:14 +0000</pubDate>
		<dc:creator>gojko</dc:creator>
				<category><![CDATA[articles]]></category>
		<category><![CDATA[fitnesse]]></category>

		<guid isPermaLink="false">http://gojko.net/2010/02/12/fitnesse-clinic-march-2nd-london/</guid>
		<description><![CDATA[On March 2nd, Dave Evans and I are running a FitNesse clinic in central London starting at 6:30 PM. This is a unique opportunity to get your FitNesse tests reviewed for free and get help with writing and maintaining FitNesse tests and suites. 
Dave and I will discuss some of the common pitfalls faced by [...]]]></description>
			<content:encoded><![CDATA[<p>On March 2nd, Dave Evans and I are running a FitNesse clinic in central London starting at 6:30 PM. This is a unique opportunity to get your FitNesse tests reviewed for free and get help with writing and maintaining FitNesse tests and suites. </p>
<p>Dave and I will discuss some of the common pitfalls faced by teams in getting to grips with Fitnesse. We will show examples of good and bad acceptance tests, illustrating how different styles of fixtures lend themselves to different types of tests. We also highlight some of the features of Fitnesse that allow you to keep your tests expressive, useful and easy to maintain.</p>
<p>Make this interactive and bring your own test examples to be discussed, critiqued and improved upon in a group workshop.</p>
<p>For more information and to register, see<br />
<a href="http://skillsmatter.com/podcast/agile-testing/david-evans-gojko-adzic-interactive-agile-acceptance-testing-clinic">http://skillsmatter.com/podcast/agile-testing/david-evans-gojko-adzic-interactive-agile-acceptance-testing-clinic</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gojko.net/2010/02/12/fitnesse-clinic-march-2nd-london/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
