<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Code refactoring VS feature addition.</title>
	<atom:link href="http://osric.com/chris/accidental-developer/2008/03/code-refactoring-vs-feature-addition/feed/" rel="self" type="application/rss+xml" />
	<link>http://osric.com/chris/accidental-developer/2008/03/code-refactoring-vs-feature-addition/</link>
	<description>What if Gregor Samsa awoke a computer programmer?</description>
	<lastBuildDate>Tue, 24 Jan 2012 03:45:08 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: sprender</title>
		<link>http://osric.com/chris/accidental-developer/2008/03/code-refactoring-vs-feature-addition/comment-page-1/#comment-9</link>
		<dc:creator>sprender</dc:creator>
		<pubDate>Fri, 28 Mar 2008 06:50:03 +0000</pubDate>
		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=11#comment-9</guid>
		<description>Unfortunately, many businesses don&#039;t think long term, which is an important part of the argument for refactoring. The other part, which is easier to sell, is about being agile. Perhaps most importantly, cleaner code makes a developer&#039;s life suck less. Do it for your own good, if you can get away with it, even if your employer doesn&#039;t care. Assuming you get repeat business from that client, wouldn&#039;t you rather spend your time programming features that actually help their business or would you rather put out fires in their brittle infrastructure all day? In the latter case nobody wins. Therefore, occasionally it is best to respectfully use your own judgment and then allow the results to speak for themselves later.

However, you can definitely get away with refactoring code and adjusting UI simultaneously (or even business logic), but you need a decent strategy to mitigate the risk of breaking things. I tend to rely on the refactoring tools, which are built into all the good IDEs now, in order to keep things clean. Historically this required regular expression acrobatics to find and replace across files, but now you can do a lot of things like rename functions &amp; variables, adjust method signatures, or even extract interfaces (for those who like MVC and other design patterns) all without worrying about fixing up all the dependent code. Plus, I know you&#039;re a big advocate of version control so you&#039;re already checking your own work there via diffs (amen to Chris&#039; advice in his earlier post btw).</description>
		<content:encoded><![CDATA[<p>Unfortunately, many businesses don&#8217;t think long term, which is an important part of the argument for refactoring. The other part, which is easier to sell, is about being agile. Perhaps most importantly, cleaner code makes a developer&#8217;s life suck less. Do it for your own good, if you can get away with it, even if your employer doesn&#8217;t care. Assuming you get repeat business from that client, wouldn&#8217;t you rather spend your time programming features that actually help their business or would you rather put out fires in their brittle infrastructure all day? In the latter case nobody wins. Therefore, occasionally it is best to respectfully use your own judgment and then allow the results to speak for themselves later.</p>
<p>However, you can definitely get away with refactoring code and adjusting UI simultaneously (or even business logic), but you need a decent strategy to mitigate the risk of breaking things. I tend to rely on the refactoring tools, which are built into all the good IDEs now, in order to keep things clean. Historically this required regular expression acrobatics to find and replace across files, but now you can do a lot of things like rename functions &amp; variables, adjust method signatures, or even extract interfaces (for those who like MVC and other design patterns) all without worrying about fixing up all the dependent code. Plus, I know you&#8217;re a big advocate of version control so you&#8217;re already checking your own work there via diffs (amen to Chris&#8217; advice in his earlier post btw).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: chris</title>
		<link>http://osric.com/chris/accidental-developer/2008/03/code-refactoring-vs-feature-addition/comment-page-1/#comment-6</link>
		<dc:creator>chris</dc:creator>
		<pubDate>Tue, 25 Mar 2008 20:05:10 +0000</pubDate>
		<guid isPermaLink="false">http://osric.com/chris/accidental-developer/?p=11#comment-6</guid>
		<description>I think that focusing on code and interface separately sounds like a good idea, and the fact that you can consider them as separate tasks shows that you&#039;ve done a better job than most of separating the business logic from the presentation.

Clients definitely want to see changes, though--if they check up on the progress frequently, then I suppose it is important to have a few obvious UI updates.</description>
		<content:encoded><![CDATA[<p>I think that focusing on code and interface separately sounds like a good idea, and the fact that you can consider them as separate tasks shows that you&#8217;ve done a better job than most of separating the business logic from the presentation.</p>
<p>Clients definitely want to see changes, though&#8211;if they check up on the progress frequently, then I suppose it is important to have a few obvious UI updates.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

