Refactoring sometimes devolves into an appalling mess. You're chasing a broken test suite, and every change just makes it worse. An even more insidious antipattern is the slow, perfectly controlled process culminating in dreadful design.
This talk presents an end-to-end refactoring that demonstrates simple strategies to avoid such misadventures.