<?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: Refactoring with red bar?!?!?</title>
	<atom:link href="http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/</link>
	<description>Thomas on Responsive Development of Systems and Software</description>
	<lastBuildDate>Sun, 16 May 2010 13:37:36 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Thomas Grönwall</title>
		<link>http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/comment-page-1/#comment-764</link>
		<dc:creator>Thomas Grönwall</dc:creator>
		<pubDate>Tue, 24 Apr 2007 07:49:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/#comment-764</guid>
		<description>I don&#039;t disagree with you. I am a pragmatic person. I just wanted to explain the idea behind the rule. One of the fundamental ideas behind agile development is to move in small steps. 
So, the &quot;by-the-book&quot; way of doing it would be:
You create the one test, implement just a little,  then you realize the need to refactor a little, before you move on to the next test.

Another way of doing it is to realize the need to refactor before you even start to create the first test. But be careful, big speculative refactoring must be avoided, since you may have to refactor it again if you were wrong.

The third situation, is the one you described. You realize the need for refactoring in the middle of it when you are sitting there with a failing test. Well, shit happens, I say. The situation will happen sometimes, and I would do as you, &quot;disable&quot; the test, refactor a little, enable the test, implement until the bar turns green.

The difference between the three cases above is the time when the developer realizes the need to refactor. Pair programming is a tool for realizing it early in the process. But no rule in the any book can force you to realize it at one time or the other. It just happens.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t disagree with you. I am a pragmatic person. I just wanted to explain the idea behind the rule. One of the fundamental ideas behind agile development is to move in small steps.<br />
So, the &#8220;by-the-book&#8221; way of doing it would be:<br />
You create the one test, implement just a little,  then you realize the need to refactor a little, before you move on to the next test.</p>
<p>Another way of doing it is to realize the need to refactor before you even start to create the first test. But be careful, big speculative refactoring must be avoided, since you may have to refactor it again if you were wrong.</p>
<p>The third situation, is the one you described. You realize the need for refactoring in the middle of it when you are sitting there with a failing test. Well, shit happens, I say. The situation will happen sometimes, and I would do as you, &#8220;disable&#8221; the test, refactor a little, enable the test, implement until the bar turns green.</p>
<p>The difference between the three cases above is the time when the developer realizes the need to refactor. Pair programming is a tool for realizing it early in the process. But no rule in the any book can force you to realize it at one time or the other. It just happens.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thomas</title>
		<link>http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/comment-page-1/#comment-759</link>
		<dc:creator>thomas</dc:creator>
		<pubDate>Mon, 23 Apr 2007 21:18:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/#comment-759</guid>
		<description>I don&#039;t agree. One essential function of refactoring is to improve the design. The issue I was trying to address in the article was the fact that I often want to redesign to be able to slot in the new functionality better, or even make the growth possible. I strongly belive in refactoring to allow functional growth as opposed to force new functionality in and then try to clean up using refactoring.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t agree. One essential function of refactoring is to improve the design. The issue I was trying to address in the article was the fact that I often want to redesign to be able to slot in the new functionality better, or even make the growth possible. I strongly belive in refactoring to allow functional growth as opposed to force new functionality in and then try to clean up using refactoring.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thomas Grönwall</title>
		<link>http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/comment-page-1/#comment-755</link>
		<dc:creator>Thomas Grönwall</dc:creator>
		<pubDate>Mon, 23 Apr 2007 06:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.responsive.se/thomas/2007/02/16/refactoring-with-red-bar/#comment-755</guid>
		<description>I think the idea behind the rule is to implement the functionality first, although you know that you will have to refactor it later. Then, when the when you have the green bar, go ahead and refactor it.</description>
		<content:encoded><![CDATA[<p>I think the idea behind the rule is to implement the functionality first, although you know that you will have to refactor it later. Then, when the when you have the green bar, go ahead and refactor it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

