Another Metaphor for Refactoring


At a recent presentation about agile project management, I mentioned refactoring. One of the attendees said, “No, I don’t want to redesign the whole application every iteration. Agile’s not for me!” Well, I decided I couldn’t address the resistance if I didn’t first start with defining refactoring. I said, “Hmm, refactoring isn’t the same as redesign. Here’s another way to think about refactoring: You can think of refactoring as tearing out the old lead-pipe water mains from your streets, putting new ones in, so that the water flows faster and cleaner. The streets still go to the same places they went (the street design is unchanged), but the underlying infrastructure is changed for better water flow.”

That stopped him in his tracks. Is this metaphor too far-fetched? Do you use other metaphors to help people see refactoring isn’t the same as redesign?

[Later..]Take a look at Keith Ray’s Refactoring is not Rewriting blog entry. (Thanks, Darrell and Keith)

Leave a Reply