<?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>PHP in Action &#187; Smidig2008</title>
	<atom:link href="http://blog.agilephp.com/category/smidig2008/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.agilephp.com</link>
	<description>Dagfinn Reiersøl on PHP, agile development, Ruby and other addictive substances</description>
	<lastBuildDate>Mon, 28 Sep 2009 14:35:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Refactoring is design</title>
		<link>http://blog.agilephp.com/2008/10/11/refactoring-is-design/</link>
		<comments>http://blog.agilephp.com/2008/10/11/refactoring-is-design/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 23:41:24 +0000</pubDate>
		<dc:creator>dagfinn</dc:creator>
				<category><![CDATA[Application design]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Smidig2008]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=1406</guid>
		<description><![CDATA[ Refactoring is by definition a design actitivity, since the definition of refactoring is &#8220;improving the design of existing code&#8221;. But is this generally and fully recognized? After attending my friendly local agile conference (Smidig2008&#8212;sorry, it&#8217;s in Norwegian), I&#8217;m getting more of a feel for how different people think about it. And I&#8217;m wondering whether [...]]]></description>
			<content:encoded><![CDATA[<p> Refactoring is by definition a design actitivity, since the definition of refactoring is &#8220;improving the design of existing code&#8221;. But is this generally and fully recognized? After attending my friendly local agile conference (<a href="http://smidig.no/smidig2008/">Smidig2008</a>&mdash;sorry, it&#8217;s in Norwegian), I&#8217;m getting more of a feel for how different people think about it. And I&#8217;m wondering whether the use of metaphors such as &#8220;cleaning&#8221; makes refactoring seem too much like unskilled labor.  After all, physical cleaning jobs are seen that way. </p>
<p> The analogy between cleaning and refactoring is useful for making the non-developers understand that refactoring is absolutely necessary. But beyond this pragmatic similarity, are the two really similar in deep and meaningful ways? I don&#8217;t think so. Refactoring is not unskilled labor. It&#8217;s a task that both requires and builds design skill and experience.  While anyone can see that a floor is dirty, identifying <a href="http://en.wikipedia.org/wiki/Code_smell">code smells</a> is non-obvious, tricky and demanding.  This is true even of the simplest code smell, duplicated code. Although spotting code duplication is sometimes easy, at other times, the duplication is too subtle to be easily identifable.  When you clean a floor, the goal is well-defined and easy to visualize. When refactoring, you may know what you&#8217;re aiming for at each small step, but just a few moves further ahead you may end up with a structure you hadn&#8217;t imagined. </p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=PHP%20in%20Action&amp;siteurl=http%3A%2F%2Fblog.agilephp.com%2F&amp;linkname=Refactoring%20is%20design&amp;linkurl=http%3A%2F%2Fblog.agilephp.com%2F2008%2F10%2F11%2Frefactoring-is-design%2F"><img src="http://blog.agilephp.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://blog.agilephp.com/2008/10/11/refactoring-is-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
