<?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>f3yourmind &#187; adapt</title>
	<atom:link href="http://aslamkhan.net/tag/adapt/feed/" rel="self" type="application/rss+xml" />
	<link>http://aslamkhan.net</link>
	<description>Ubuntu coding ... for your friends</description>
	<lastBuildDate>Mon, 24 Oct 2011 07:07:12 +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>Writing Specs is Writing Code is Designing</title>
		<link>http://aslamkhan.net/software-development/writing-specs-is-writing-code-is-designing/</link>
		<comments>http://aslamkhan.net/software-development/writing-specs-is-writing-code-is-designing/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 11:45:35 +0000</pubDate>
		<dc:creator>Aslam</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[adapt]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[balance]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://aslamkhan.net/?p=188</guid>
		<description><![CDATA[A team that I am coaching has settled on using BDD stories and scenarios for describing their requirements and specifications.  They&#8217;ve also chosen cucumber as their acceptance testing tool.  All well and good, but they are making very slow progress and seem to be really struggling with the change in workstyle.  I think I&#8217;ve spotted [...]]]></description>
			<content:encoded><![CDATA[<p>A team that I am coaching has settled on using <a href="http://dannorth.net/whats-in-a-story">BDD</a> stories and scenarios for describing their requirements and specifications.  They&#8217;ve also chosen <a href="http://wiki.github.com/aslakhellesoy/cucumber">cucumber</a> as their acceptance testing tool.  All well and good, but they are making very slow progress and seem to be really struggling with the change in workstyle.  I think I&#8217;ve spotted the reason for this.</p>
<p>The feedback loop is missing.  They view the stories as a spec that has been handed down.  And they have not made the connection that spec writing is design work that is intended to clearly illustrates concepts in a domain.  It is a form of writing code.  But it&#8217;s just that this code is, maybe, non-executable.</p>
<p>Here&#8217;s my workflow and how I close the loop.</p>
<ul>
<li>write story and scenario</li>
<li>Sketch a design if needed &#8211; helps when pairing to be on the same page.</li>
<li>Start writing test for scenario</li>
<li>ooops &#8230; test is getting complicated? stuck?</li>
<li>maybe the domain is not understood enough? Dig deeper, improve scenario, design (as needed) and continue writing test</li>
<li>or maybe the scenario was badly written? Ignore scenario structure, continue writing test.  Refactor scenario later.  We&#8217;re in deep discovery mode here.</li>
<li>get test to pass</li>
<li>refactor code</li>
<li>refactor scenario</li>
<li>&#8230; cycle the red-green-refactor until happy.</li>
</ul>
<p>Acknowledging when you&#8217;re in discovery mode and knowing that you are allowed to refactor requirements is the trick.  Nothing is cast in concrete.  That&#8217;s why I like frequent feedback loops with tight turning circles.</p>
<p>No feedback loop, no progress.</p>
<p>BTW, I really don&#8217;t like explaining such things as flow-charts and sequences.  You got to find your own style.  It&#8217;s not a recipe or rules thing.  The above is something that is about as close to what I do but it changes when the need arises.  That&#8217;s also another key feature of being agile &#8211; adapt or die in the waterfall.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Faslamkhan.net%2Fsoftware-development%2Fwriting-specs-is-writing-code-is-designing%2F&amp;title=Writing%20Specs%20is%20Writing%20Code%20is%20Designing" id="wpa2a_2"><img src="http://aslamkhan.net/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://aslamkhan.net/software-development/writing-specs-is-writing-code-is-designing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

