<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Frank Carver&#039;s Punch Barrel &#187; development</title>
	<atom:link href="http://blog.punchbarrel.com/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.punchbarrel.com</link>
	<description>Frank Carver&#039;s musings about software and life</description>
	<lastBuildDate>Thu, 08 Dec 2011 22:58:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<copyright>Copyright &#xA9; Frank Carver&#039;s Punch Barrel 2010 </copyright>
	<managingEditor>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</managingEditor>
	<webMaster>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://punchbarrel.com/images/punchbarrel-144.jpg</url>
		<title>Frank Carver&#039;s Punch Barrel</title>
		<link>http://blog.punchbarrel.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Frank Carver&#039;s musings about software and life</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Frank Carver&#039;s Punch Barrel</itunes:author>
	<itunes:owner>
		<itunes:name>Frank Carver&#039;s Punch Barrel</itunes:name>
		<itunes:email>frank.carver@googlemail.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://punchbarrel.com/images/punchbarrel-144.jpg" />
		<item>
		<title>Zero-downtime deployments</title>
		<link>http://blog.punchbarrel.com/2011/08/04/zero-downtime-deployments/</link>
		<comments>http://blog.punchbarrel.com/2011/08/04/zero-downtime-deployments/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 09:05:32 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1660</guid>
		<description><![CDATA[It&#8217;s a common pattern, an enterprise software solution has a body of code, managed by version control, verified by continuous integration and eventually delivered to some deployment system. If that were the whole picture things would be relatively straightforward. Tests pass? deploy it! Unfortunately there is often also a database in the mix. This complicates [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a common pattern, an enterprise software solution has a body of code, managed by version control, verified by continuous integration and eventually delivered to some deployment system. If that were the whole picture things would be relatively straightforward. Tests pass? deploy it!</p>
<p>Unfortunately there is often also a database in the mix. This complicates things. Decisions about how many databases to use in the development process, how to ensure that development workspaces, test systems, and live deployments always use an appropriate database, and how to ensure that database changes and code changes don&#8217;t break each other occupy an increasing amount of time and energy.</p>
<p>Tom Czarniecki discusses one path through some of these issues. His suggestions do introduce some potential extra complexity in the code, though.<br />
<a href="http://watchitlater.com/blog/2011/08/zero-downtime-deployments/">Zero-downtime deployments « No One Is Perfect</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/08/04/zero-downtime-deployments/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Does working with Legacy code need a change in attitude?</title>
		<link>http://blog.punchbarrel.com/2011/06/23/does-working-with-legacy-code-need-a-change-in-attitude/</link>
		<comments>http://blog.punchbarrel.com/2011/06/23/does-working-with-legacy-code-need-a-change-in-attitude/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 15:18:15 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[attitude]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[greenfield]]></category>
		<category><![CDATA[legacy]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1648</guid>
		<description><![CDATA[Sometimes I can&#8217;t resist the urge to grumble to colleagues when confronted with systems developed in a way I would not have chosen. Maybe I just need A change in attitude. On the other hand, often the frustration comes from knowing that there is a better way, and I&#8217;m not sure that learning to love [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes I can&#8217;t resist the urge to grumble to colleagues when confronted with systems developed in a way I would not have chosen. Maybe I just need <a href="http://craftedsw.blogspot.com/2011/06/change-in-attitude-legacy-code.html">A change in attitude</a>.</p>
<p>On the other hand, often the frustration comes from knowing that there is a better way, and I&#8217;m not sure that learning to love legacy code is that easy. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/06/23/does-working-with-legacy-code-need-a-change-in-attitude/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learned helplessness in the workplace</title>
		<link>http://blog.punchbarrel.com/2011/06/21/learned-helplessness-in-the-workplace/</link>
		<comments>http://blog.punchbarrel.com/2011/06/21/learned-helplessness-in-the-workplace/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 13:01:25 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[coaching]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[expetriment]]></category>
		<category><![CDATA[helpless]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1644</guid>
		<description><![CDATA[Thinking of giving up trying because nothing seems to make a difference? Jason Yip has an interesting article about how a feeling of helplessness is easily learned, but can be overcome, even in software development. Learned helplessness in the workplace.]]></description>
			<content:encoded><![CDATA[<p>Thinking of giving up trying because nothing seems to make a difference? Jason Yip has an interesting article about how a feeling of helplessness is easily learned, but can be overcome, even in software development.</p>
<p><a href="http://jchyip.blogspot.com/2011/06/learned-helplessness-in-workplace.html">Learned helplessness in the workplace</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/06/21/learned-helplessness-in-the-workplace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spike Driven Development</title>
		<link>http://blog.punchbarrel.com/2011/01/23/spike-driven-development/</link>
		<comments>http://blog.punchbarrel.com/2011/01/23/spike-driven-development/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 15:37:42 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[spike]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1603</guid>
		<description><![CDATA[test-Driven development (TDD) is a very powerful and beneficial approach to developing software. I routinely recommend it as a solution to untested and hard-to maintain software. However, every rule has its exceptions and there are occasions when a pure TDD approach is not very helpful. Mark Needham wrote a recent blog post on the subject [...]]]></description>
			<content:encoded><![CDATA[<p>test-Driven development (TDD) is a very powerful and beneficial approach to developing software. I routinely recommend it as a solution to untested and hard-to maintain software. However, every rule has its exceptions and there are occasions when a pure TDD approach is not very helpful.</p>
<p>Mark Needham wrote a recent blog post on the subject where he describes a kind of &#8220;Spike Driven Development&#8221;: <a href='http://www.markhneedham.com/blog/2011/01/19/coding-spike-driven-development/'>Coding: Spike Driven Development at Mark Needham</a>.</p>
<p>I tend to think of this as some sort of <i>experiment</i>-driven development. I start by choosing a goal. Typically this is either finding out about some murky or unknown aspect of a system such as interfacing with a third party, or improving a variable quantity such as performance. This in turn leads to thinking about ways to assess whether we have done enough to meet the goal and how much time to allocate to the exercise. Finally, a period of playing, following where each trial leads. The important bit is to repeatedly check progress against the goal &#8211; that&#8217;s what links it to the aspects of TDD which work well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/01/23/spike-driven-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Throwing away working code</title>
		<link>http://blog.punchbarrel.com/2010/10/28/throwing-away-working-code/</link>
		<comments>http://blog.punchbarrel.com/2010/10/28/throwing-away-working-code/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 19:25:41 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[product]]></category>
		<category><![CDATA[sales]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[users]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1584</guid>
		<description><![CDATA[It&#8217;s a tough call to make, but sometimes the best thing for a business to do is to throw away working code if it&#8217;s not what the business needs to be successful right now. Eric Ries wrote an insightful post back in February 2009. Lessons Learned: Throwing away working code. A business which is not [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a tough call to make, but sometimes the best thing for a business to do is to throw away working code if it&#8217;s not what the business needs to be successful <i>right now</i>.</p>
<p><a href="http://www.startuplessonslearned.com/">Eric Ries</a> wrote an insightful post back in February 2009.
<p><a href='http://www.startuplessonslearned.com/2009/02/throwing-away-working-code.html'>Lessons Learned: Throwing away working code</a>.</p>
<p>A business which is not making money is dying, however good the code, but changing the business into one which does make money may mean ditching lots of things which have cost a lot, and even seem to have intrinsic value.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/10/28/throwing-away-working-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TDD: Driving from the assertion up</title>
		<link>http://blog.punchbarrel.com/2010/06/18/tdd-driving-from-the-assertion-up/</link>
		<comments>http://blog.punchbarrel.com/2010/06/18/tdd-driving-from-the-assertion-up/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 13:57:53 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1554</guid>
		<description><![CDATA[I&#8217;m doing quite a lot of agile and TDD mentoring at the moment, so such things are always floating near the top of my mind. A recent article from Mark Needham presents an interesting view on how to construct code within tests, and the impact that might have on how tests drive design of code.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing quite a lot of agile and TDD mentoring at the moment, so such things are always floating near the top of my mind.</p>
<p><a href="http://www.markhneedham.com/blog/2010/06/14/tdd-driving-from-the-assertion-up/">A recent article from Mark Needham</a> presents an interesting view on how to construct code within tests, and the impact that might have on how tests drive design of code.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/06/18/tdd-driving-from-the-assertion-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>REST and versioning, a more concrete example.</title>
		<link>http://blog.punchbarrel.com/2010/06/15/rest-and-versioning-a-more-concrete-example/</link>
		<comments>http://blog.punchbarrel.com/2010/06/15/rest-and-versioning-a-more-concrete-example/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 23:11:39 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[maintenance]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[version]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1541</guid>
		<description><![CDATA[There&#8217;s an interesting discussion going on at The Wisdom of Ganesh in which Ganesh Prasad and &#8220;Integral ):( Reporting&#8221; (presumably the &#8220;JJ Dubray&#8221; mentioned in the article) are trying to work out some issues around versioning, REST and SOAP. This post is also referenced and commented on at infoQ. In the 14th comment to the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s an interesting discussion going on at <a href="http://wisdomofganesh.blogspot.com/2010/06/does-rest-need-versioning.html">The Wisdom of Ganesh</a> in which Ganesh Prasad and &#8220;<em>Integral ):( Reporting</em>&#8221; (presumably the &#8220;JJ Dubray&#8221; mentioned in the article) are trying to work out some issues around versioning, REST and SOAP. This post is also referenced and commented on at <a href="http://www.infoq.com/news/2010/06/rest-versioning">infoQ</a>.</p>
<p>In the 14th comment to the original article, JJ calls for a real-world example &#8211; this is a good idea which should help ground the discussion and diffuse the temptation to communicate in abstract principles.  In the spirit of this request, I will describe an example based on problems I faced in a previous job.</p>
<p>The first version of the system we were working on consisted of a server component, coded in Java, which provided remote services to several client systems. Each of the client systems was a Java web application, responsible for providing customer-specific web pages and navigation using the services and content provided by the central server. For some customers there would be just one instance of the web client, for others with greater load there would be several.</p>
<p>The server system was responsible for managing products for sale, including descriptions in multiple languages, format and compatibility meta-data, thumbnail images in several sizes, prices in multiple currencies. As well as access to individual items and collections, a search facility provided a way to discover or look up products. The server also managed customer details and purchase histories, and handled both delivery of content and general messaging (by email and SMS) during the purchase process. The client systems were responsible for display and navigation of a product catalogue, customer branding, &#8220;shopping cart&#8221;, login/logout, and everything else a user experiences.</p>
<p>The API between client and server included ways to list products by category, fetch details of specific products, search using a variety of criteria, make and cancel purchases, fetch and update user data and so on.</p>
<p>I suggest this should be a reasonable system on which to base a discussion &#8211; it embodies similar concepts to many other systems, and is neither trivial nor impossible to build. Interestingly, both SOAP and REST versions of the interface between the clients and the server were implemented at different points in the life of the product.</p>
<p>So, on to versioning. It seems to me that there are several kinds of changes which might require versioning. I will list a few here, but I welcome suggestions for others I might have missed.</p>
<ul>
<li>The first deployment of the system worked with only a single currency. The move to multiple currencies was a potentially major change in the interaction between client and server, even though each client works only in a single currency.</li>
<li>The customer for one client implementation required the provision of extra services, specific to their market, which were not required by (and should not be available to) other clients.</li>
<li>The initial version of the search facility returned data for all matches, with paging through the results implemented entirely on the client. When there was a lot of data in the catalogue this became an unacceptable performance bottleneck, especially as results beyond the first few pages were hardly ever viewed. An alternative approach was suggested where a client would request a specified page (of a specified page size) from the search results. This required changes in both the search request and search results.</li>
<li>A new source of products introduced the idea of collections. Items in a collection could be purchased individually or as a bundle. Viewing a collection while browsing, searching, or in a user&#8217;s purchase history, should allow a user to &#8220;drill in&#8221; to the collection to view the items within it. Items located while searching should indicate how to purchase the collection, as well as how to purchase the individual item.</li>
</ul>
<p>Is this a useful amount of detail for a scenario? I have my own experiences of working with this system and the choices we made, but I&#8217;d love to read any suggestions for how you might handle any of the transitions above in a live system with multiple client systems deployed, many of which can not be changed easily or often, and a server full of historical purchase data. Procedural remoting approaches (SOAP, XML-RPC and Java RMI etc.) and resource-based approaches (REST) are all welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/06/15/rest-and-versioning-a-more-concrete-example/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Two good videos</title>
		<link>http://blog.punchbarrel.com/2010/06/01/two-good-videos/</link>
		<comments>http://blog.punchbarrel.com/2010/06/01/two-good-videos/#comments</comments>
		<pubDate>Mon, 31 May 2010 23:09:52 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[entrepreneur]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[startup]]></category>
		<category><![CDATA[toyota]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1534</guid>
		<description><![CDATA[Monday was a bank holiday, so I found a little time to catch up with some of the web videos in my queue. First I watched an inspiring session from TechCrunch Nordic which likens achieving an &#8220;exit&#8221; for a startup company to dating. Fun, and with a strand of truth. TechCrunch Nordic &#8211; Tommy Ahlers [...]]]></description>
			<content:encoded><![CDATA[<p>Monday was a bank holiday, so I found a little time to catch up with some of the web videos in my queue.</p>
<p>First I watched <a href="http://eu.techcrunch.com/2010/05/31/the-how-when-and-why-of-exiting-your-startup/">an inspiring session from TechCrunch Nordic</a> which likens achieving an &#8220;exit&#8221; for a startup company to dating. Fun, and with a strand of truth.</p>
<p><object width="551" height="310"><param name="wmode" value="transparent" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12127182&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12127182&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="551" height="310"           wmode="transparent"></embed></object></p>
<p><a href="http://vimeo.com/12127182">TechCrunch Nordic &#8211; Tommy Ahlers</a> from <a href="http://vimeo.com/mikebutcher">Mike Butcher</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Anyone running a startup, or thinking about it, should watch this one.</p>
<p>Second I watched <a href="http://www.infoq.com/presentations/Single-Piece-Flow-Kanban">a presentation ostensibly about Kanban and &#8220;single piece flow&#8221;, but really about much wider issues in planning and managing software development</a>. I found the approach presented particularly interesting as it correlates very well with where my thoughts are at right now.</p>
<p>This video is best watched <a href="http://www.infoq.com/presentations/Single-Piece-Flow-Kanban">at infoq</a>, to see both the presenters and the slides</p>
<p>Anyone working in software development, or managing a software project <em>really</em> needs to watch this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/06/01/two-good-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>James Carr Feels GREAT to Pair Again</title>
		<link>http://blog.punchbarrel.com/2010/05/14/james-carr-feels-great-to-pair-again/</link>
		<comments>http://blog.punchbarrel.com/2010/05/14/james-carr-feels-great-to-pair-again/#comments</comments>
		<pubDate>Fri, 14 May 2010 10:07:21 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[pairing]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1524</guid>
		<description><![CDATA[I guess its is a common problem for software developers with a day job as well as out-of-hours projects, but it can be hard to get around to spending time on the out-of-hours stuff. I read with interest that James Carr sought out someone to pair with and found it a useful and enjoyable experience. [...]]]></description>
			<content:encoded><![CDATA[<p>I guess its is a common problem for software developers with a day job as well as out-of-hours projects, but it can be hard to get around to spending time on the out-of-hours stuff.</p>
<p>I read with interest that James Carr sought out someone to pair with and found it a useful and enjoyable experience. ( <a href="http://blog.james-carr.org/2010/05/13/feels-great-to-pair-again/">James Carr » Blog Archive » Feels GREAT to Pair Again</a>. ) It occurred to me that perhaps this is what I need, and by implication, perhaps this is what you might benefit from, too.</p>
<p>So I have an open offer. If you like the idea of spending some evening or weekend time pairing with me, please get in touch. Obviously I&#8217;d like to make some progress on some of my own projects, but I&#8217;m also very happy to spend time on your projects, too.</p>
<p>There&#8217;s a fighting chance that the commitment of an appointment with someone else might get both of us motivated and productive, and that we both might learn some good stuff along the way.</p>
<p>What can we work out together?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/05/14/james-carr-feels-great-to-pair-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Opposite of Waterfall is Pond &#8211; A Metaphor for Agile</title>
		<link>http://blog.punchbarrel.com/2010/04/25/the-opposite-of-waterfall-is-pond-a-metaphor-for-agile/</link>
		<comments>http://blog.punchbarrel.com/2010/04/25/the-opposite-of-waterfall-is-pond-a-metaphor-for-agile/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 09:29:46 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[analogy]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ducks]]></category>
		<category><![CDATA[pond]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[waterfall]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1393</guid>
		<description><![CDATA[You have to love a good analogy. Here&#8217;s one which takes the notion of a &#8220;waterfall&#8221; development process literally, and contrasts it with a pleasant day out on a serene pond. The Opposite of Waterfall is Pond &#8211; A Metaphor for Agile &#124; Agile Blog: Scaling Software Agility My favourite snippet: Eventually, we find a [...]]]></description>
			<content:encoded><![CDATA[<p><span style="float: left; margin: 4px;"><a href="http://blog.punchbarrel.com/wp-content/uploads/2010/04/amy_pond.png"><img src="http://blog.punchbarrel.com/wp-content/uploads/2010/04/amy_pond-150x150.png" alt="" title="amy_pond" width="150" height="150" class="alignnone size-thumbnail wp-image-1564" /></a></span></p>
<p>You have to love a good analogy. Here&#8217;s one which takes the notion of a &#8220;waterfall&#8221; development process literally, and contrasts it with a pleasant day out on a serene pond.</p>
<p><a href="http://www.rallydev.com/agileblog/2009/09/the-opposite-of-waterfall-is-pond-a-metaphor-for-agile/">The Opposite of Waterfall is Pond &#8211; A Metaphor for Agile | Agile Blog: Scaling Software Agility</a></p>
<p>My favourite snippet:</p>
<blockquote><p>Eventually, we find a place that everyone agrees looks nice and we pull  the boat up on shore. Our project is complete in a way that we couldn’t  have predicted exactly because we’ve never been on this particular pond  before. We’re ready to set out again just as soon as we’re done with the  picnic. In Pond, you always have a picnic at the end of the project.</p></blockquote>
<p>All of which makes me smile. Back when I was working on an agile project where releases were named after ducks and other wildfowl, I proposed at one point a component named &#8220;pond&#8221; (standing for &#8220;provider of necessary data&#8221;) shared by all the deployed ducks.</p>
<p>Ah nostalgia.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/04/25/the-opposite-of-waterfall-is-pond-a-metaphor-for-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.661 seconds -->

