We're told that MercilessRefactoring leads to well-balanced code ready to EmbraceChange, and most of us think we know what that looks like. Basically when you can't smell any more CodeSmells, your code is in good shape. But that's only PinholeOptimization? of the design, and PinholeOptimization? is notoriously limited.
Being rather more clever than we like to admit, we all know those moments of insight when we see a LargeRefactoring and decide to go for it. This is typically where we engage our brains and SpikeSolution. If we can successfully express the LargeRefactoring with a SpikeSolution, then we feel like it's safe to deploy across the whole system's design - and then we use the simple ReFactorings? to iteratively deploy it. -- PeterMerel