<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/">
   <channel>
      <title>parallel change | Filome sharers have read the following articles about "parallel change" | www.filome.com </title>
	  <itunes:author>filome.com</itunes:author>
      <link>http://www.filome.com/key/parallel change</link>
      <description>You're viewing shares 1-1 of 1 total shares for the keyword parallel change This is a keyword feed for "parallel change" from Filome read and shared items in Google Reader. If you would like to search or subscribe to category/keyword feeds for posts that are by shared with Google Reader users visit http://filome.com.</description>
      <language>en-us</language>
	  <copyright>Copyright for these items belong to their original publishers.</copyright>
	  		<itunes:explicit>No</itunes:explicit>

		<itunes:keywords>filome, google reader, shared items, community knowledge organizer</itunes:keywords>

		<itunes:subtitle>This is the keyword feed for "parallel change" from my read items in Google Reader.</itunes:subtitle>

 	<itunes:summary>This is the keyword feed for "parallel change" from my read items in Google Reader.</itunes:summary>

 	<image> 

		<url>http://www.filome.com/images/feed_image.jpg</url>
 		<title>parallel change | Filome sharers have read the following articles about "parallel change" | www.filome.com</title>
 		<link>http://www.filome.com/key/parallel change</link>
 		<description>This is a keyword feed for "parallel change" from Filome read and shared items in Google Reader. If you would like to search or subscribe to category/keyword feeds for posts that are by shared with Google Reader users visit http://filome.com.</description>
 	</image> 	
      <docs>http://www.filome.com</docs>
      <generator>filome beta</generator>
      <item>
         <title>The value of naming things</title>
         <link>http://feedproxy.google.com/~r/MarkNeedham/~3/dfDa9pBYzsw/</link>
		 <category>Shared item</category>
			<description><![CDATA[Publisher - <a href="http://www.filome.com/pub/bbeE2YxVJ55ed2">Mark Needham</a><br> First shared  by - <a href="http://www.filome.com/robdiana">robdiana</a><br>syndication+ 0 | Search 1 | Shares 1<br><br><p><a href="http://twitter.com/hyfather">Nikhil</a> and I were discussing some of the ideas around Test Driven Development earlier in the week and at one stage I pointed out that I quite liked Bryan Liles' idea of '<a href="http://aac2009.confreaks.com/07-feb-2009-13-30-tatft-the-laymans-guide-bryan-liles.html">make it pass or change the message</a>'.</p>
<p>Bryan suggests that when we have a failing test our next step should be to make that test pass or at least write some code which results in us getting a different error message and hopefully one step closer to making the test pass.</p>
<p>As I described this to Nikhil he pointed out that this is probably what most people are doing anyway and now the technique just has a name.</p>
<p>I think this is probably a fair assessment but then again I find it very useful when people give a name to common techniques/patterns as it <strong>makes them much easier to talk about</strong> without having to fill in a whole load of context.</p>
<p>For example <a href="http://www.markhneedham.com/blog/2010/07/05/the-limited-red-society-joshua-kerievsky/">Joshua Kerievsky has come up with some names to describe incremental refactoring techniques</a> such as parallel change and narrowed change.</p>
<p>Parallel change describes a technique where we want to change a method signature but don't want to break all the clients of that method by directly changing it.</p>
<p>Instead we create the new method alongside the current one and gradually move the clients to call the new one instead. When they've all moved we can delete the original method.</p>
<p>Narrowed change describes a technique where we try to reduce the number of places where we have to make the change we want to make.</p>
<p>It's much easier to use the vocabulary that Kerievsky has come up with than to have to describe the techniques each time!</p>
<p>However I do think it is possible to go too far with naming things to the point that there are actually so many names that it's incredibly difficult to remember them all.</p>
<p><a href="http://xunitpatterns.com/">xUnit Patterns</a> seems like an example of this to me.</p>
<p>There are an incredible number of patterns described in that book and while they do all describe slightly different scenarios I'm not necessarily convinced that having this many different patterns makes our discussions easier.</p>
<p>Overall though I think having names for common patterns in software development is a good thing and it does add value even though it seems like we've just 'given something a name'.</p>
<img src="http://feeds.feedburner.com/~r/MarkNeedham/~4/dfDa9pBYzsw" border="0" /> <br><br><a href="http://www.filome.com/key/change" >change</a> <a href="http://search.twitter.com/search?q=%22change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/patterns" >patterns</a> <a href="http://search.twitter.com/search?q=%22patterns%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/patterns.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test" >test</a> <a href="http://search.twitter.com/search?q=%22test%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/method" >method</a> <a href="http://search.twitter.com/search?q=%22method%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/method.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/pass" >pass</a> <a href="http://search.twitter.com/search?q=%22pass%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/pass.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/change" >change</a> <a href="http://search.twitter.com/search?q=%22change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/patterns" >patterns</a> <a href="http://search.twitter.com/search?q=%22patterns%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/patterns.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/method" >method</a> <a href="http://search.twitter.com/search?q=%22method%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/method.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test" >test</a> <a href="http://search.twitter.com/search?q=%22test%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/change describes" >change describes</a> <a href="http://search.twitter.com/search?q=%22change describes%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change describes.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/narrowed change" >narrowed change</a> <a href="http://search.twitter.com/search?q=%22narrowed change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/narrowed change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/parallel change" >parallel change</a> <a href="http://search.twitter.com/search?q=%22parallel change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/parallel change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test pass" >test pass</a> <a href="http://search.twitter.com/search?q=%22test pass%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test pass.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> ]]></description><content:encoded><![CDATA[Publisher - <a href="http://www.filome.com/pub/bbeE2YxVJ55ed2">Mark Needham</a><br> First shared  by - <a href="http://www.filome.com/robdiana">robdiana</a><br>syndication+ 0 | Search 1 | Shares 1<br><br><p><a href="http://twitter.com/hyfather">Nikhil</a> and I were discussing some of the ideas around Test Driven Development earlier in the week and at one stage I pointed out that I quite liked Bryan Liles' idea of '<a href="http://aac2009.confreaks.com/07-feb-2009-13-30-tatft-the-laymans-guide-bryan-liles.html">make it pass or change the message</a>'.</p>
<p>Bryan suggests that when we have a failing test our next step should be to make that test pass or at least write some code which results in us getting a different error message and hopefully one step closer to making the test pass.</p>
<p>As I described this to Nikhil he pointed out that this is probably what most people are doing anyway and now the technique just has a name.</p>
<p>I think this is probably a fair assessment but then again I find it very useful when people give a name to common techniques/patterns as it <strong>makes them much easier to talk about</strong> without having to fill in a whole load of context.</p>
<p>For example <a href="http://www.markhneedham.com/blog/2010/07/05/the-limited-red-society-joshua-kerievsky/">Joshua Kerievsky has come up with some names to describe incremental refactoring techniques</a> such as parallel change and narrowed change.</p>
<p>Parallel change describes a technique where we want to change a method signature but don't want to break all the clients of that method by directly changing it.</p>
<p>Instead we create the new method alongside the current one and gradually move the clients to call the new one instead. When they've all moved we can delete the original method.</p>
<p>Narrowed change describes a technique where we try to reduce the number of places where we have to make the change we want to make.</p>
<p>It's much easier to use the vocabulary that Kerievsky has come up with than to have to describe the techniques each time!</p>
<p>However I do think it is possible to go too far with naming things to the point that there are actually so many names that it's incredibly difficult to remember them all.</p>
<p><a href="http://xunitpatterns.com/">xUnit Patterns</a> seems like an example of this to me.</p>
<p>There are an incredible number of patterns described in that book and while they do all describe slightly different scenarios I'm not necessarily convinced that having this many different patterns makes our discussions easier.</p>
<p>Overall though I think having names for common patterns in software development is a good thing and it does add value even though it seems like we've just 'given something a name'.</p>
<img src="http://feeds.feedburner.com/~r/MarkNeedham/~4/dfDa9pBYzsw" border="0" /> <br><br><a href="http://www.filome.com/key/change" >change</a> <a href="http://search.twitter.com/search?q=%22change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/patterns" >patterns</a> <a href="http://search.twitter.com/search?q=%22patterns%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/patterns.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test" >test</a> <a href="http://search.twitter.com/search?q=%22test%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/method" >method</a> <a href="http://search.twitter.com/search?q=%22method%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/method.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/pass" >pass</a> <a href="http://search.twitter.com/search?q=%22pass%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/pass.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/change" >change</a> <a href="http://search.twitter.com/search?q=%22change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/patterns" >patterns</a> <a href="http://search.twitter.com/search?q=%22patterns%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/patterns.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/method" >method</a> <a href="http://search.twitter.com/search?q=%22method%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/method.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test" >test</a> <a href="http://search.twitter.com/search?q=%22test%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/change describes" >change describes</a> <a href="http://search.twitter.com/search?q=%22change describes%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/change describes.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/narrowed change" >narrowed change</a> <a href="http://search.twitter.com/search?q=%22narrowed change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/narrowed change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/parallel change" >parallel change</a> <a href="http://search.twitter.com/search?q=%22parallel change%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/parallel change.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> <a href="http://www.filome.com/key/test pass" >test pass</a> <a href="http://search.twitter.com/search?q=%22test pass%22" ><img src="http://www.filome.com/images/summize.gif" border="0"></a> <a href="http://www.filome.com/key/test pass.rss" ><img src="http://www.filome.com/images/c4_rss_tiny.jpg" border="0"></a> ]]></content:encoded>

         <pubDate>Sat, 31 Jul 2010 06:55:24 -0400</pubDate>
<itunes:duration>30:00</itunes:duration>
         <guid isPermaLink="false">tag:filome.com,1</guid>

			<itunes:subtitle/>
      </item>
   </channel>
</rss>
