I guess I'm on four major rewrites so far - two complete disasters, two great successes.
The only pattern I've worked out so far is: disaster, success, disaster, success...
The only pattern I've worked out so far is: disaster, success, disaster, success...
The advantage to the component based rewrite is that it doesn't cost you your head if it fails. You can still push out new features in each version, and you have a fallback plan if the component rewrite fails or is delayed (just use the old one).
The successes were things that built on existing systems but focused on delivering things that were actually radical improvements in functionality, with the rewrites being driven by this, not an end in themselves.