<?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>TastyCupcakes.com &#187; TDD</title>
	<atom:link href="http://blog.tastycupcakes.com/tag/tdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tastycupcakes.com</link>
	<description>Fuel for Software Professionals</description>
	<lastBuildDate>Wed, 07 Jul 2010 15:23:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pair Ping-Ponging</title>
		<link>http://blog.tastycupcakes.com/2009/06/pair-programming-game/</link>
		<comments>http://blog.tastycupcakes.com/2009/06/pair-programming-game/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:23:16 +0000</pubDate>
		<dc:creator>Michael McCullough</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All Games]]></category>
		<category><![CDATA[Development Techniques]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://blog.tastycupcakes.com/?p=73</guid>
		<description><![CDATA[Pair Ping-Ponging is an interactive and productive work techniques to facilitate and explain the approach of TDD and Pair Programming. [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Timing:</strong> 1+ hours</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Ingredients:</strong></p>
<ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; list-style-image: url(http://www.tastycupcakes.com/skins/monobook/bullet.gif); padding: 0px;">
<li style="margin-bottom: 0.1em;">IDE + Unit Testing tool</li>
<li style="margin-bottom: 0.1em;">Timer</li>
</ul>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Directions:</strong></p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Programmer 1 writes a test and challenges Programmer 2 to make it pass. Programmer 2 attempts to make it pass in as short of time as possible and then writes another test to try to stump Programmer 1. This test could be to fill any gaps that were exploited in the previous test, or to test another part of the system. This continues until all features have been implemented. A winner can be chosen based on total time taken to make tests pass. After each test passes, both programmers collaborate to refactor the solution. This time does not count towards the final score.</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Learning Points:</strong></p>
<ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; list-style-image: url(http://www.tastycupcakes.com/skins/monobook/bullet.gif); padding: 0px;">
<li style="margin-bottom: 0.1em;">This game highlights the essence of Test-Driven Development, by only writing code for failing tests.</li>
<li style="margin-bottom: 0.1em;">Programmers end up producing the simplest solution that works. They then must have the discipline to refactor the solution when code-smells emerge.</li>
</ul>
<p>Posted by <a title="Michael McCullough" href="http://blog.tastycupcakes.com/about/michael-mccullough/" target="_self">Mike</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tastycupcakes.com/2009/06/pair-programming-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>99 Test Balloons</title>
		<link>http://blog.tastycupcakes.com/2009/06/99-test-balloons/</link>
		<comments>http://blog.tastycupcakes.com/2009/06/99-test-balloons/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:17:57 +0000</pubDate>
		<dc:creator>Michael McCullough</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[All Games]]></category>
		<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Communication]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Test]]></category>

		<guid isPermaLink="false">http://blog.tastycupcakes.com/?p=69</guid>
		<description><![CDATA[99 Test Balloons is an interactive game illustrating the importance of understanding customer needs, acceptance criteria and the value of test. [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Timing:</strong> 30 mins</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Ingredients:</strong></p>
<ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; list-style-image: url(http://www.tastycupcakes.com/skins/monobook/bullet.gif); padding: 0px;">
<li style="margin-bottom: 0.1em;">20-30 balloons per team</li>
<li style="margin-bottom: 0.1em;">Supplies for each team: construction paper, rulers, scissors, markers</li>
</ul>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Directions:</strong></p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;">Start by showing the teams a balloon that you would like created. The balloon has a face made up of two round eyes, a triangular nose, and a semi circle mouth. Without any further instructions, tell the teams that they have 2 minutes to create as many of the balloons as possible, then have them bring the balloons up to be ‘accepted’. Eliminate any balloons that do not meet your criteria of ~10 inches wide, ~2 inch eyes, ~1 inch gap between eyes, ~1.5 inch high nose, and ~4.5 inch wide mouth. Very few teams will have balloons that meet the criteria. As you reject their work (waste), ask the teams if they’ve ever had a similar experience in software development. Before the second round, give the teams 2 minutes to discuss how they can improve for the next iteration. They should start asking more questions about the acceptance criteria, which you will happily offer. When round 2 starts, the teams will now apply the acceptance criteria to their work and some will even start building ‘test harnesses’ (e.g. paper templates for face, quick ways to measure balloon width, etc.) . The results should be better in round 2. Discuss how they changed the way they worked and what improvements they would make the next time. If needed, play one more round. This time, every team should be using a test harness and should therefore be producing balloons with much more efficiency and quality.</p>
<p style="margin-top: 0.4em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.5em;"><strong>Learning Points:</strong></p>
<ul style="line-height: 1.5em; list-style-type: square; margin-top: 0.3em; margin-right: 0px; margin-bottom: 0px; margin-left: 1.5em; list-style-image: url(http://www.tastycupcakes.com/skins/monobook/bullet.gif); padding: 0px;">
<li style="margin-bottom: 0.1em;">Defining acceptance criteria is not the same as writing tests, only to be applied after something is produced. They can be used as requirements, as tests, and as a target for developers.</li>
<li style="margin-bottom: 0.1em;">Automating acceptance tests (or executable requirements) can be very useful, as demonstrated by the test harnesses produced during the game.</li>
<li style="margin-bottom: 0.1em;">The investment in creating and automating acceptance tests is worthwhile and has a high return.</li>
</ul>
<p>Posted by <a title="Michael McCullough" href="http://blog.tastycupcakes.com/about/michael-mccullough/" target="_self">Mike</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.tastycupcakes.com/2009/06/99-test-balloons/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
