<?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>Agile Bob on Making Agile a Reality &#187; Testing</title>
	<atom:link href="http://www.agileforall.com/category/agile/testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agileforall.com</link>
	<description>Agile For All</description>
	<lastBuildDate>Sun, 05 Feb 2012 04:36:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Agile antipattern: Changing the definition of done</title>
		<link>http://www.agileforall.com/2009/12/22/agile-antipattern-changing-the-definition-of-done/</link>
		<comments>http://www.agileforall.com/2009/12/22/agile-antipattern-changing-the-definition-of-done/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 18:00:58 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=1093</guid>
		<description><![CDATA[Ever see a burndown chart like the one to the left?  I&#8217;ve been on a big burndown chart kick lately and when I saw this one I just couldn&#8217;t resist using it.  This one is a bit different from my previous blog entries here and here.  This burndown chart is a release burndown rather than [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/29/agile-antipattern-dysfunctional-burndown-charts-roundup-post/' rel='bookmark' title='Agile antipatterns: Agile burn-down chart roundup post'>Agile antipatterns: Agile burn-down chart roundup post</a> <small>Do you want to see several different ways agile and scrum burn-down charts...</small></li>
<li><a href='http://www.agileforall.com/2009/12/28/agile-antipattern-another-burndown-chart-that-lies/' rel='bookmark' title='Agile antipattern: Another burndown chart that lies!'>Agile antipattern: Another burndown chart that lies!</a> <small>That burndown chart looks sweet doesn&#8217;t it?  The team finished the iteration...</small></li>
<li><a href='http://www.agileforall.com/2009/02/13/holistic-vs-dogmatic-agile-definition-results-matter/' rel='bookmark' title='Holistic vs. Dogmatic Agile Definition &#8211; Results Matter!'>Holistic vs. Dogmatic Agile Definition &#8211; Results Matter!</a> <small>I originally wrote about this topic in our September email newsletter.  In...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.agileforall.com/wp-content/uploads/2009/12/sprintburndown5.gif"><img class="alignleft size-full wp-image-1183" title="sprintburndown5" src="http://www.agileforall.com/wp-content/uploads/2009/12/sprintburndown5.gif" alt="sprintburndown5" width="355" height="215" /></a>Ever see a burndown chart like the one to the left?  I&#8217;ve been on a big burndown chart kick lately and when I saw this one I just couldn&#8217;t resist using it.  This one is a bit different from my previous blog entries here and here.  This burndown chart is a release burndown rather than an iteration burndown.  It sure looks like the team was incredibly successful and finished early, right?  Wrong!  What this burndown actually shows is all of the stories being &#8220;done&#8221; and the release not actually occurring for several more iterations.  How is that possible?<span id="more-1093"></span></p>
<p>Unfortunately this is a symptom all too common for agile teams, so learn from this blog entry and don&#8217;t repeat the mistakes of others!  What this shows is a lack of commitment to a <a href="http://www.scrumalliance.org/articles/106-definition-of-done-a-reference">definition of done</a>.  I touched on this briefly when I wrote about using a <a href="http://www.agileforall.com/2009/05/05/new-to-agile-use-a-rules-of-engagement-document/">rules of engagement document</a>.  If you don&#8217;t settle on a definition of done the pattern in this burndown chart can easily occur.  This pattern can also occur when a team is trying to hard to meet their deadlines.</p>
<p>If you went back and examined what occurred in this example you would find a team pressured to try to hit a release date by working at an unrealistic pace rather than a <a href="http://www.agileforall.com/2009/07/24/new-to-agile-work-at-a-sustainable-pace/">sustainable pace</a>.  In order for the team to keep looking like they were on track for an ontime release they built technical debt by not sticking to a strong definition of done.  The result is a tremendous amount of testing which was delayed and triggered massive test-fix cycles.  In fact, the original release date was projected for after iteration 6, but instead it took 4 more iterations to actually release the product.  Technical debt cannot simply be allowed to build.  Software projects don&#8217;t have the luxury of deficit spending like the US Government.  At some point the bill will come due and it will almost always come due prior to release.  In fact, if it comes due after release it is even worse &#8211; you now are in emergency mode because customers are suffering!</p>
<p><a href="http://www.rallydev.com">Rally Software</a> recently posted <a href="http://www.rallydev.com/engblog/2009/11/11/how-agile-is-rally/">their definition of done</a> on their blog.  It makes for some interesting reading and gives good perspective for other agile SaaS companies.</p>
<p><a href="http://www.richardlawrence.info">Richard Lawrence</a> has a recent blog entry on this topic as well.  Richard encourages teams to not build technical debt and in fact he encourages <a href="http://www.richardlawrence.info/2009/12/21/growing-done-how-to-make-the-definition-of-done-work-for-your-team/"><strong><em>growing</em></strong> your definition of done</a> in order to release high value, high quality software as quickly as possible.  It is fascinating reading based on his work at a large organization.</p>
<p>Until next time I&#8217;ll be Making Agile a Reality<sup>®</sup> by helping teams agree and abide by their definition of done.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F22%2Fagile-antipattern-changing-the-definition-of-done%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F22%2Fagile-antipattern-changing-the-definition-of-done%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F22%2Fagile-antipattern-changing-the-definition-of-done%2F&amp;title=Agile%20antipattern%3A%20Changing%20the%20definition%20of%20done" id="wpa2a_2"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/29/agile-antipattern-dysfunctional-burndown-charts-roundup-post/' rel='bookmark' title='Agile antipatterns: Agile burn-down chart roundup post'>Agile antipatterns: Agile burn-down chart roundup post</a> <small>Do you want to see several different ways agile and scrum burn-down charts...</small></li>
<li><a href='http://www.agileforall.com/2009/12/28/agile-antipattern-another-burndown-chart-that-lies/' rel='bookmark' title='Agile antipattern: Another burndown chart that lies!'>Agile antipattern: Another burndown chart that lies!</a> <small>That burndown chart looks sweet doesn&#8217;t it?  The team finished the iteration...</small></li>
<li><a href='http://www.agileforall.com/2009/02/13/holistic-vs-dogmatic-agile-definition-results-matter/' rel='bookmark' title='Holistic vs. Dogmatic Agile Definition &#8211; Results Matter!'>Holistic vs. Dogmatic Agile Definition &#8211; Results Matter!</a> <small>I originally wrote about this topic in our September email newsletter.  In...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/12/22/agile-antipattern-changing-the-definition-of-done/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile antipattern: Burndown &#8220;wall&#8221;</title>
		<link>http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/</link>
		<comments>http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 18:30:44 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=1072</guid>
		<description><![CDATA[Does your team have an iteration burndown chart (giving credit only for completed stories) look like the one to the left? If so there are a couple of possible explanations.  Last week I blogged about how this could be a symptom of working on user stories that are too large.  However, there is another possible explanation, and it [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/28/agile-antipattern-another-burndown-chart-that-lies/' rel='bookmark' title='Agile antipattern: Another burndown chart that lies!'>Agile antipattern: Another burndown chart that lies!</a> <small>That burndown chart looks sweet doesn&#8217;t it?  The team finished the iteration...</small></li>
<li><a href='http://www.agileforall.com/2009/12/07/agile-antipattern-burndown-charts-that-hide-the-truth/' rel='bookmark' title='Agile antipattern: Burndown charts that hide the truth'>Agile antipattern: Burndown charts that hide the truth</a> <small>See that burndown chart over there to the left?  It looks beautiful...</small></li>
<li><a href='http://www.agileforall.com/2009/12/22/agile-antipattern-changing-the-definition-of-done/' rel='bookmark' title='Agile antipattern: Changing the definition of done'>Agile antipattern: Changing the definition of done</a> <small>Ever see a burndown chart like the one to the left?  I&#8217;ve...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.agileforall.com/wp-content/uploads/2009/12/sprintburndown4.jpg"><img class="alignleft size-full wp-image-1155" title="sprintburndown4" src="http://www.agileforall.com/wp-content/uploads/2009/12/sprintburndown4.jpg" alt="sprintburndown4" width="360" height="223" /></a>Does your team have an iteration burndown chart (giving credit only for completed stories) look like the one to the left? If so there are a couple of possible explanations.  Last week I blogged about how this could be a symptom of <a href="http://www.agileforall.com/2009/12/09/agile-antipattern-taking-on-large-stories/">working on user stories that are too large</a>.  However, there is another possible explanation, and it is one that is FAR harder to solve.  The culprit is pushing testing to the end of the iteration.  The difference between the two is the steepness and abruptness of the wall.  When testing at the end is truly being done there are no stories finished until the last couple of days of the iteration while large stories pushes most until the last half of the iteration.  See last week&#8217;s entry on large stories to see the subtle difference in the burndown charts.<span id="more-1072"></span></p>
<p>This is basically a version of the <a href="http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/">code freeze during an iteration antipattern</a>.  It is all too common for an organization which switches from waterfall to agile to continue to try to do testing the same way it had been done previously.  This generally is done by having a handoff from development to testing during the iteration.  Since waterfall tested large chunks of code, most organizations have developers write as much code as they can prior to sending a large chunk to testing.  In order for this to occur the development goes for as long as possible during the iteration.  Stories can&#8217;t be completed until they are tested, so all of the completion of stories happens in the last couple of days of the iteration.  This forms the burndown &#8220;wall&#8221; shown in the sample burndown chart.</p>
<p>So what is wrong with having a burndown wall if everything gets completed?  I&#8217;m going to surprise you and say there is still a LOT wrong even if everything gets completed in this structure.  Here is a list of issues you probably want to look at if this is your current situation:</p>
<ol>
<li>What are the developers doing while testing is going on?  They SHOULD NOT be working on the next iteration.</li>
<li>If developers are spending their time fixing the defects found during testing how do you guarantee all the defects will get fixed and tested in time for the end of the iteration?</li>
<li>What happens if testing runs up against a big problem and can&#8217;t finish testing the stories prior to the end of the iteration?</li>
<li>If there is pressure to finish testing in time does testing subconsciously cut down on the breadth or depth of testing?</li>
<li>What are the testers doing during the early part of the iteration when the developers are writing a pile of code?</li>
</ol>
<p>These are real concerns and in my experience one or more of them will cause significant issues in almost every iteration.  If a team actually manages to overcome all of these issues in the majority of their iterations then there is still one more question to answer: Is it the most efficient way?</p>
<p>Team after team after team has proven it is not the most efficient way to do things.  When teams start doing things differently using Acceptance Test-Driven Development (ATDD) using automated tests they are much more efficient.  It also gives them the ability to accept stories every day.  Being able to accept stories every day gets rid of the wall and makes a more classic looking burndown chart.  Knowing things are completed and working every day will help the entire team feel better about how they are performing.</p>
<p>Until next time work at Making Agile a Reality<sup>®</sup> by integrating testing and development so stories can be accepted every single day and see how much your team can improve!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F14%2Fagile-antipattern-burndown-wall%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F14%2Fagile-antipattern-burndown-wall%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F14%2Fagile-antipattern-burndown-wall%2F&amp;title=Agile%20antipattern%3A%20Burndown%20%26%238220%3Bwall%26%238221%3B" id="wpa2a_4"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/28/agile-antipattern-another-burndown-chart-that-lies/' rel='bookmark' title='Agile antipattern: Another burndown chart that lies!'>Agile antipattern: Another burndown chart that lies!</a> <small>That burndown chart looks sweet doesn&#8217;t it?  The team finished the iteration...</small></li>
<li><a href='http://www.agileforall.com/2009/12/07/agile-antipattern-burndown-charts-that-hide-the-truth/' rel='bookmark' title='Agile antipattern: Burndown charts that hide the truth'>Agile antipattern: Burndown charts that hide the truth</a> <small>See that burndown chart over there to the left?  It looks beautiful...</small></li>
<li><a href='http://www.agileforall.com/2009/12/22/agile-antipattern-changing-the-definition-of-done/' rel='bookmark' title='Agile antipattern: Changing the definition of done'>Agile antipattern: Changing the definition of done</a> <small>Ever see a burndown chart like the one to the left?  I&#8217;ve...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>New to agile? Remember the power of automation</title>
		<link>http://www.agileforall.com/2009/12/01/new-to-agile-remember-the-power-of-automation/</link>
		<comments>http://www.agileforall.com/2009/12/01/new-to-agile-remember-the-power-of-automation/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 21:00:23 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Newbie]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/?p=1073</guid>
		<description><![CDATA[As this blog entry is published I am teaching an agile/scrum course to a client in Flanders, New Jersey.  You might want to ask &#8220;Bob, how can you do that?  Isn&#8217;t the client upset when you blogwhile they are paying for your time?&#8221;  Certainly they would be upset and they would be well within their [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2009/05/18/new-to-agile-remember-how-to-say-no/' rel='bookmark' title='New to agile?  Remember how to say &#8220;No&#8221;'>New to agile?  Remember how to say &#8220;No&#8221;</a> <small>No.  Only two letters.  Very simple word.  Yet for some reason, with...</small></li>
<li><a href='http://www.agileforall.com/2009/11/17/new-to-agile-remember-to-respect-people/' rel='bookmark' title='New to agile? Remember to respect people'>New to agile? Remember to respect people</a> <small>One of the Lean Principles is &#8220;Respect People.&#8221;  I think it may...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.agileforall.com/wp-content/uploads/2009/11/digital-clock-400x400.jpg"><img class="alignleft size-medium wp-image-1074" title="digital-clock-400x400" src="http://www.agileforall.com/wp-content/uploads/2009/11/digital-clock-400x400-300x300.jpg" alt="digital-clock-400x400" width="300" height="300" /></a>As this blog entry is published I am teaching an agile/scrum course to a client in Flanders, New Jersey.  You might want to ask &#8220;Bob, how can you do that?  Isn&#8217;t the client upset when you blogwhile they are paying for your time?&#8221;  Certainly they would be upset and they would be well within their rights to be upset about it!  However, I&#8217;m not BLOGGING during their time, the blog is simply taking a pre-scheduled action.  I actually wrote the blog entry while watching the 3rd quarter of the Steelers vs. Ravens football (American style) game on Sunday night.  Fortunately, WordPress has a way to &#8220;schedule&#8221; a blog entry for later publication.  In other words I am using a simple scheduler to automate a task to occur at a specific future time.  I&#8217;m mentioning all of this because automation is one of the areas where I see many agile teams fail.<span id="more-1073"></span></p>
<p>Before talking about agile teams let me give another image of automation which sticks with me.  My wife uses the phrase &#8220;keeping the slaves working&#8221; when she talks about using our dishwasher, washer and dryer.  What she means is external devices are doing the work of humans and saving human time &#8211; HER time in many cases!</p>
<p>Agile teams need to start thinking of their computers, servers and other devices as slaves to the team.  The slaves can work 24/7 while the team cannot.  If a computer can do the work much faster or the computer can do it while humans aren&#8217;t available doesn&#8217;t it make sense to use that capability?  There are some testing big-wigs who say you can&#8217;t automate everything.  I agree with that, but where I differ with them is on how much can or should be automated.  I say automate as much as possible, but do it in a maintainable and sustainable way.  Others may disagree.  Their disagreement doesn&#8217;t mean I&#8217;m wrong <img src='http://www.agileforall.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>In my experience I have seen three main reasons for teams not using automation (in testing, continuous integration or build/deploy):</p>
<ol>
<li>They simply do not know it is possible.</li>
<li>They assume the learning curve is too long for a reasonable ROI.</li>
<li>Management has said it costs too much money for a reasonable ROI.</li>
</ol>
<p>Let me debunk all of these fairly quickly.  The first one is no longer an issue because every reader is going to forward this blog entry to their friends who will all forward to their friends, etc. and within a few days the entire world will know automation is possible!  The second may have been a factor in the past, but with contemporary tools like <a href="http://cukes.info/" target="_blank">Cucumber</a>, <a href="http://seleniumhq.org/" target="_blank">Selenium</a> and <a href="http://fitnesse.org" target="_blank">FitNesse</a> the learning curve is MUCH lower than ever before.  Teams can become reasonably proficient with many tools with just a few days of training and coaching from a qualified individual.  Because it only takes a few days the last issue is debunked as well because the cost for a few days of time is negligible in the big picture when compared to the savings in productivity.</p>
<p>Look into automation.  Email me and ask about how current clients are being successful with very little time and dollars invested.  Keep the slaves working while you aren&#8217;t at the office and get a better balance between work and home life!</p>
<p>Until next time I&#8217;ll be Making Agile a Reality<sup>®</sup> for my clients by helping them learn how to get maximum leverage from their use of automation.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F01%2Fnew-to-agile-remember-the-power-of-automation%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F01%2Fnew-to-agile-remember-the-power-of-automation%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F12%2F01%2Fnew-to-agile-remember-the-power-of-automation%2F&amp;title=New%20to%20agile%3F%20Remember%20the%20power%20of%20automation" id="wpa2a_6"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/02/23/new-to-agile-remember-one-thing-just-enough-just-in-time/' rel='bookmark' title='New to agile?  Remember one thing: Just enough, just in time'>New to agile?  Remember one thing: Just enough, just in time</a> <small>If you lived through the past few decades you have undoubtedly heard...</small></li>
<li><a href='http://www.agileforall.com/2009/05/18/new-to-agile-remember-how-to-say-no/' rel='bookmark' title='New to agile?  Remember how to say &#8220;No&#8221;'>New to agile?  Remember how to say &#8220;No&#8221;</a> <small>No.  Only two letters.  Very simple word.  Yet for some reason, with...</small></li>
<li><a href='http://www.agileforall.com/2009/11/17/new-to-agile-remember-to-respect-people/' rel='bookmark' title='New to agile? Remember to respect people'>New to agile? Remember to respect people</a> <small>One of the Lean Principles is &#8220;Respect People.&#8221;  I think it may...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/12/01/new-to-agile-remember-the-power-of-automation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Agile anti-pattern: Going to longer iterations</title>
		<link>http://www.agileforall.com/2009/04/28/agile-anti-pattern-going-to-longer-iterations/</link>
		<comments>http://www.agileforall.com/2009/04/28/agile-anti-pattern-going-to-longer-iterations/#comments</comments>
		<pubDate>Tue, 28 Apr 2009 18:29:12 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Principles]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=308</guid>
		<description><![CDATA[This is another common theme among teams just starting with agile.  It usually goes something like this: The team has an unsuccessful iteration. They determine all the unfinished work is testing. During the retrospective they resolve to give more help to the testers so they can finish in time. The next iteration is also unsuccessful. [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>This is another common theme among teams just starting with agile.  It usually goes something like this:</p>
<ol>
<li>The team has an unsuccessful iteration.</li>
<li>They determine all the unfinished work is testing.</li>
<li>During the retrospective they resolve to give more help to the testers so they can finish in time.</li>
<li>The next iteration is also unsuccessful.</li>
<li>The team determines once again all unfinished work is testing.</li>
<li>During the retrospective they decide the only way to have enough time for testing is to move to a longer iteration length.</li>
</ol>
<p>Uh oh, <a href="http://history.nasa.gov/SP-350/ch-13-1.html" target="_blank">Houston we have a problem</a>!<span id="more-308"></span></p>
<p>This is not going to lead to success.  Think about it for just a minute.  The reasoning behind doing this is to give testers more time to test.  That sounds great in theory, but what are the developers doing during the extra time?  No, sorry, but they aren&#8217;t doing anything like sitting on their hands.  They are creating more software.  So if they are creating more software, when does it get tested?  Well, during the extra time of course!  But, but, the extra time was for testing the stuff they ALREADY created.  That&#8217;s right, we give extra time to test the stuff they created during the original iteration length, while then taking that time to create proportionally more software.  The result is pretty ugly &#8211; the testers now fall short by an amount of work which is directly proportional to the change in iteration length.  If the original iteration was 2 weeks, and the new iteration is 3 weeks, testers will fail to complete 50% more work in the new iteration length.  Bottom line, we didn&#8217;t make the problem better.</p>
<p>This is one of the worst antipatterns because for some reason people actually believe it should work.  Somehow they will wave a magic wand and developers will just slow down enough to let testers catch up with the new iteration length.  Sorry folks, it doesn&#8217;t work that way.  So what can you do instead?  You might try making a new rule:</p>
<p style="text-align: center;"><strong>There is no code except tested code</strong></p>
<p style="text-align: left;">How does this help?  Well, developers can no longer say &#8220;I coded that already&#8221; for just one example.  It isn&#8217;t &#8220;coded&#8221; until it has passed testing.  This means developers get zero credit for anything which isn&#8217;t tested.  Now it is not just testers which fell short during the iteration, it is the team.  If testing is constantly falling behind and coders can&#8217;t just blame the testers, what are their options?  Well, for starters they can help the testers out.  Maybe figure out how to automate more tests.  Maybe use unit test-driven development so the software that gets tested is more solid and likely to pass the acceptance tests.  Maybe developers turn into testers in order to complete the iteration.  Believe me, the more times developers have to run tests, the more automation tools and frameworks will start to show up or become easier to use (and this is a good thing!).</p>
<p style="text-align: left;">This is based on the lean principle to improve the system by doing two things:  measuring UP and optimizing the whole.  I&#8217;ll almost certainly have blog posts on both of those topics in the near future, but feel free to purchase Mary and Tom Poppendieck&#8217;s books on Lean Software Development (see <a href="http://www.agileforall.com/books" target="_blank">our books page</a>) if you want to read about them.</p>
<p style="text-align: left;">Thanks for reading this entry.  If you were considering a longer iteration length I hope this post stopped you from making a big mistake!</p>
<p style="text-align: left;">Until next time I&#8217;ll be Making Agile a Reality™ by having my clients expose the real <a href="http://www.agileforall.com/2009/03/09/new-to-agile-beware-of-the-elephant-in-the-room/" target="_blank">elephants in the room</a> and getting rid of them.</p>
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F28%2Fagile-anti-pattern-going-to-longer-iterations%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F28%2Fagile-anti-pattern-going-to-longer-iterations%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F28%2Fagile-anti-pattern-going-to-longer-iterations%2F&amp;title=Agile%20anti-pattern%3A%20Going%20to%20longer%20iterations" id="wpa2a_8"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/04/28/agile-anti-pattern-going-to-longer-iterations/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agile antipattern: Code freezes during each iteration</title>
		<link>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/</link>
		<comments>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 17:38:09 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Antipattern]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=143</guid>
		<description><![CDATA[Over the past 18 months I&#8217;ve encountered a number of teams where it is standard practice to have a code freeze late in the iteration.  The reason given for this was &#8220;to allow QA to test what we created during the iteration.&#8221; I&#8217;m sorry, but I have to be blunt here &#8211; this isn&#8217;t agile! [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/03/16/agile-antipattern-moving-work-from-one-iteration-to-the-next/' rel='bookmark' title='Agile antipattern: Moving work from one iteration to the next'>Agile antipattern: Moving work from one iteration to the next</a> <small>All agile teams start at something less than the completely proficient level. ...</small></li>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Over the past 18 months I&#8217;ve encountered a number of teams where it is standard practice to have a code freeze late in the iteration.  The reason given for this was &#8220;to allow QA to test what we created during the iteration.&#8221; I&#8217;m sorry, but I have to be blunt here &#8211; this isn&#8217;t agile! It leads to 3 main questions:</p>
<ol>
<li>What are the developers doing after the code freeze?</li>
<li>What happens if defects are uncovered after the code freeze?</li>
<li>Why could testing not be done earlier in the iteration?</li>
</ol>
<p>The answers to these questions are often enlightening.  Let&#8217;s take them one at a time:<span id="more-143"></span></p>
<p><strong>1.  What are developers doing after the code freeze?</strong></p>
<p>I&#8217;ve heard two primary answers to this.  The first is that developers are fixing defects during that time.  When pressed, I usually find out these are defects from earlier iterations (although this isn&#8217;t always the case &#8211; more on that later).  If we are fixing defects from previous iterations while QA is working on testing the current iteration, how do we ever get caught up?  Maybe I&#8217;m being a bit dense, but I just don&#8217;t see the math working on this one.</p>
<p>The second most common answer is developers are working ahead on things for the next iteration.  Said a different way, developers are creating yet more untested code before the commitment for the current iteration has been met.  Let&#8217;s think about this model for just a minute.  Let&#8217;s assume we are in iteration 1 and the team does a code freeze on day 7.  Coding occurred for 7 days and testing will go for 3 days.  But the developers start stuff from the next iteration on day 7, so for the next iteration they get 3 days from this iteration and 7 from the following iteration for a total of 10 coding days, followed by 3 testing days.  This cycle continues until the project completes.  Anyone feeling sick yet?  Again, being blunt, this is not agile, it is mini-waterfall or what I prefer to call &#8220;wagile.&#8221;</p>
<p><strong>2.  What happens if defects are discovered after the code freeze?</strong></p>
<p>Again, in Family Feud style, the most common answer is the defects are fixed in the following iteration.  This is a continuation of the first half of the previous answer.  How can the math ever work?</p>
<p>However, this isn&#8217;t always the answer.  Sometimes the answer is developers fix them as they are found.  This answer is MUCH less common, but does exist.  The problem with this answer is very simple: if it is possible for developers to fix defects in real time after the code freeze, why could this not be done earlier in the iteration?  Which leads to question 3&#8230;</p>
<p><strong>3.  Why could testing not be done earlier in the iteration?</strong></p>
<p>Two answers here are equally common.  The first I&#8217;ll cover is the &#8220;it takes too much time/effort to move the code to our QA environment so we only do it once per iteration.&#8221;  I understand the need for a QA environment for testing, but is it necessary for ALL testing?  In most of the cases I&#8217;ve seen it is possible to do a tremendous amount of testing in a development environment to make sure everything is basically working before promotion to a QA environment.  The QA environment should be renamed the Verification environment.  Ideally we want to use it to verify everything works in the stable environment and passes all tests just like it did in the development environment.  So step one is to do more testing in the development environment.  Step two is to use some automation tools to build a stable environment quickly.  When pressed, most teams can create an automated process to do a bare-metal environment build within a short period of time.  It is worth the effort.  If this exists, a new build could be deployed at any time, but at least nightly.  Combine it with <a href="http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/" target="_blank">automated regression testing</a> and really get some value from it!</p>
<p>The second answer I usually hear is &#8220;we don&#8217;t know what to test until the code is done anyway.&#8221;  Uh oh, can anyone even count how many ways this statement isn&#8217;t agile in nature???  Let&#8217;s remember the agile process:</p>
<ol>
<li>Product Owner (or similar role) creates stories and some basic acceptance criteria.</li>
<li>During iteration planning more acceptance criteria are created based on conversations between tester, developer and Product Owner.</li>
<li>During iteration the developer and tester collaborate on their understanding so the code can be written and acceptance criteria can be turned into tests.</li>
<li>During development the developer can (and should) access any acceptance tests already written to see how their code is doing.</li>
<li>The developer isn&#8217;t &#8220;done&#8221; until the code passes all unit tests and acceptance tests.  Remember the <a href="http://www.scrumalliance.org/articles/106-definition-of-done-a-reference" target="_blank">definition of done</a>!</li>
</ol>
<p>When things are done in this manner the tester ALWAYS knows what to test because they are in close communication with the developer.  Collaboration is vital to agile success.  This is just one example driving it home.</p>
<p>The bottom line for me is there is no legitimate reason for having a code freeze during an iteration.  Teams need to either invest the time/effort to put together a system which doesn&#8217;t require a code freeze, or stop calling themselves agile.  This is a nasty antipattern which will cause confusion or worse.</p>
<p>Thank you for reading.  Until next time I&#8217;ll be Making Agile a Reality™ for my clients by helping them avoid code freezes during iterations.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F23%2Fagile-antipattern-code-freezes-during-each-iteration%2F&amp;title=Agile%20antipattern%3A%20Code%20freezes%20during%20each%20iteration" id="wpa2a_10"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/03/16/agile-antipattern-moving-work-from-one-iteration-to-the-next/' rel='bookmark' title='Agile antipattern: Moving work from one iteration to the next'>Agile antipattern: Moving work from one iteration to the next</a> <small>All agile teams start at something less than the completely proficient level. ...</small></li>
<li><a href='http://www.agileforall.com/2009/04/09/agile-antipattern-extending-an-iteration/' rel='bookmark' title='Agile antipattern: Extending an iteration'>Agile antipattern: Extending an iteration</a> <small>I had a previous blog post about stopping an iteration and how...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile antipattern:  Using manual tests</title>
		<link>http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/</link>
		<comments>http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 17:24:28 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[automated testing]]></category>
		<category><![CDATA[regression testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=139</guid>
		<description><![CDATA[In an agile environment manual testing is fine &#8211; except for when it isn&#8217;t!  In particular, everyone recognizes manual regression testing takes time.  When using a traditional development process companies use it as an argument for longer release cycles saying something like &#8220;It takes 8 weeks of regression testing anyway, so a large release makes sense [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/09/20/are-you-agile-the-nokia-test/' rel='bookmark' title='Are you agile &#8211; the Nokia test'>Are you agile &#8211; the Nokia test</a> <small>I&#8217;ve been helping lots of clients start new agile initiatives recently.  This...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.agileforall.com/wp-content/uploads/2009/04/testsperiteration.gif"><img class="alignleft size-full wp-image-714" title="testsperiteration" src="http://www.agileforall.com/wp-content/uploads/2009/04/testsperiteration.gif" alt="testsperiteration" width="254" height="171" /></a>In an agile environment manual testing is fine &#8211; except for when it isn&#8217;t!  In particular, everyone recognizes manual regression testing takes time.  When using a traditional development process companies use it as an argument for longer release cycles saying something like &#8220;It takes 8 weeks of regression testing anyway, so a large release makes sense otherwise the overhead of the testing would be too high.&#8221;  It is easy to see how people could buy into that argument.  Because of similar arguments it is hard to get organizations to understand regression testing outside the context of RELEASE regression testing.  The primary cadence of an agile process is the iteration cadence which puts a much different spin on regression testing.<span id="more-139"></span></p>
<p>Let me back up for a moment and sum up what most people believe about testing within iterations during an agile project.  Put very simply, teams are led to believe they need to get each user story to the &#8220;done&#8221; state which matches the team&#8217;s definition of done (DoD).  In most cases the DoD says the story has been unit tested, acceptance tested and has been accepted by the Product Champion, Product Owner, Customer or other equivalent role.  Using this definition will lead to having stories which all work in isolation.  The way I put it in my classes is the team has proven there is a finger, a thumb, a knee, etc. but have they proven they are part of the same body and the body works?  Concentrating on a story-centric DoD can lead to significant issues if things don&#8217;t work at a system level.  Using a story-centric DoD means it is possible to create &#8220;a finger&#8221; in one iteration and not know it completely destroyed &#8220;a knee&#8221; created in an earlier iteration.</p>
<p>Some of you may be thinking &#8220;But Bob, you can&#8217;t be saying we have to do our regression testing every single iteration!  It takes 8 weeks to do regression testing and if iterations are two weeks long the math won&#8217;t work.&#8221;  You are right, the math doesn&#8217;t work, but not in the way you are thinking.  What I am suggesting is during an agile process you have to have a DoD which is iteration-centric as well as one that is story-centric.  An iteration-centric DoD should include something saying all of the tests from previous iterations still pass.  In other words, tests from prior iterations become regression tests.  There are many great reasons for this, but let me describe just one situation which should make the point.</p>
<p><a href="http://www.agileforall.com/wp-content/uploads/2009/04/iterationtesting.gif"><img class="aligncenter size-full wp-image-663" title="iterationtesting" src="http://www.agileforall.com/wp-content/uploads/2009/04/iterationtesting.gif" alt="iterationtesting" width="400" height="250" /></a></p>
<p>This chart shows the amount of testing done on each feature if regression testing is done every iteration.  Notice that in 5 iterations feature #1 gets tested 5 times.  Because teams develop software in priority order this means the highest value feature is also the most tested.  The lowest value feature is the least tested.  Common sense tells us this is a good thing!  Wouldn&#8217;t it be great if the most important features were the least likely to have bugs?</p>
<p>When using manual regression testing at some point there will be a limit to how much regression testing can be done.  This will directly impact how often the highest priority features get tested prior to release.  If a team can do no regression testing then every feature gets tested once.  If they can regression test just one iteration then almost all features will be tested twice, and so on.  For most teams the lack of regression testing leads to &#8220;hardening iterations&#8221; prior to release.  This point is very important &#8211; if you do not do full regression testing each iteration, you will pay a penalty of both time and money later!</p>
<p>When I present this information to executives they quickly realize an investment in some sort of automated test strategy could save them quite a bit of money.  Automated testing can be done using a variety of free tools so the only investment is in research and learning curve.  I usually recommend tools like <a href="http://www.fitnesse.org" target="_blank">FitNesse</a>, <a href="http://fit.c2.com" target="_blank">Fit</a>, <a href="http://seleniumhq.org" target="_blank">Selenium</a>, <a href="http://cukes.info/" target="_blank">Cucumber</a>, <a href="http://wtr.rubyforge.org" target="_blank">Watir</a> and <a href="http://watin.sourceforge.net" target="_blank">WatiN</a> as starting points.  If you are using Java or a .NET language there are many available frameworks with small learning curves which can deliver value very quickly.  I tend to stay away from tools like HP Quality Test Pro only because it is a heavyweight tool requiring specialized knowledge in order to do automated testing effectively.  Note I am not talking about record/playback automated testing!  I want teams to strive for automation which doesn&#8217;t require too much incremental knowledge from what they already know &#8211; if it is too big a learning curve they just won&#8217;t do it.</p>
<p>If you want to take this to the next level I strongly recommend reading <a href="http://www.scrumalliance.org/articles/106-definition-of-done-a-reference" target="_blank">this article</a>.  It takes a holistic view of the defintion of done which really pushes teams to think of everything!</p>
<p>Thank you for reading!  Until next time I&#8217;ll continue recommending automated testing frameworks so organizations can continue Making Agile a Reality™.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F16%2Fagile-antipattern-using-manual-tests%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F16%2Fagile-antipattern-using-manual-tests%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F04%2F16%2Fagile-antipattern-using-manual-tests%2F&amp;title=Agile%20antipattern%3A%20%20Using%20manual%20tests" id="wpa2a_12"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/09/20/are-you-agile-the-nokia-test/' rel='bookmark' title='Are you agile &#8211; the Nokia test'>Are you agile &#8211; the Nokia test</a> <small>I&#8217;ve been helping lots of clients start new agile initiatives recently.  This...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/04/16/agile-antipattern-using-manual-tests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When in Doubt Ask &#8220;How Will I Know I&#8217;ve Done That?&#8221;</title>
		<link>http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/</link>
		<comments>http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 18:22:10 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Product Champion]]></category>
		<category><![CDATA[Product Management]]></category>
		<category><![CDATA[Product Owner]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=87</guid>
		<description><![CDATA[Tired of not knowing exactly what to create or test? Get in the habit of asking the magic question &#8220;How will I know I&#8217;ve done that?&#8221; In other words, ask the Product Owner (or whatever person you have filling that role on your team) to express some acceptance criteria!  Asking this question will make miserable days seem [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Tired of not knowing exactly what to create or test? Get in the habit of asking the magic question &#8220;How will I know I&#8217;ve done that?&#8221; In other words, ask the Product Owner (or whatever person you have filling that role on your team) to express some acceptance criteria!  Asking this question will make miserable days seem bright and sunny!  Well, ok, maybe not that, but asking this question will brighten your mood.  There are at least three good reasons why asking this question is important.<span id="more-87"></span></p>
<p>First, the answer clears up uncertainty.  As I mentioned in my blog post <a href="http://www.agileforall.com/blog/2008/09/24/bob-ism-1-the-good-developer/">Bob-ism #1 &#8211; the good developer</a> it is very easy for developers to build the wrong product if they aren&#8217;t careful.  Being careful means uncertainty on the desired functionality needs to be cleared up as early as possible.  There is no such thing as the perfect Product Owner who creates 100% unambiguous stories that never generate questions.  This is impossible because it absolutely <strong><em>should not happen</em></strong>.  The concept behind stories is they are an invitation to a conversation. The conversation should start with &#8220;How will I know I&#8217;ve done that?&#8221;  Members of agile teams need to recognize the necessity of clearing up uncertainty, and Product Owner&#8217;s need to understand the necessity of making time available to help.</p>
<p>Second, the answer gives acceptance criteria. Acceptance criteria are useful to every person who deals with a user story.  Developers know how the code will be tested. Testers have a basis for knowing what tests to create.  Wouldn&#8217;t it be nice if acceptance criteria could directly be translated into automated acceptance tests?  Well, we have a class on <a href="http://realworldfit-ab.eventbrite.com" target="_blank">Real World Agile Testing with Fit and FitNesse</a> coming up.  The class is basically to teach how to do that!  Even if you don&#8217;t take the class, look at <a href="http://fit.c2.com" target="_blank">Fit</a> or <a href="http://www.fitnesse.org" target="_blank">FitNesse</a> as potential ways to translate between spoken language and automated tests.  But all of this is based on knowing what the acceptance criteria should be, and the answer to the question &#8220;How will I know I&#8217;ve done that?&#8221; gives the criteria.</p>
<p>Finally, asking the question fosters collaboration.  Remember, a user story is an invitation to a conversation.  By asking &#8220;How will I know I&#8217;ve done that?&#8221; you have accepted the invitation.  Imagine if all teams had developers, testers and Product Owners collaborating up front on stories and all being in agreement on what &#8220;done&#8221; would look like - all before a line of code was written.  For those of us who have seen this in action it is truly amazing.  Teams become hyper-productive.  Features match customer wants and needs much more accurately.  Quality improves dramatically.  Morale on the team improves.  All of these are downstream effects of effective and meaningful collaboration.</p>
<p>Let me close this post with a couple of very important caveats:</p>
<ul>
<li>Don&#8217;t collaborate in a vaccuum.  If one person needs to ask this question, there are likely others also needing to know the answer.  Make sure you have the proper people as part of the conversation.  This usually means developer, tester and Product Owner are all involved.</li>
<li>Capture the answer!  This seems so silly to have to say, but it is quite common for people to have a conversation and not record the results anywhere.  This conversation affects the user story, so capture the answer in a place people will know to look.  The answer is acceptance criteria.  It may even clarify some wording in the story itself.  Whatever it is affects the story, so save it appropriately.  Remember, knowledge in your head is lost to the rest of the team &#8211; so what happens when you aren&#8217;t available???</li>
</ul>
<p>My user story today was &#8220;My readers want a new blog entry so that they can be more agile.&#8221;  I asked myself the question &#8220;How will I know I&#8217;ve done that?&#8221;  The answer was &#8220;I&#8217;ll know I&#8217;ve done that when I have a published blog entry my users can access which gives them a useful agile tip.&#8221;  So the acceptance criteria are:</p>
<ul>
<li><del>blog entry published</del></li>
<li><del>users can access<del></del></del></li>
<li>contains a useful tip</li>
</ul>
<p>I tested the first two and they work.  Did I accomplish the mission for the 3rd bullet point?  I certainly hope so.  If not, let me know!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F20%2Fwhen-in-doubt-ask-how-will-i-know-ive-done-that%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F20%2Fwhen-in-doubt-ask-how-will-i-know-ive-done-that%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F02%2F20%2Fwhen-in-doubt-ask-how-will-i-know-ive-done-that%2F&amp;title=When%20in%20Doubt%20Ask%20%26%238220%3BHow%20Will%20I%20Know%20I%26%238217%3Bve%20Done%20That%3F%26%238221%3B" id="wpa2a_14"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/04/23/agile-antipattern-code-freezes-during-each-iteration/' rel='bookmark' title='Agile antipattern: Code freezes during each iteration'>Agile antipattern: Code freezes during each iteration</a> <small>Over the past 18 months I&#8217;ve encountered a number of teams where...</small></li>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
<li><a href='http://www.agileforall.com/2009/05/14/new-to-agile-invest-in-good-user-stories/' rel='bookmark' title='New to agile?  INVEST in good user stories'>New to agile?  INVEST in good user stories</a> <small>As a &lt;user&gt; I want &lt;function&gt; so that&lt;value&gt;. Above is a very...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/02/20/when-in-doubt-ask-how-will-i-know-ive-done-that/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Real World Agile Testing with Fit and FitNesse</title>
		<link>http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/</link>
		<comments>http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 06:05:54 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=82</guid>
		<description><![CDATA[Another short blog entry.  This time it is to announce that we&#8217;ll be hosting Rob Myers teaching a great agile testing course using Fit and FitNesse on March 23 and 24.  The course will be held at the Denver PPA Event Center (right across from Invesco Field at Mile Hi).  This course was just given [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/10/07/free-event-agile-adoption-the-real-story/' rel='bookmark' title='Free Event! Agile Adoption: The Real Story'>Free Event! Agile Adoption: The Real Story</a> <small>On October 20, the Agile Cooperative will be hosting a free one-day...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Another short blog entry.  This time it is to announce that we&#8217;ll be hosting Rob Myers teaching a great agile testing course using Fit and FitNesse on March 23 and 24.  The course will be held at the Denver PPA Event Center (right across from Invesco Field at Mile Hi).  This course was just given for a local client and the reviews were fantastic.  Get more details at <a href="http://realworldfit-bl.eventbrite.com">http://realworldfit-bl.eventbrite.com</a>.  There you will also see some of the testimonials from the recent course.</p>
<p>And, just because I like all of you, use discount code EARLYEARLY before February 25 to get an additional 10% discount.</p>
<p>If your organization struggles with getting testing completed within an iteration and you use either C# or Java, this course is a must.  It can mean the difference between agile success and failure.  Is that wor$895?  And, if your organization is interested in sending more than one person (the course works best with tester/developer pairs), contact me and I&#8217;ll give an additional discount for the 2nd person (or any beyond that).</p>
<p>Don&#8217;t delay, sign up now.  You absolutely don&#8217;t want to miss this course.  It gives you the keys to true automated acceptance testing, not the type most companies are doing when they delay automation for an interation or two!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F01%2F31%2Freal-world-agile-testing-with-fit-and-fitnesse%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F01%2F31%2Freal-world-agile-testing-with-fit-and-fitnesse%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2009%2F01%2F31%2Freal-world-agile-testing-with-fit-and-fitnesse%2F&amp;title=Real%20World%20Agile%20Testing%20with%20Fit%20and%20FitNesse" id="wpa2a_16"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/' rel='bookmark' title='Agile Architecture and Agile Testing &#8211; New Courses on the horizon'>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</a> <small>Exciting news!  Some associates of mine are currently completing work on some...</small></li>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/10/07/free-event-agile-adoption-the-real-story/' rel='bookmark' title='Free Event! Agile Adoption: The Real Story'>Free Event! Agile Adoption: The Real Story</a> <small>On October 20, the Agile Cooperative will be hosting a free one-day...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Agile Architecture and Agile Testing &#8211; New Courses on the horizon</title>
		<link>http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/</link>
		<comments>http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 14:36:16 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/</guid>
		<description><![CDATA[Exciting news!  Some associates of mine are currently completing work on some new courses Agile For All will be able to offer.  The two courses are Agile Architecture and Agile Testing.  In fact, it is really three courses because Agile Testing has a version that is all about using FIT (Framework for Integrated Testing) and [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/' rel='bookmark' title='Real World Agile Testing with Fit and FitNesse'>Real World Agile Testing with Fit and FitNesse</a> <small>Another short blog entry.  This time it is to announce that we&#8217;ll...</small></li>
<li><a href='http://www.agileforall.com/2009/04/06/agile-architecture-it-is-not-an-oxymoron/' rel='bookmark' title='Agile Architecture &#8211; It is NOT an Oxymoron!'>Agile Architecture &#8211; It is NOT an Oxymoron!</a> <small>Many companies adopting agile have a hard time with the architecture and...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Exciting news!  Some associates of mine are currently completing work on some new courses Agile For All will be able to offer.  The two courses are Agile Architecture and Agile Testing.  In fact, it is really three courses because Agile Testing has a version that is all about using FIT (Framework for Integrated Testing) and the other is how to do acceptance testing using VSTS (Visual Studio Team System) with FIT.</p>
<p>To me all of these courses are vitally important.  One constant question in the Agile community is &#8220;How do we create an architecture that doesn&#8217;t break when we change things?&#8221;  Another is &#8220;How do we do coding and testing in the same iteration?&#8221;  These courses are designed to answer those specific questions.  I am very excited by these courses because I know the backgrounds and abilities of the course creators.  I respect their abilities and after many conversations with them I am certain they will hit the mark with the courses.</p>
<p>I already have outlines for the courses, we just haven&#8217;t had time to post them on our website yet.  Be looking for more information on each of these (and more!) soon.  Agile For All is devoted to making sure each role within an organization has agile training available.  With these two new courses we can address specific needs of architects, designers and testers.  While there are some courses available in the agile testing arena (mostly for unit-testing rather than acceptance-testing), I have not yet found any that will have the same in-depth approach taken by our new course.  I have only found <a href="http://www.scrum.dk/class/show_course/36">one agile architecture course</a> and it is a single day course which will simply not be enough time to give students the ability to understand and TRY various techniques.</p>
<p>If you are interested in any of these courses, or anything else that we may not have listed yet, please email <a href="mailto:info@agileforall.com">info@agileforall.com</a> and I&#8217;ll be sure to send you more information.  For me this is Christmas coming a month early because I&#8217;ve felt for 2+ years that these courses are needed in the industry!
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F25%2Fagile-architecture-and-agile-testing-new-courses-on-the-horizon%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F25%2Fagile-architecture-and-agile-testing-new-courses-on-the-horizon%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F25%2Fagile-architecture-and-agile-testing-new-courses-on-the-horizon%2F&amp;title=Agile%20Architecture%20and%20Agile%20Testing%20%26%238211%3B%20New%20Courses%20on%20the%20horizon" id="wpa2a_18"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/' rel='bookmark' title='Testing to find defects is waste'>Testing to find defects is waste</a> <small>Have you ever heard someone say that testing to find defects is...</small></li>
<li><a href='http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/' rel='bookmark' title='Real World Agile Testing with Fit and FitNesse'>Real World Agile Testing with Fit and FitNesse</a> <small>Another short blog entry.  This time it is to announce that we&#8217;ll...</small></li>
<li><a href='http://www.agileforall.com/2009/04/06/agile-architecture-it-is-not-an-oxymoron/' rel='bookmark' title='Agile Architecture &#8211; It is NOT an Oxymoron!'>Agile Architecture &#8211; It is NOT an Oxymoron!</a> <small>Many companies adopting agile have a hard time with the architecture and...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2008/11/25/agile-architecture-and-agile-testing-new-courses-on-the-horizon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing to find defects is waste</title>
		<link>http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/</link>
		<comments>http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 16:47:09 +0000</pubDate>
		<dc:creator>Bob Hartman</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Practices]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.agileforall.com/blog/?p=58</guid>
		<description><![CDATA[Have you ever heard someone say that testing to find defects is waste?  I&#8217;ve heard it and I&#8217;ve said it when teaching courses. But people aren&#8217;t hearing the whole message!The other half of the message is that testing to PREVENT defects is ESSENTIAL!  I recently read a comment to a question posed on LinkedIn which stated [...]
<strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/' rel='bookmark' title='Real World Agile Testing with Fit and FitNesse'>Real World Agile Testing with Fit and FitNesse</a> <small>Another short blog entry.  This time it is to announce that we&#8217;ll...</small></li>
<li><a href='http://www.agileforall.com/2009/02/26/new-to-agile-remember-to-eliminate-waste/' rel='bookmark' title='New to agile?  Remember to eliminate waste'>New to agile?  Remember to eliminate waste</a> <small>When I teach any agile course I start out with the principles...</small></li>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Have you ever heard someone say that testing to find defects is waste?  I&#8217;ve heard it and I&#8217;ve said it when teaching courses. But people aren&#8217;t hearing the whole message!<span id="more-58"></span>The other half of the message is that testing to PREVENT defects is ESSENTIAL!  I recently read a comment to a question posed on <a href="http://www.linkedin.com">LinkedIn</a> which stated &#8220;Sufficiently professional and motivated development teams should (must) be able to produce defect-free code without the need for testing. All testing to find defects is waste!&#8221;  I&#8217;m sorry, but this comment is absolutely crazy.  This person is lumping ALL testing into the testing to find defects bucket.</p>
<p>Remember, there are two agile practices around testing that are both important.  They are unit testing and acceptance testing.  Both can be done in test first ways which give us UTDD and ATDD (unit and acceptance test-driven development respectively).  In UTDD the developer is testing that the code they wrote does what they expected it to do.  In ATDD tests are created to ensure that what the developer expected the code to do actually matches the requirement or user story.  You simply can&#8217;t have developers do both, or a misunderstood requirement will never generate an error!  The code will work, it will do what the developer expects, and amazingly what they expect it to do will also match the requirement.  Duh!</p>
<p>UTDD and ATDD are both examples of testing to PREVENT defects.  We can&#8217;t prevent a developer from writing code that has a defect in it, but we can prevent that defect from getting into the system.  That is the purpose of any sort of TDD.  Once the code passes all the tests the developer is done and as far as anyone knows the code works.  Now if anyone ever refactors the code, or changes something in another area that affects the code the automated tests will catch it before it gets to a verification stage or production stage.  Testing to prevent defects is a bit of a wrong phrase &#8211; it should be testing to prevent defects from being checked into the code base.  That&#8217;s really what we are trying to do.  When we use that definition it becomes clear that the testing MUST be done early and there is no &#8220;throw it over the wall to QA&#8221; mentality.</p>
<p>Figure out how to use both UTDD and ATDD in your organization.  Figure out how to automate both.  Figure out how to have continuous integration, nightly builds, etc.  If you can&#8217;t figure it out, invest in bringing in some consulting help to get over the hump.  The investment in time, training, tooling and dollars will be well worth it in a very short period of time.  Just ask yourself how many dollars are spent on support staff and defect fixing for production code, then determine how the organization would change if there were 50% fewer defects.  UTDD/ATDD will reduce defects in most cases by even more than that, but for most organizations a 50% reduction makes the investment in using the practices have a very short payback period.  Remember too that it is usually the best people in the organization being used to fix the most egregious defects &#8211; isn&#8217;t it worth a lot of money to have those same people be writing the next generation product rather than fixing the previous generation?</p>
<p>If you want to know more about one possible ATDD tool, go to our <a href="http://www.agileforall.com/resources">resources page</a> and check out the book titled &#8220;FIT For Developing Software.&#8221;  It is a book about the open source tool FIT (Framework for Integrated Testing) available <a href="http://fit.c2.com">here</a>.  It works for .NET languages and Java.  Some teams are incredibly effective with this tool, but it takes making the effort.</p>
<p>Again, if you need help with any of this, please, please call or email us.  We can provide assistance or point you to someone else that can help.
<div class="tweetmeme_button" style="float: left; margin-right: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F08%2Ftesting-to-find-defects-is-waste%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F08%2Ftesting-to-find-defects-is-waste%2F&amp;source=AgileForAll&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.agileforall.com%2F2008%2F11%2F08%2Ftesting-to-find-defects-is-waste%2F&amp;title=Testing%20to%20find%20defects%20is%20waste" id="wpa2a_20"><img src="http://www.agileforall.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p><br /><p><strong>Related posts:</strong><ol>
<li><a href='http://www.agileforall.com/2009/01/31/real-world-agile-testing-with-fit-and-fitnesse/' rel='bookmark' title='Real World Agile Testing with Fit and FitNesse'>Real World Agile Testing with Fit and FitNesse</a> <small>Another short blog entry.  This time it is to announce that we&#8217;ll...</small></li>
<li><a href='http://www.agileforall.com/2009/02/26/new-to-agile-remember-to-eliminate-waste/' rel='bookmark' title='New to agile?  Remember to eliminate waste'>New to agile?  Remember to eliminate waste</a> <small>When I teach any agile course I start out with the principles...</small></li>
<li><a href='http://www.agileforall.com/2009/12/14/agile-antipattern-burndown-wall/' rel='bookmark' title='Agile antipattern: Burndown &#8220;wall&#8221;'>Agile antipattern: Burndown &#8220;wall&#8221;</a> <small>Does your team have an iteration burndown chart (giving credit only for...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.agileforall.com/2008/11/08/testing-to-find-defects-is-waste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

