Some refactoring is emergent; we follow our nose and go where it leads.
Other refactoring is directional, bending the code a particular way, be it toward a classic design pattern or another desirable design.
Bill Wake is a consultant with Industrial Logic, Inc. He has been a coach and trainer for more than ten years, and a developer for more than twenty years.
Bill is best known in the Agile community for the Arrange-Act-Assert pattern for unit tests and the INVEST model for user stories. He’s writing a book about medium-sized refactorings; when he’s procrastinating on that, he’s probably playing a mountain dulcimer for fun.