Martin Fowler explores some of these workflows: such as Litter-Pickup Refactoring, Comprehension Refactoring, and Preparatory Refactoring. Martin also reminds people why common justifications for refactoring will sabotage your best efforts.

A 30-minute video of Martin Fowler presenting at OOP2014 on the different ways to refactor, how not to refactor, and how to justify the whole endeavor.

I try to do litter-pickup refactoring when I can, leaving code cleaner than when I found it. Comprehension Refactoring I need to do more of, to encapsulate that moment when I can comprehend a piece of particularly complex logic. As Fowler says in the video, the understanding in your head is a very flighty thing, prone to disappear before you need that knowledge again.