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 CodeSmell''''''s, 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