<?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: Starting a new project &#8211; refactoring an existing system</title>
	<atom:link href="http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/</link>
	<description>Precious chunks of wisdom</description>
	<lastBuildDate>Fri, 05 Aug 2011 01:42:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Michael A. Smith</title>
		<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/#comment-12</link>
		<dc:creator>Michael A. Smith</dc:creator>
		<pubDate>Sat, 07 Feb 2009 12:15:12 +0000</pubDate>
		<guid isPermaLink="false">/blogs/stevedonie/archive/2009/02/05/starting-a-new-project-refactoring-an-existing-system.aspx#comment-12</guid>
		<description>Please keep us updated, Steve, with what you decide to do and your success with your process.  Good luck!</description>
		<content:encoded><![CDATA[<p>Please keep us updated, Steve, with what you decide to do and your success with your process.  Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Donie</title>
		<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/#comment-11</link>
		<dc:creator>Steve Donie</dc:creator>
		<pubDate>Fri, 06 Feb 2009 19:36:35 +0000</pubDate>
		<guid isPermaLink="false">/blogs/stevedonie/archive/2009/02/05/starting-a-new-project-refactoring-an-existing-system.aspx#comment-11</guid>
		<description>@Garry - thanks - I think we&#039;re going to need multiples of those!

@Amy - Yes, the Feathers book is definitely a favorite around here. We actually had all the developers in the company go through it using a book club format about a year ago. Trying to get some characterization tests around things is where we are starting. 

@Michael - thanks for the good thoughts. We are a team of 5 developers (including myself - I also server as team lead/scrum master), 1 Project Owner, 1 Project manager, who helps out with analysis also, and 0 testers.</description>
		<content:encoded><![CDATA[<p>@Garry &#8211; thanks &#8211; I think we&#8217;re going to need multiples of those!</p>
<p>@Amy &#8211; Yes, the Feathers book is definitely a favorite around here. We actually had all the developers in the company go through it using a book club format about a year ago. Trying to get some characterization tests around things is where we are starting. </p>
<p>@Michael &#8211; thanks for the good thoughts. We are a team of 5 developers (including myself &#8211; I also server as team lead/scrum master), 1 Project Owner, 1 Project manager, who helps out with analysis also, and 0 testers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael A. Smith</title>
		<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/#comment-10</link>
		<dc:creator>Michael A. Smith</dc:creator>
		<pubDate>Fri, 06 Feb 2009 11:22:33 +0000</pubDate>
		<guid isPermaLink="false">/blogs/stevedonie/archive/2009/02/05/starting-a-new-project-refactoring-an-existing-system.aspx#comment-10</guid>
		<description>That&#039;s a nightmare and a half. May your team be strong, optimistic, and persistent, your clients friendly, and any managers above you patient. Judging from what you&#039;ve said you&#039;re already on the right track.

I personally haven&#039;t been through a refactor/rewrite of that magnitude, so I can&#039;t cover all of the angles. I&#039;m afraid that the only thing I can suggest, is something that you probably already know--

Since you want business value as quickly as possible, and that value is something that is determined only by your clients, I think it would be advantageous to be aware of which changes to the system they will quickly and easily recognise and adore. For end-to-end systems, I&#039;d say this is likely to be anything visual followed by anything improving perceived performance. I think expectations management is going to be key as the whole project seems very volatile.

Provided you choose to follow such a strategy, I&#039;d be hesitant putting everyone on the chosen front of greatest initial impact, as you may lose reconnaissance on other ends of the system which could eventually chuck a monkey-wrench in your solution. Might depend on the size of your team? Perhaps I&#039;d prioritise subsystem work order based on their value-add factor.

In general, I can imagine that it might be advantageous for the team to focus most of their energy on one part of the system at a time and move across the system linearly if possible, so you eliminate the problems that can come with meeting in the middle.

Hopefully some of this is helpful.  Good luck!</description>
		<content:encoded><![CDATA[<p>That&#8217;s a nightmare and a half. May your team be strong, optimistic, and persistent, your clients friendly, and any managers above you patient. Judging from what you&#8217;ve said you&#8217;re already on the right track.</p>
<p>I personally haven&#8217;t been through a refactor/rewrite of that magnitude, so I can&#8217;t cover all of the angles. I&#8217;m afraid that the only thing I can suggest, is something that you probably already know&#8211;</p>
<p>Since you want business value as quickly as possible, and that value is something that is determined only by your clients, I think it would be advantageous to be aware of which changes to the system they will quickly and easily recognise and adore. For end-to-end systems, I&#8217;d say this is likely to be anything visual followed by anything improving perceived performance. I think expectations management is going to be key as the whole project seems very volatile.</p>
<p>Provided you choose to follow such a strategy, I&#8217;d be hesitant putting everyone on the chosen front of greatest initial impact, as you may lose reconnaissance on other ends of the system which could eventually chuck a monkey-wrench in your solution. Might depend on the size of your team? Perhaps I&#8217;d prioritise subsystem work order based on their value-add factor.</p>
<p>In general, I can imagine that it might be advantageous for the team to focus most of their energy on one part of the system at a time and move across the system linearly if possible, so you eliminate the problems that can come with meeting in the middle.</p>
<p>Hopefully some of this is helpful.  Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amy Thorne</title>
		<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/#comment-9</link>
		<dc:creator>Amy Thorne</dc:creator>
		<pubDate>Fri, 06 Feb 2009 09:32:57 +0000</pubDate>
		<guid isPermaLink="false">/blogs/stevedonie/archive/2009/02/05/starting-a-new-project-refactoring-an-existing-system.aspx#comment-9</guid>
		<description>That sounds tough. Michael Feathers&#039; book Working Effectively With Legacy Code might help--it helped me add functionality to a legacy system. In that situation, I mostly added unit tests around code related to functionality we wanted to change, then refactored and made the changes. But I&#039;ll admit that sometimes just getting things unit-testable involved having to make &quot;careful&quot; changes, like pulling methods out of the jsp/aspx in order to get tests around them at all. And having to work like that always feels slow, too.</description>
		<content:encoded><![CDATA[<p>That sounds tough. Michael Feathers&#8217; book Working Effectively With Legacy Code might help&#8211;it helped me add functionality to a legacy system. In that situation, I mostly added unit tests around code related to functionality we wanted to change, then refactored and made the changes. But I&#8217;ll admit that sometimes just getting things unit-testable involved having to make &#8220;careful&#8221; changes, like pulling methods out of the jsp/aspx in order to get tests around them at all. And having to work like that always feels slow, too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Garry Shutler</title>
		<link>http://lostechies.com/stevedonie/2009/02/05/starting-a-new-project-refactoring-an-existing-system/#comment-8</link>
		<dc:creator>Garry Shutler</dc:creator>
		<pubDate>Fri, 06 Feb 2009 08:16:55 +0000</pubDate>
		<guid isPermaLink="false">/blogs/stevedonie/archive/2009/02/05/starting-a-new-project-refactoring-an-existing-system.aspx#comment-8</guid>
		<description>Though I haven&#039;t done it in practice I&#039;ve recently had to think about a similar situation and I&#039;ve been looking at utilising an anti-corruption layer to provide an interface between the old code and the new. There&#039;s a decent explanation of it in the Evan&#039;s DDD book.</description>
		<content:encoded><![CDATA[<p>Though I haven&#8217;t done it in practice I&#8217;ve recently had to think about a similar situation and I&#8217;ve been looking at utilising an anti-corruption layer to provide an interface between the old code and the new. There&#8217;s a decent explanation of it in the Evan&#8217;s DDD book.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
