Refactoring Isn’t A Design Methodology
One of the difficulties I have with the Agile software methodologies and its proponents is that they go to far. They are often susceptible to hyperbole while hawking their methodology like used car salesmen. Their embracing of the practice of refactoring is one example of this. Of course, we should refactor, but refactoring isn’t a design methodology, it isn’t a way to be agile, and it doesn’t help deliver software faster. Refactoring as advocated by the Agile processes is essentially a design methodology. A team following Agile arrives at an optimal design and implementation via a series of iterations and refactoring efforts. Refactoring as a design methodology is incompatible with the Agile goals of delivering faster and accommodating change anytime in the project life-cycle.


