Rick DeNatale posted a link to a video of Ward Cunningham explaining the debt metaphor. The whole video is essential watching, but I wanted to quote this little explanation of refactoring that works as well as any I’ve seen:

It was important to me that we accumulate the learnings we did about the application over time by modifying the program to look as if we had known what we were doing all along and to look as if it had been easy to do in Smalltalk.

I think that states the goal of refactoring quite elegantly. I also love that throughout he refers to the application as “the program”. That’s old school.